Changeset 2527:d805b3d6f2cb in roaraudio
- Timestamp:
- 09/01/09 19:34:49 (15 years ago)
- Branch:
- default
- Phase:
- public
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
plugins/roard/protocol-esound.c
r2526 r2527 41 41 {ESD_PROTO_LOCK, ESD_KEY_LEN + _INTSIZE, _NAME("LOCK"), NULL}, 42 42 {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}, 46 46 {ESD_PROTO_SAMPLE_CACHE, ESD_NAME_MAX + 3 * _INTSIZE, _NAME("SAMPLE_CACHE"), NULL}, 47 47 {ESD_PROTO_SAMPLE_FREE, _INTSIZE, _NAME("SAMPLE_FREE"), NULL}, … … 53 53 {ESD_PROTO_RESUME, ESD_KEY_LEN + _INTSIZE, _NAME("RESUME"), NULL}, 54 54 {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}, 56 56 {ESD_PROTO_SERVER_INFO, _INTSIZE, _NAME("SERVER_INFO"), NULL}, 57 57 {ESD_PROTO_ALL_INFO, _INTSIZE, _NAME("ALL_INFO"), NULL}, … … 178 178 } 179 179 180 int 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 } 180 235 181 236 #endif -
roard/include/emul_esd.h.OLD
r2526 r2527 51 51 52 52 int emul_esd_on_connect (int client, struct emul_esd_command * cmd, void * data, struct roar_vio_calls * vio); 53 int emul_esd_on_stream (int client, struct emul_esd_command * cmd, void * data, struct roar_vio_calls * vio); 53 54 54 55 #endif
Note: See TracChangeset
for help on using the changeset viewer.