Changeset 1672:ebdd6c9efa55 in roaraudio


Ignore:
Timestamp:
05/11/09 23:49:43 (15 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

added support for hwmixer to oss driver (not working for me, OSS v4) and sndio driver

Location:
roard
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • roard/driver_oss.c

    r1544 r1672  
    476476    return driver_oss_reopen_device(self); 
    477477   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 
    478495  default: 
    479496   return -1; 
  • roard/driver_sndio.c

    r1583 r1672  
    181181int     driver_sndio_ctl          (struct roar_vio_calls * vio, int cmd, void * data) { 
    182182 struct driver_sndio * self = vio->inst; 
     183 unsigned d; 
    183184 
    184185 switch (cmd) { 
     
    196197    return driver_sndio_reopen_device(self); 
    197198   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; 
    198214  default: 
    199215    return -1; 
Note: See TracChangeset for help on using the changeset viewer.