Changeset 1672:ebdd6c9efa55 in roaraudio
- Timestamp:
- 05/11/09 23:49:43 (15 years ago)
- Branch:
- default
- Phase:
- public
- Location:
- roard
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
roard/driver_oss.c
r1544 r1672 476 476 return driver_oss_reopen_device(self); 477 477 break; 478 #ifdef SNDCTL_DSP_SETPLAYVOL 479 case ROAR_VIO_CTL_SET_VOLUME: 480 switch (self->info.channels) { 481 case 1: 482 d = ROAR_MIXER(data)->mixer[0] * 100 / ROAR_MIXER(data)->scale; 483 d |= d << 8; 484 break; 485 case 2: 486 d = ROAR_MIXER(data)->mixer[0] * 100 / ROAR_MIXER(data)->scale; 487 d |= (ROAR_MIXER(data)->mixer[0] * 100 / ROAR_MIXER(data)->scale) << 8; 488 break; 489 default: 490 return -1; 491 } 492 return ioctl(_get(vio,fh), SNDCTL_DSP_SETPLAYVOL, &d); 493 break; 494 #endif 478 495 default: 479 496 return -1; -
roard/driver_sndio.c
r1583 r1672 181 181 int driver_sndio_ctl (struct roar_vio_calls * vio, int cmd, void * data) { 182 182 struct driver_sndio * self = vio->inst; 183 unsigned d; 183 184 184 185 switch (cmd) { … … 196 197 return driver_sndio_reopen_device(self); 197 198 break; 199 case ROAR_VIO_CTL_SET_VOLUME: 200 switch (self->info.channels) { 201 case 1: 202 d = ROAR_MIXER(data)->mixer[0] * SIO_MAXVOL / ROAR_MIXER(data)->scale; 203 break; 204 case 2: 205 if ( ROAR_MIXER(data)->mixer[0] != ROAR_MIXER(data)->mixer[1] ) 206 return -1; 207 d = ROAR_MIXER(data)->mixer[0] * SIO_MAXVOL / ROAR_MIXER(data)->scale; 208 break; 209 default: 210 return -1; 211 } 212 return sio_setvol(self->handle, d) == 0 ? -1 : 0; 213 break; 198 214 default: 199 215 return -1;
Note: See TracChangeset
for help on using the changeset viewer.