Changeset 3926:7b30ce201137 in roaraudio
- Timestamp:
- 06/10/10 13:15:43 (14 years ago)
- Branch:
- default
- Phase:
- public
- Location:
- roard
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
roard/clients.c
r3925 r3926 412 412 int r; 413 413 int rv = 0; 414 uint32_t flags[2] = {COMMAND_FLAG_NONE, COMMAND_FLAG_NONE}; 414 415 415 416 _CHECK_CID(id); … … 433 434 oldcmd = m.cmd; 434 435 435 if ( (r = command_exec(id, &m, data)) == -1 ) {436 if ( (r = command_exec(id, &m, &data, flags)) == -1 ) { 436 437 m.cmd = ROAR_CMD_ERROR; 437 438 m.datalen = 0; -
roard/commands.c
r3811 r3926 48 48 49 49 {ROAR_CMD_EXEC_STREAM, _NAME("EXEC_STREAM"), req_on_exec_stream}, 50 {ROAR_CMD_QUIT, _NAME("QUIT"), (int(*)(int client, struct roar_message * mes, char * data))clients_delete},50 {ROAR_CMD_QUIT, _NAME("QUIT"), (int(*)(int client, struct roar_message * mes, char ** data, uint32_t flags[2]))clients_delete}, 51 51 52 52 {ROAR_CMD_CON_STREAM, _NAME("CON_STREAM"), req_on_con_stream}, … … 91 91 } 92 92 93 int command_exec (int client, struct roar_message * mes, char * data) {93 int command_exec (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 94 94 int cmd = command_get_id_by_cmd(mes->cmd); 95 int (*func)(int client, struct roar_message * mes, char * data);95 int (*func)(int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 96 96 97 97 if ( cmd == -1 ) … … 103 103 ROAR_DBG("command_exec(*): Execing command %i(%s) via %p", cmd, g_commands[cmd].name, func); 104 104 105 return func(client, mes, data );105 return func(client, mes, data, flags); 106 106 } 107 107 -
roard/include/commands.h
r3811 r3926 21 21 * the Free Software Foundation, 51 Franklin Street, Fifth Floor, 22 22 * Boston, MA 02110-1301, USA. 23 *23 nd_exec* 24 24 */ 25 25 … … 32 32 #define COMMAND_MAX_COMMANDS 32 33 33 34 #define COMMAND_FLAG_NONE 0x00000000 35 #define COMMAND_FLAG_OUT_CLOSECON 0x00000001 36 34 37 struct roar_command { 35 38 int cmd; … … 39 42 char * name; 40 43 #endif 41 int (*handler)(int client, struct roar_message * mes, char * data);44 int (*handler)(int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 42 45 }; 43 46 44 47 int command_get_id_by_cmd (int command); 45 int command_exec (int client, struct roar_message * mes, char * data);48 int command_exec (int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 46 49 int command_get_name (int command, char ** name); 47 50 -
roard/include/req.h
r3811 r3926 29 29 #include <roaraudio.h> 30 30 31 int req_on_noop (int client, struct roar_message * mes, char * data);31 int req_on_noop (int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 32 32 33 int req_on_identify (int client, struct roar_message * mes, char * data);34 int req_on_auth (int client, struct roar_message * mes, char * data);33 int req_on_identify (int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 34 int req_on_auth (int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 35 35 36 int req_on_whoami (int client, struct roar_message * mes, char * data);36 int req_on_whoami (int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 37 37 38 int req_on_new_stream (int client, struct roar_message * mes, char * data);39 int req_on_exec_stream (int client, struct roar_message * mes, char * data);40 int req_on_con_stream (int client, struct roar_message * mes, char * data);41 int req_on_passfh (int client, struct roar_message * mes, char * data);38 int req_on_new_stream (int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 39 int req_on_exec_stream (int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 40 int req_on_con_stream (int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 41 int req_on_passfh (int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 42 42 43 43 #ifdef ROAR_SUPPORT_META 44 int req_on_set_meta (int client, struct roar_message * mes, char * data);45 int req_on_get_meta (int client, struct roar_message * mes, char * data);46 int req_on_list_meta (int client, struct roar_message * mes, char * data);44 int req_on_set_meta (int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 45 int req_on_get_meta (int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 46 int req_on_list_meta (int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 47 47 #endif 48 48 49 int req_on_get_standby (int client, struct roar_message * mes, char * data);50 int req_on_set_standby (int client, struct roar_message * mes, char * data);49 int req_on_get_standby (int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 50 int req_on_set_standby (int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 51 51 52 int req_on_exit (int client, struct roar_message * mes, char * data);52 int req_on_exit (int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 53 53 54 int req_on_server_oinfo(int client, struct roar_message * mes, char * data);54 int req_on_server_oinfo(int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 55 55 56 int req_on_list_clients(int client, struct roar_message * mes, char * data);57 int req_on_list_streams(int client, struct roar_message * mes, char * data);56 int req_on_list_clients(int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 57 int req_on_list_streams(int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 58 58 59 int req_on_get_client (int client, struct roar_message * mes, char * data);60 int req_on_get_stream (int client, struct roar_message * mes, char * data);59 int req_on_get_client (int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 60 int req_on_get_stream (int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 61 61 62 int req_on_get_stream_para (int client, struct roar_message * mes, char * data);63 int req_on_set_stream_para (int client, struct roar_message * mes, char * data);62 int req_on_get_stream_para (int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 63 int req_on_set_stream_para (int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 64 64 65 int req_on_kick (int client, struct roar_message * mes, char * data);66 int req_on_attach (int client, struct roar_message * mes, char * data);65 int req_on_kick (int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 66 int req_on_attach (int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 67 67 68 int req_on_set_vol (int client, struct roar_message * mes, char * data);69 int req_on_get_vol (int client, struct roar_message * mes, char * data);68 int req_on_set_vol (int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 69 int req_on_get_vol (int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 70 70 71 int req_on_add_data (int client, struct roar_message * mes, char * data);71 int req_on_add_data (int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 72 72 73 int req_on_beep (int client, struct roar_message * mes, char * data);73 int req_on_beep (int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 74 74 75 //int req_on_ (int client, struct roar_message * mes, char * data);75 //int req_on_ (int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 76 76 77 77 #endif -
roard/req.c
r3802 r3926 26 26 #include "roard.h" 27 27 28 int req_on_noop (int client, struct roar_message * mes, char * data) {28 int req_on_noop (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 29 29 mes->cmd = ROAR_CMD_OK; 30 30 mes->pos = g_pos; … … 33 33 } 34 34 35 int req_on_identify (int client, struct roar_message * mes, char * data) {35 int req_on_identify (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 36 36 struct roar_client * c; 37 37 int max_len; … … 67 67 } 68 68 69 int req_on_auth (int client, struct roar_message * mes, char * data) {69 int req_on_auth (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 70 70 // TODO: add code to support some auth. 71 71 mes->cmd = ROAR_CMD_OK; … … 76 76 77 77 78 int req_on_whoami (int client, struct roar_message * mes, char * data) {78 int req_on_whoami (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 79 79 mes->cmd = ROAR_CMD_OK; 80 80 mes->pos = g_pos; … … 85 85 86 86 87 int req_on_new_stream (int client, struct roar_message * mes, char * data) {87 int req_on_new_stream (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 88 88 int stream; 89 89 struct roar_stream * s; … … 230 230 } 231 231 232 int req_on_exec_stream (int client, struct roar_message * mes, char * data) {232 int req_on_exec_stream (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 233 233 int r; 234 234 … … 245 245 } 246 246 247 int req_on_con_stream (int client, struct roar_message * mes, char * data) {247 int req_on_con_stream (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 248 248 char host[80] = {0}; 249 249 int port = 0; … … 294 294 } 295 295 296 int req_on_passfh (int client, struct roar_message * mes, char * data) {296 int req_on_passfh (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 297 297 int sock = clients_get_fh(client); 298 298 int16_t * d = (int16_t*)mes->data; … … 366 366 367 367 #ifdef ROAR_SUPPORT_META 368 int req_on_set_meta (int client, struct roar_message * mes, char * data) {368 int req_on_set_meta (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 369 369 int type; 370 370 int mode; … … 438 438 } 439 439 440 int req_on_get_meta (int client, struct roar_message * mes, char * data) {440 int req_on_get_meta (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 441 441 int vallen; 442 442 int type; … … 469 469 } 470 470 471 int req_on_list_meta (int client, struct roar_message * mes, char * data) {471 int req_on_list_meta (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 472 472 int i; 473 473 int len = 0; … … 494 494 #endif 495 495 496 int req_on_server_oinfo (int client, struct roar_message * mes, char * data) {496 int req_on_server_oinfo (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 497 497 struct roar_stream s; 498 498 //ROAR_DIR_OUTPUT … … 517 517 518 518 519 int req_on_get_standby (int client, struct roar_message * mes, char * data) {519 int req_on_get_standby (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 520 520 mes->cmd = ROAR_CMD_OK; 521 521 mes->pos = g_pos; … … 527 527 } 528 528 529 int req_on_set_standby (int client, struct roar_message * mes, char * data) {529 int req_on_set_standby (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 530 530 if ( mes->datalen != 2 ) 531 531 return -1; … … 540 540 } 541 541 542 int req_on_exit (int client, struct roar_message * mes, char * data) {542 int req_on_exit (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 543 543 int term = 0; 544 544 … … 561 561 } 562 562 563 int req_on_list_clients(int client, struct roar_message * mes, char * data) {563 int req_on_list_clients(int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 564 564 unsigned char filter, cmp; 565 565 uint32_t id; … … 586 586 return 0; 587 587 } 588 int req_on_list_streams(int client, struct roar_message * mes, char * data) {588 int req_on_list_streams(int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 589 589 unsigned char filter, cmp; 590 590 uint32_t id; … … 612 612 } 613 613 614 int req_on_get_client (int client, struct roar_message * mes, char * data) {614 int req_on_get_client (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 615 615 struct roar_client * c; 616 616 … … 626 626 } 627 627 628 int req_on_get_stream (int client, struct roar_message * mes, char * data) {628 int req_on_get_stream (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 629 629 struct roar_stream_server * s; 630 630 … … 641 641 } 642 642 643 int req_on_get_stream_para (int client, struct roar_message * mes, char * data) {643 int req_on_get_stream_para (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 644 644 struct roar_stream * s; 645 645 struct roar_stream_server * ss; … … 741 741 } 742 742 743 int req_on_set_stream_para (int client, struct roar_message * mes, char * data) {743 int req_on_set_stream_para (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 744 744 uint16_t * d = (uint16_t *) mes->data; 745 745 int i; … … 798 798 } 799 799 800 int req_on_kick (int client, struct roar_message * mes, char * data) {800 int req_on_kick (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 801 801 uint16_t * info = (uint16_t *) mes->data; 802 802 … … 833 833 } 834 834 835 int req_on_attach (int client, struct roar_message * mes, char * data) {835 int req_on_attach (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 836 836 uint16_t * info = (uint16_t *) mes->data; 837 837 … … 859 859 } 860 860 861 int req_on_set_vol (int client, struct roar_message * mes, char * data) {861 int req_on_set_vol (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 862 862 struct roar_stream_server * s; 863 863 uint16_t * info = (uint16_t *) mes->data; … … 949 949 } 950 950 951 int req_on_get_vol (int client, struct roar_message * mes, char * data) {951 int req_on_get_vol (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 952 952 uint16_t * info = (uint16_t *) mes->data; 953 953 uint16_t version = -1; … … 1031 1031 } 1032 1032 1033 int req_on_add_data (int client, struct roar_message * mes, char * data) {1033 int req_on_add_data (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 1034 1034 struct roar_buffer * b; 1035 1035 char * buf; … … 1044 1044 memcpy(buf, mes->data, mes->datalen); 1045 1045 } else { 1046 memcpy(buf, data, mes->datalen);1046 memcpy(buf, *data, mes->datalen); 1047 1047 } 1048 1048 … … 1058 1058 } 1059 1059 1060 int req_on_beep (int client, struct roar_message * mes, char * data) {1060 int req_on_beep (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 1061 1061 struct roar_beep bs; 1062 1062 int16_t * info = (int16_t*)mes->data;
Note: See TracChangeset
for help on using the changeset viewer.