Changeset 5929:e3e67f000dce in roaraudio for roarclients/roarlight.c
- Timestamp:
- 09/11/13 14:56:42 (11 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
roarclients/roarlight.c
r5823 r5929 29 29 #define CONVAR struct roar_connection * con 30 30 31 static struct roar_connection * g_connection; 32 static struct roar_vio_calls * g_stream; 33 34 static int __run_argv(int argc, char * argv[]); 35 31 36 void usage (void) { 32 37 printf("roarlight [OPTIONS]... command [command...]\n"); … … 47 52 } 48 53 49 int cmd_set ( CONVAR, char * arg, const int mixer) {54 int cmd_set (char * arg) { 50 55 char * next = arg; 51 56 char * k, * v; 52 57 int32_t chan, val; 53 58 struct roar_roardmx_message mes; 54 struct roar_vio_calls vio;55 59 56 60 roar_roardmx_message_new_sset(&mes); … … 79 83 } 80 84 81 if ( roar_vio_simple_new_stream_obj(&vio, con, NULL, 82 ROAR_RATE_DEFAULT, ROAR_CHANNELS_DEFAULT, ROAR_BITS_DEFAULT, 83 ROAR_CODEC_ROARDMX, ROAR_DIR_LIGHT_IN, mixer) == -1 ) 84 return -1; 85 86 if ( roar_roardmx_message_send(&mes, &vio) == -1 ) { 87 roar_vio_close(&vio); 85 if ( roar_roardmx_message_send(&mes, g_stream) == -1 ) { 88 86 return -1; 89 87 } 90 88 91 roar_vio_close(&vio); 89 return 0; 90 } 91 92 static int __run_argv(int argc, char * argv[]) { 93 char * k; 94 int i; 95 96 for (i = 0; i < argc; i++) { 97 k = argv[i]; 98 // cmd is in k 99 100 printf("--- [ %s ] ---\n", k); 101 102 if ( !strcmp(k, "help") ) { 103 usage(); 104 105 } else if ( !strcmp(k, "sleep") ) { 106 roar_sleep(atoi(argv[++i])); 107 108 } else if ( !strcmp(k, "set") ) { 109 i++; 110 if ( cmd_set(argv[i]) == -1 ) { 111 fprintf(stderr, "Error: can not set channels\n"); 112 } else { 113 printf("channels changed\n"); 114 } 115 116 } else { 117 fprintf(stderr, "Error: invalid command: %s\n", k); 118 return 1; 119 } 120 } 92 121 93 122 return 0; … … 96 125 int main (int argc, char * argv[]) { 97 126 struct roar_connection con; 127 struct roar_vio_calls vio; 98 128 int mixer = -1; // -1 = Default 99 129 const char * server = NULL; 100 130 const char * k; 101 131 int i; 132 int ret; 102 133 103 134 for (i = 1; i < argc; i++) { … … 122 153 } 123 154 155 if ( i == argc ) { 156 fprintf(stderr, "Error: No Commands given\n"); 157 return 0; // this is not a fatal error... 158 } 159 124 160 if ( roar_simple_connect(&con, server, "roarlight") == -1 ) { 125 161 fprintf(stderr, "Error: Can not connect to server\n"); … … 127 163 } 128 164 129 if ( i == argc ) {130 fprintf(stderr, "Error: No Commands given\n");131 return 0; // this is not a fatal error...165 if ( roar_vio_simple_new_stream_obj(&vio, &con, NULL, 166 ROAR_RATE_DEFAULT, ROAR_CHANNELS_DEFAULT, ROAR_BITS_DEFAULT, 167 ROAR_CODEC_ROARDMX, ROAR_DIR_LIGHT_IN, mixer) == -1 ) { 132 168 } 133 169 134 for (; i < argc; i++) { 135 k = argv[i]; 136 // cmd is in k 170 g_connection = &con; 171 g_stream = &vio; 137 172 138 printf("--- [ %s ] ---\n", k);173 ret = __run_argv(argc - i, argv + i); 139 174 140 if ( !strcmp(k, "help") ) { 141 usage(); 175 // try to flush all data: 142 176 143 } else if ( !strcmp(k, "sleep") ) { 144 roar_sleep(atoi(argv[++i])); 145 146 } else if ( !strcmp(k, "set") ) { 147 i++; 148 if ( cmd_set(&con, argv[i], mixer) == -1 ) { 149 fprintf(stderr, "Error: can not set channels\n"); 150 } else { 151 printf("channels changed\n"); 152 } 153 154 } else { 155 fprintf(stderr, "Error: invalid command: %s\n", k); 156 } 157 } 177 roar_vio_sync(&vio); 178 roar_vio_close(&vio); 179 roar_usleep(100); 158 180 159 181 roar_disconnect(&con); 160 182 161 return 0;183 return ret; 162 184 } 163 185
Note: See TracChangeset
for help on using the changeset viewer.