Changeset 26:a1db679a45a5 in roaraudio for libroaresd


Ignore:
Timestamp:
06/21/08 13:31:50 (16 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

added code to support roar_get_vol() (player->left_vol_scale/player->right_vol_scale)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libroaresd/esdctl.c

    r19 r26  
    7070 printf("player %i right   = %i\n",        player_info->source_id, player_info->right_vol_scale ); 
    7171} 
     72 
    7273void esd_print_sample_info( esd_sample_info_t *sample_info ) { 
    7374} 
     
    160161 struct roar_stream s; 
    161162 struct roar_connection con[1]; 
     163 struct roar_mixer_settings mixer; 
     164 int channels; 
    162165 esd_player_info_t * new_player, * cur = NULL; // = NULL to avoid gcc warning 
    163166 
     
    205208 
    206209   new_player->server         = r->server; 
    207    new_player->left_vol_scale = new_player->right_vol_scale = 256; // TODO: add data from the mixer 
     210 
     211   if ( roar_get_vol(con, c.execed, &mixer, &channels) == -1 ) { 
     212    ROAR_ERR("esd_get_all_info(*): can not get stream mixer info"); 
     213    new_player->left_vol_scale = new_player->right_vol_scale = 256; 
     214   } else { 
     215    if ( channels == 1 ) { 
     216     new_player->left_vol_scale = new_player->right_vol_scale = mixer.mixer[0] == 65536 ? 256 : mixer.mixer[0] / 256; 
     217    } else { 
     218     if ( channels != 2 ) { 
     219      ROAR_ERR("esd_get_all_info(*): server seems to run in > 2 channel mode. ignoring any but the first two channels!"); 
     220     } 
     221     new_player->left_vol_scale  = mixer.mixer[0] == 65536 ? 256 : mixer.mixer[0] / 256; 
     222     new_player->right_vol_scale = mixer.mixer[1] == 65536 ? 256 : mixer.mixer[1] / 256; 
     223    } 
     224   } 
     225 
    208226 
    209227   if ( r->player_list == NULL ) { 
Note: See TracChangeset for help on using the changeset viewer.