Changeset 3535:7543340c07c6 in roaraudio for libroaresd


Ignore:
Timestamp:
02/19/10 22:55:21 (14 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

handle scale correctly

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libroaresd/esdctl.c

    r3517 r3535  
    200200 struct roar_mixer_settings mixer; 
    201201 int channels; 
     202 float fs; 
    202203 esd_player_info_t * new_player, * cur = NULL; // = NULL to avoid gcc warning 
    203204 
     
    250251    new_player->left_vol_scale = new_player->right_vol_scale = 256; 
    251252   } else { 
     253    fs = mixer.scale / 257; 
    252254    if ( channels == 1 ) { 
    253      new_player->left_vol_scale = new_player->right_vol_scale = mixer.mixer[0] == 65536 ? 256 : mixer.mixer[0] / 256; 
     255     new_player->left_vol_scale = new_player->right_vol_scale = mixer.mixer[0] == mixer.scale ? 256 : mixer.mixer[0] / fs; 
    254256    } else { 
    255257     if ( channels != 2 ) { 
    256258      ROAR_ERR("esd_get_all_info(*): server seems to run in > 2 channel mode. ignoring any but the first two channels!"); 
    257259     } 
    258      new_player->left_vol_scale  = mixer.mixer[0] == 65536 ? 256 : mixer.mixer[0] / 256; 
    259      new_player->right_vol_scale = mixer.mixer[1] == 65536 ? 256 : mixer.mixer[1] / 256; 
     260     new_player->left_vol_scale  = mixer.mixer[0] == mixer.scale ? 256 : mixer.mixer[0] / fs; 
     261     new_player->right_vol_scale = mixer.mixer[1] == mixer.scale ? 256 : mixer.mixer[1] / fs; 
    260262    } 
    261263   } 
     
    337339 roar_connect_fh(&con, esd); 
    338340 
    339  mixer.mixer[0] = left_scale  == 256 ? 65535 : left_scale  * 256; 
    340  mixer.mixer[1] = right_scale == 256 ? 65535 : right_scale * 256; 
     341 mixer.scale    = 256; 
     342 mixer.mixer[0] = left_scale; 
     343 mixer.mixer[1] = right_scale; 
    341344 
    342345 ROAR_DBG("esd_set_stream_pan(esd=%i, stream_id=%i, left_scale=%i, right_scale=%i) = ?",  
Note: See TracChangeset for help on using the changeset viewer.