Changeset 1222:260aca01b2af in roaraudio
- Timestamp:
- 02/25/09 00:03:32 (15 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
roard/driver_oss.c
r1209 r1222 32 32 int ctmp; 33 33 char * es; 34 uint32_t tmp32; 34 35 35 36 #ifdef ROAR_DEFAULT_OSS_DEV … … 188 189 189 190 190 #ifdef SNDCTL_DSP_SETFRAGMENT 191 tmp = 4 << 16 | 11; // 4 fragements of 2048 Bytes. 192 if ( ioctl(fh, SNDCTL_DSP_SETFRAGMENT, &tmp) == -1 ) { 193 ROAR_WARN("driver_oss_open(*): Can not set fragment size, sorry :("); 194 } 195 #endif 191 tmp32 = 4; 192 driver_oss_ctl(inst, ROAR_VIO_CTL_SET_DBLOCKS, &tmp32); 196 193 197 194 ROAR_DBG("driver_oss_open(*): OSS devices opened :)"); … … 213 210 214 211 int driver_oss_ctl(struct roar_vio_calls * vio, int cmd, void * data) { 215 #ifdef SNDCTL_DSP_GETODELAY216 212 int d; 217 213 … … 219 215 return -1; 220 216 221 if ( cmd != ROAR_VIO_CTL_GET_DELAY ) 222 return -1; 223 224 if ( ioctl(roar_vio_get_fh(vio), SNDCTL_DSP_GETODELAY, &d) == -1 ) 225 return -1; 226 227 ROAR_DBG("driver_oss_ctl(*): delay=%i byte", d); 228 229 *(uint_least32_t *)data = d; 217 switch (cmd) { 218 case ROAR_VIO_CTL_GET_DELAY: 219 #ifdef SNDCTL_DSP_GETODELAY 220 if ( ioctl(roar_vio_get_fh(vio), SNDCTL_DSP_GETODELAY, &d) == -1 ) 221 return -1; 222 223 ROAR_DBG("driver_oss_ctl(*): delay=%i byte", d); 224 225 *(uint_least32_t *)data = d; 226 #else 227 return -1; 228 #endif 229 break; 230 case ROAR_VIO_CTL_SET_DBLOCKS: 231 #ifdef SNDCTL_DSP_SETFRAGMENT 232 d = (*(uint_least32_t *)data) << 16 | 11; // (*data) fragements of 2048 Bytes. 233 if ( ioctl(roar_vio_get_fh(vio), SNDCTL_DSP_SETFRAGMENT, &d) == -1 ) { 234 ROAR_WARN("driver_oss_ctl(*): Can not set fragment size, sorry :("); 235 } 236 #else 237 return -1; 238 #endif 239 break; 240 case ROAR_VIO_CTL_GET_DBLKSIZE: 241 *(uint_least32_t *)data = 2048; 242 return 0; 243 break; 244 default: 245 return -1; 246 } 230 247 231 248 return 0; 232 #else233 return -1;234 #endif235 249 } 236 250
Note: See TracChangeset
for help on using the changeset viewer.