Changeset 113:a032ff209b90 in roaraudio
- Timestamp:
- 07/13/08 04:23:57 (16 years ago)
- Branch:
- default
- Phase:
- public
- Location:
- roard
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
roard/commands.c
r100 r113 11 11 {ROAR_CMD_SET_META, "SET_META", req_on_set_meta}, 12 12 {ROAR_CMD_GET_META, "GET_META", req_on_get_meta}, 13 {ROAR_CMD_LIST_META, "LIST_META", req_on_list_meta}, 13 14 14 15 {ROAR_CMD_EXEC_STREAM, "EXEC_STREAM", req_on_exec_stream}, -
roard/include/meta.h
r90 r113 9 9 int stream_meta_add (int id, int type, char * name, char * val); 10 10 int stream_meta_get (int id, int type, char * name, char * val, size_t len); 11 int stream_meta_list (int id, int * types, size_t len); 11 12 int stream_meta_clear (int id); 12 13 -
roard/include/req.h
r100 r113 17 17 int req_on_set_meta (int client, struct roar_message * mes, char * data); 18 18 int req_on_get_meta (int client, struct roar_message * mes, char * data); 19 int req_on_list_meta (int client, struct roar_message * mes, char * data); 19 20 20 21 int req_on_get_standby (int client, struct roar_message * mes, char * data); -
roard/meta.c
r107 r113 70 70 continue; 71 71 72 if ( s->meta[i].value == NULL ) 73 return -1; 74 72 75 if ( (vallen = strlen(s->meta[i].value)) > (len - 1) ) { 73 76 ROAR_DBG("stream_meta_get(*): val too small: need %i have %i", vallen, len); … … 83 86 84 87 return -1; 88 } 89 90 int stream_meta_list (int id, int * types, size_t len) { 91 int i, j; 92 int have = 0; 93 int found; 94 struct roar_stream_server * s = g_streams[id]; 95 96 if ( s == NULL ) 97 return -1; 98 99 if ( len < ROAR_META_MAX_PER_STREAM ) // TODO: find a way we do not need this 100 return -1; 101 102 types[0] = -1; 103 104 for (i = 0; i < ROAR_META_MAX_PER_STREAM; i++) { 105 found = 0; 106 for (j = 0; j < have; j++) 107 if ( types[j] == s->meta[i].type ) { 108 found = 1; 109 break; 110 } 111 112 if ( !found ) 113 types[have++] = s->meta[i].type; 114 } 115 116 return have; 85 117 } 86 118 -
roard/req.c
r107 r113 231 231 } 232 232 233 int req_on_list_meta (int client, struct roar_message * mes, char * data) { 234 int i; 235 int len = 0; 236 int types[ROAR_META_MAX_PER_STREAM]; 237 238 if ( mes->datalen != 1 ) 239 return -1; 240 241 if ( mes->data[0] != 0 ) // version 242 return -1; 243 244 if ( (len = stream_meta_list(mes->stream, types, ROAR_META_MAX_PER_STREAM)) == -1 ) 245 return -1; 246 247 mes->cmd = ROAR_CMD_OK; 248 mes->datalen = 1 + len; 249 mes->data[0] = 0; 250 251 for (i = 0; i < len; i++) 252 mes->data[i+1] = types[i]; 253 254 return 0; 255 } 256 233 257 int req_on_server_oinfo (int client, struct roar_message * mes, char * data) { 234 258 struct roar_stream s;
Note: See TracChangeset
for help on using the changeset viewer.