Changeset 2527:d805b3d6f2cb in roaraudio for plugins/roard


Ignore:
Timestamp:
09/01/09 19:34:49 (13 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

started with emul_esd_on_stream()

File:
1 edited

Legend:

Unmodified
Added
Removed
  • plugins/roard/protocol-esound.c

    r2526 r2527  
    4141 {ESD_PROTO_LOCK,         ESD_KEY_LEN  +     _INTSIZE, _NAME("LOCK"),         NULL}, 
    4242 {ESD_PROTO_UNLOCK,       ESD_KEY_LEN  +     _INTSIZE, _NAME("UNLOCK"),       NULL}, 
    43  {ESD_PROTO_STREAM_PLAY,  ESD_NAME_MAX + 2 * _INTSIZE, _NAME("STREAM_PLAY"),  NULL}, 
    44  {ESD_PROTO_STREAM_REC,   ESD_NAME_MAX + 2 * _INTSIZE, _NAME("STREAM_REC"),   NULL}, 
    45  {ESD_PROTO_STREAM_MON,   ESD_NAME_MAX + 2 * _INTSIZE, _NAME("STREAM_MON"),   NULL}, 
     43 {ESD_PROTO_STREAM_PLAY,  ESD_NAME_MAX + 2 * _INTSIZE, _NAME("STREAM_PLAY"),  emul_esd_on_stream}, 
     44 {ESD_PROTO_STREAM_REC,   ESD_NAME_MAX + 2 * _INTSIZE, _NAME("STREAM_REC"),   emul_esd_on_stream}, 
     45 {ESD_PROTO_STREAM_MON,   ESD_NAME_MAX + 2 * _INTSIZE, _NAME("STREAM_MON"),   emul_esd_on_stream}, 
    4646 {ESD_PROTO_SAMPLE_CACHE, ESD_NAME_MAX + 3 * _INTSIZE, _NAME("SAMPLE_CACHE"), NULL}, 
    4747 {ESD_PROTO_SAMPLE_FREE,                     _INTSIZE, _NAME("SAMPLE_FREE"),  NULL}, 
     
    5353 {ESD_PROTO_RESUME,       ESD_KEY_LEN +      _INTSIZE, _NAME("RESUME"),       NULL}, 
    5454 {ESD_PROTO_SAMPLE_GETID, ESD_NAME_MAX               , _NAME("SAMPLE_GETID"), NULL}, 
    55  {ESD_PROTO_STREAM_FILT,  ESD_NAME_MAX + 2 * _INTSIZE, _NAME("STREAM_FILT"),  NULL}, 
     55 {ESD_PROTO_STREAM_FILT,  ESD_NAME_MAX + 2 * _INTSIZE, _NAME("STREAM_FILT"),  emul_esd_on_stream}, 
    5656 {ESD_PROTO_SERVER_INFO,                     _INTSIZE, _NAME("SERVER_INFO"),  NULL}, 
    5757 {ESD_PROTO_ALL_INFO,                        _INTSIZE, _NAME("ALL_INFO"),     NULL}, 
     
    178178} 
    179179 
     180int emul_esd_on_stream     (int client, struct emul_esd_command * cmd, void * data, struct roar_vio_calls * vio) { 
     181 struct roar_stream_server * ss; 
     182 struct roar_stream        *  s; 
     183 int stream; 
     184 int dir = -1; 
     185 
     186 if ( client == -1 || cmd == NULL || data == NULL || vio == NULL ) 
     187  return -1; 
     188 
     189 switch (cmd->cmd) { 
     190  case ESD_PROTO_STREAM_PLAY: dir = ROAR_DIR_PLAY;    break; 
     191  case ESD_PROTO_STREAM_REC:  dir = ROAR_DIR_RECORD;  break; 
     192  case ESD_PROTO_STREAM_MON:  dir = ROAR_DIR_MONITOR; break; 
     193  case ESD_PROTO_STREAM_FILT: dir = ROAR_DIR_FILTER;  break; 
     194  default: 
     195    clients_delete(client); 
     196    return -1; 
     197 } 
     198 
     199 ROAR_DBG("emul_esd_on_stream(client=%i, ...): creating stream...", client); 
     200 if ((stream = streams_new()) == -1 ) { 
     201  clients_delete(client); 
     202  return -1; 
     203 } 
     204 
     205 ROAR_DBG("emul_esd_on_stream(client=%i, ...): getting stream...", client); 
     206 if ( streams_get(stream, &ss) == -1 ) { 
     207  streams_delete(stream); 
     208  clients_delete(client); 
     209  return -1; 
     210 } 
     211 
     212 s = ROAR_STREAM(ss); 
     213 
     214 ROAR_DBG("emul_esd_on_stream(client=%i, ...): set client of stream...", client); 
     215 if ( client_stream_add(client, stream) == -1 ) { 
     216  streams_delete(stream); 
     217  clients_delete(client); 
     218  return -1; 
     219 } 
     220 
     221 ss->codec_orgi = s->info.codec; 
     222 
     223 if ( streams_set_dir(stream, dir, 1) == -1 ) { 
     224  clients_delete(client); 
     225  return -1; 
     226 } 
     227 
     228 if ( client_stream_exec(client, stream) == -1 ) { 
     229  clients_delete(client); 
     230  return -1; 
     231 } 
     232 
     233 return 0; 
     234} 
    180235 
    181236#endif 
Note: See TracChangeset for help on using the changeset viewer.