Changeset 4614:3b1ab4d465e8 in roaraudio for roard/req.c


Ignore:
Timestamp:
11/21/10 16:51:56 (13 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

Support dir parameter in OINFO command (Closes: #31)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • roard/req.c

    r4552 r4614  
    624624int req_on_server_oinfo    (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 
    625625 struct roar_stream s; 
     626 int dir = ROAR_DIR_PLAY; 
     627 int subsys; 
    626628//ROAR_DIR_OUTPUT 
     629 
     630 if ( mes->datalen != 0 ) { 
     631  if ( mes->datalen != 2 ) 
     632   return -1; 
     633 
     634  if ( mes->data[0] != 0 ) 
     635   return -1; 
     636 
     637  dir = mes->data[1]; 
     638 } 
     639 
     640 subsys = streams_dir2subsys(dir); 
    627641 
    628642 memset(&s, 0, sizeof(struct roar_stream)); 
     
    630644 s.dir           = ROAR_DIR_MIXING; 
    631645 s.pos_rel_id    = -1; 
    632  s.info.rate     = g_sa->rate; 
    633  s.info.bits     = g_sa->bits; 
    634  s.info.channels = g_sa->channels; 
    635  s.info.codec    = g_sa->codec; 
    636  s.pos           = g_pos; 
     646 
     647 switch (subsys) { 
     648  case ROAR_SUBSYS_WAVEFORM: 
     649    s.info.rate     = g_sa->rate; 
     650    s.info.bits     = g_sa->bits; 
     651    s.info.channels = g_sa->channels; 
     652    s.info.codec    = g_sa->codec; 
     653    s.pos           = g_pos; 
     654   break; 
     655#ifndef ROAR_WITHOUT_DCOMP_MIDI 
     656  case ROAR_SUBSYS_MIDI: 
     657   break; 
     658#endif 
     659#ifndef ROAR_WITHOUT_DCOMP_LIGHT 
     660  case ROAR_SUBSYS_LIGHT: 
     661    s.info.rate     = ROAR_OUTPUT_CFREQ; 
     662    s.info.bits     = ROAR_LIGHT_BITS; 
     663    s.info.channels = g_light_state.channels; 
     664   break; 
     665#endif 
     666#ifndef ROAR_WITHOUT_DCOMP_RAW 
     667  case ROAR_SUBSYS_RAW: 
     668    // no need to set anything here. 
     669   break; 
     670#endif 
     671#ifndef ROAR_WITHOUT_DCOMP_RDTCS 
     672  case ROAR_SUBSYS_RDTCS: 
     673    s.info.rate     = ROAR_OUTPUT_CFREQ; 
     674    s.info.bits     = ROAR_RDTCS_BITS; 
     675    s.info.channels = ROAR_RDTCS_CHANNELS; 
     676    s.info.codec    = ROAR_RDTCS_CODEC; 
     677   break; 
     678#endif 
     679  default: 
     680    return -1; 
     681   break; 
     682 } 
    637683 
    638684 if ( roar_stream_s2m(&s, mes) == -1 ) 
Note: See TracChangeset for help on using the changeset viewer.