Changeset 3240:85102db7186d in roaraudio for libroarsndio


Ignore:
Timestamp:
01/28/10 15:50:30 (14 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

support for sio_getpar()

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libroarsndio/para.c

    r1584 r3240  
    146146 
    147147int    sio_getcap (struct sio_hdl * hdl, struct sio_cap * cap) { 
    148  return 0; 
     148 struct roar_stream s; 
     149 int i; 
     150 int bytes; 
     151 int sign; 
     152 int le; 
     153 unsigned mask = 0; 
     154 
     155 if ( cap == NULL ) 
     156  return 0; 
     157 
     158 if ( roar_server_oinfo(&(hdl->con), &s) == -1 ) 
     159  return 0; 
     160 
     161 i = 0; 
     162 for (bytes = 1; bytes <= s.info.bits/8; bytes++) { 
     163  for (sign = 0; sign  < 2; sign++) { 
     164   for (le  = 0; le    < 2; le++) { 
     165    cap->enc[i].bits =   8*bytes; 
     166    cap->enc[i].bps  =     bytes; 
     167    cap->enc[i].sig  =     sign; 
     168    cap->enc[i].le   =     le; 
     169    cap->enc[i].msb  =   1; 
     170    mask |= 1 << i; 
     171    i++; 
     172   } 
     173  } 
     174 } 
     175 
     176 // TODO: fix this (at least include server channels, 
     177 //                 do nit include confusing setups) 
     178 if ( s.info.channels > SIO_NCHAN ) { 
     179  s.info.channels = SIO_NCHAN; 
     180 } 
     181 
     182 for (i = 0; i < s.info.channels; i++) { 
     183  cap->rchan[i] = i+1; 
     184  cap->pchan[i] = i+1; 
     185 } 
     186 
     187 cap->rate[0] = s.info.rate; 
     188 
     189 cap->nconf = 1; 
     190 
     191 cap->confs[0].enc   = mask; 
     192 cap->confs[0].rchan = mask; 
     193 cap->confs[0].pchan = mask; 
     194 cap->confs[0].rate  = 0x0001; 
     195 
     196 return 1; 
    149197} 
    150198 
Note: See TracChangeset for help on using the changeset viewer.