Changeset 5624:ec1593cc8525 in roaraudio for roard/streams.c


Ignore:
Timestamp:
08/18/12 02:04:07 (12 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

Added support for RePlayGain? (RPG) control (See: #300)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • roard/streams.c

    r5415 r5624  
    234234   s->mixerstream =  NULL; 
    235235#endif 
     236 
     237   s->rpgmode = ROAR_RPGMODE_DEFAULT; 
    236238 
    237239   //roardsp_fchain_init(&(s->fc)); 
     
    15081510} 
    15091511 
     1512int streams_get_rpg      (int id, struct roar_stream_rpg * rpg) { 
     1513 _CHECK_SID(id); 
     1514 
     1515 if ( rpg == NULL ) { 
     1516  roar_err_set(ROAR_ERROR_FAULT); 
     1517  return -1; 
     1518 } 
     1519 
     1520 rpg->mode = g_streams[id]->rpgmode; 
     1521 rpg->mul  = g_streams[id]->mixer.rpg_mul; 
     1522 rpg->div  = g_streams[id]->mixer.rpg_div; 
     1523 
     1524 if ( rpg->mode == ROAR_RPGMODE_DEFAULT ) 
     1525  rpg->mode = g_config->streams[ROAR_STREAM(g_streams[id])->dir].rpgmode; 
     1526 
     1527 return 0; 
     1528} 
     1529 
     1530int streams_set_rpg      (int id, const struct roar_stream_rpg * rpg) { 
     1531 int mode; 
     1532 
     1533 _CHECK_SID(id); 
     1534 
     1535 if ( rpg == NULL ) { 
     1536  roar_err_set(ROAR_ERROR_FAULT); 
     1537  return -1; 
     1538 } 
     1539 
     1540 // test if we have a valid value at all. 
     1541 if ( rpg->mode > ROAR_RPGMODE_TRACKALBUM || rpg->mode < ROAR_RPGMODE_DEFAULT ) { 
     1542  roar_err_set(ROAR_ERROR_RANGE); 
     1543  return -1; 
     1544 } 
     1545 
     1546 mode = g_streams[id]->rpgmode = rpg->mode; 
     1547 
     1548 if ( mode == ROAR_RPGMODE_DEFAULT ) 
     1549  mode = g_config->streams[ROAR_STREAM(g_streams[id])->dir].rpgmode; 
     1550 
     1551 switch (mode) { 
     1552  case ROAR_RPGMODE_NONE: 
     1553    g_streams[id]->mixer.rpg_mul = 1; 
     1554    g_streams[id]->mixer.rpg_div = 1; 
     1555   break; 
     1556  case ROAR_RPGMODE_USER: 
     1557    g_streams[id]->mixer.rpg_mul = rpg->mul; 
     1558    g_streams[id]->mixer.rpg_div = rpg->div; 
     1559   break; 
     1560 } 
     1561 
     1562 return 0; 
     1563} 
     1564 
     1565 
    15101566int streams_ltm_ctl      (int id, int mt, int window, int cmd) { 
    15111567 struct roar_stream_server * ss; 
Note: See TracChangeset for help on using the changeset viewer.