Changeset 3240:85102db7186d in roaraudio for libroarsndio
- Timestamp:
- 01/28/10 15:50:30 (14 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libroarsndio/para.c
r1584 r3240 146 146 147 147 int 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; 149 197 } 150 198
Note: See TracChangeset
for help on using the changeset viewer.