Changeset 4379:5861284631eb in roaraudio


Ignore:
Timestamp:
09/14/10 22:16:53 (14 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

support reading volumes at startup

Location:
roard
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • roard/hwmixer.c

    r4378 r4379  
    137137 streams_set_mixerstream(basestream, stream); 
    138138 
     139 // try to get in sync with HW mixer. 
     140 // if possible read hw mixer state. 
     141 // if not possible write to force a sync value. 
    139142 if ( streams_get(basestream, &ss) == 0 ) { 
    140   hwmixer_set_volume(basestream, ss, stream, &(ss->mixer)); 
     143  if ( mixer->get_vol != NULL ) { 
     144   hwmixer_get_volume(basestream, ss, stream, &(ss->mixer)); 
     145  } else { 
     146   hwmixer_set_volume(basestream, ss, stream, &(ss->mixer)); 
     147  } 
    141148 } 
    142149 
     
    162169 if ( mstream->hwmixer->set_vol != NULL ) 
    163170  return mstream->hwmixer->set_vol(mstream, ROAR_STREAM(ss)->info.channels, HWMIXER_MODE_SET, settings); 
     171 
     172 return 0; 
     173} 
     174 
     175int hwmixer_get_volume(int id, struct roar_stream_server * ss, struct hwmixer_stream * mstream, struct roar_mixer_settings * 
     176settings) { 
     177 if ( mstream->hwmixer->get_vol != NULL ) 
     178  return mstream->hwmixer->get_vol(mstream, ROAR_STREAM(ss)->info.channels, HWMIXER_MODE_ASK, settings); 
    164179 
    165180 return 0; 
  • roard/include/hwmixer.h

    r4378 r4379  
    2929#include <roaraudio.h> 
    3030 
     31#define HWMIXER_MODE_ASK        0 
    3132#define HWMIXER_MODE_SET        1 
    3233 
     
    4647 
    4748int hwmixer_set_volume(int id, struct roar_stream_server * ss, struct hwmixer_stream * mstream, struct roar_mixer_settings * settings); 
     49int hwmixer_get_volume(int id, struct roar_stream_server * ss, struct hwmixer_stream * mstream, struct roar_mixer_settings * settings); 
    4850 
    4951struct hwmixer_stream * hwmixer_substream_new(struct hwmixer_stream * parent); 
  • roard/include/streams.h

    r4361 r4379  
    171171struct hwmixer_stream * streams_get_mixerstream(int id); 
    172172int streams_set_mixerstream(int id, struct hwmixer_stream * mstream); 
     173int streams_read_mixervalues(int id); 
    173174 
    174175int streams_ctl          (int id, int_least32_t cmd, void * data); 
  • roard/streams.c

    r4365 r4379  
    12211221} 
    12221222 
     1223int streams_read_mixervalues(int id) { 
     1224 struct roar_stream_server * ss; 
     1225 
     1226 _CHECK_SID(id); 
     1227 
     1228 if ( (ss = g_streams[id]) == NULL ) 
     1229  return -1; 
     1230 
     1231 if ( ss->mixerstream == NULL ) 
     1232  return -1; 
     1233 
     1234 return hwmixer_get_volume(id, ss, ss->mixerstream, &(ss->mixer)); 
     1235} 
    12231236 
    12241237int streams_ctl          (int id, int_least32_t cmd, void * data) { 
Note: See TracChangeset for help on using the changeset viewer.