Changeset 3696:0f43f9c2e18f in roaraudio


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

better support for stream roles

Files:
5 edited

Legend:

Unmodified
Added
Removed
  • include/libroar/stream.h

    r3630 r3696  
    8888#define ROAR_ROLE_PHONE             6 
    8989#define ROAR_ROLE_BACKGROUND_MUSIC  7 
     90#define ROAR_ROLE_VOICE             8 
     91#define ROAR_ROLE_INSTRUMENT        9 
    9092 
    9193struct roar_stream_info { 
     
    140142int roar_stream_set_flags (struct roar_connection * con, struct roar_stream * s, int flags, int reset); 
    141143 
     144int roar_stream_set_role  (struct roar_connection * con, struct roar_stream * s, int role); 
     145 
    142146int roar_stream_s2m     (struct roar_stream * s, struct roar_message * m); 
    143147int roar_stream_m2s     (struct roar_stream * s, struct roar_message * m); 
  • include/roaraudio/proto.h

    r3538 r3696  
    122122#define ROAR_STREAM_PARA_NAME       3 
    123123#define ROAR_STREAM_PARA_CHANMAP    4 
     124#define ROAR_STREAM_PARA_ROLE       5 
    124125 
    125126struct roar_timeofday { 
  • libroar/stream.c

    r3630 r3696  
    599599 
    600600 data[0] = 0; // Version and reserved 
    601  data[1] = 2; // flags 
     601 data[1] = ROAR_STREAM_PARA_FLAGS; // flags 
    602602 data[2] = reset == ROAR_RESET_FLAG ? ROAR_RESET_FLAG : ROAR_SET_FLAG; 
    603603 data[3] = flags; 
     604 
     605 for (i = 0; i < m.datalen/2; i++) { 
     606  data[i] = ROAR_HOST2NET16(data[i]); 
     607 } 
     608 
     609 if ( roar_req(con, &m, NULL) == -1 ) 
     610  return -1; 
     611 
     612 if ( m.cmd != ROAR_CMD_OK ) 
     613  return -1; 
     614 
     615 return 0; 
     616} 
     617 
     618int roar_stream_set_role  (struct roar_connection * con, struct roar_stream * s, int role) { 
     619 struct roar_message m; 
     620 uint16_t * data = (uint16_t *) m.data; 
     621 int i; 
     622 
     623 m.cmd     = ROAR_CMD_SET_STREAM_PARA; 
     624 m.stream  = s->id; 
     625 m.datalen = 6; 
     626 m.pos     = 0; 
     627 
     628 data[0] = 0; // Version and reserved 
     629 data[1] = ROAR_STREAM_PARA_ROLE; // flags 
     630 data[2] = role; 
    604631 
    605632 for (i = 0; i < m.datalen/2; i++) { 
     
    879906 {ROAR_ROLE_BACKGROUND_MUSIC, "background music"}, 
    880907 {ROAR_ROLE_BACKGROUND_MUSIC, "background_music"}, // alias 
     908 {ROAR_ROLE_VOICE,            "voice"           }, 
     909 {ROAR_ROLE_INSTRUMENT,       "instrument"      }, 
    881910 {-1, NULL} 
    882911}; 
  • plugins/xmms/roar.c

    r3625 r3696  
    170170 g_inst.pause   = 0; 
    171171 
     172 roar_stream_set_role(&(g_inst.con), &(g_inst.stream), ROAR_ROLE_MUSIC); 
    172173 roar_update_metadata(); 
    173174 roar_set_volume(g_inst.mixer.l, g_inst.mixer.r); 
  • roard/req.c

    r3672 r3696  
    718718     return -1; 
    719719   break; 
     720  case ROAR_STREAM_PARA_ROLE: 
     721    if ( mes->datalen != 2*3 ) 
     722     return -1; 
     723 
     724    d[2] = ROAR_NET2HOST16(d[2]); 
     725 
     726    if ( streams_set_role(mes->stream, d[2]) == -1 ) 
     727     return -1; 
     728   break; 
    720729  default: 
    721730    ROAR_WARN("req_on_set_stream_para(*): unsupported command version: %i, %i", d[0], d[1]); 
Note: See TracChangeset for help on using the changeset viewer.