Changeset 5982:c38f275b38ae in roaraudio for roard/roard.c
- Timestamp:
- 02/23/14 15:46:19 (10 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
roard/roard.c
r5961 r5982 1301 1301 1302 1302 1303 #if defined(ROAR_HAVE_MAIN_ARGS) && !defined(ROAR_WITHOUT_DCOMP_LIGHT) 1304 struct light_filter { 1305 const char * name; 1306 char * para; 1307 }; 1308 1309 static int light_filter_add(int primary, struct light_filter * filter) { 1310 struct roar_keyval * kv; 1311 ssize_t kvlen; 1312 int ret; 1313 int err; 1314 1315 if ( filter->para == NULL ) { 1316 kvlen = -1; 1317 kv = NULL; 1318 } else { 1319 kvlen = roar_keyval_split(&kv, filter->para, NULL, NULL, 1); 1320 if ( kvlen == -1 ) { 1321 ROAR_ERR("light_filter_add(primar=%i, filter={name='%s', para=%p}): Can not split string: %s", primary, filter->name, filter->para, roar_errorstring); 1322 return -1; 1323 } 1324 } 1325 1326 ret = light_filter_load(primary, filter->name, 1, kv, kvlen); 1327 err = roar_error; 1328 if ( kv != NULL ) 1329 roar_mm_free(kv); 1330 1331 if ( ret == -1 ) { 1332 roar_err_set(err); 1333 ROAR_ERR("light_filter_add(primary=%i, filter={name='%s', para=%p}): Can not load filter: %s", primary, filter->name, filter->para, roar_errorstring); 1334 return -1; 1335 } 1336 1337 return 0; 1338 } 1339 #endif 1340 1303 1341 // MAIN: 1304 1342 … … 1399 1437 struct roar_vio_calls pidfile_vio; 1400 1438 #endif 1439 #if defined(ROAR_HAVE_MAIN_ARGS) && !defined(ROAR_WITHOUT_DCOMP_LIGHT) 1440 struct light_filter light_filter[32] = {{"chain", NULL}}; 1441 int light_filter_count = 1; 1442 char * light_filter_para = NULL; 1443 #endif 1401 1444 1402 1445 ROAR_DBG("main(*): starting roard..."); … … 1677 1720 } else if ( strcmp(k, "--list-plugins") == 0 ) { 1678 1721 metaaction = MA_LIST_PLUGIN; 1722 1723 } else if ( strcmp(k, "--light-filter-load") == 0 ) { 1724 ROAR_CKHAVEARGS(1); 1725 if ( light_filter_count == (sizeof(light_filter)/sizeof(*light_filter)) ) { 1726 ROAR_ERR("Can not load any more light filters: %s", argv[++i]); 1727 } else { 1728 light_filter[light_filter_count].name = argv[++i]; 1729 light_filter[light_filter_count].para = light_filter_para; 1730 light_filter_count++; 1731 } 1732 light_filter_para = NULL; 1733 } else if ( strcmp(k, "--light-filter-load-primary") == 0 ) { 1734 ROAR_CKHAVEARGS(1); 1735 light_filter[0].name = argv[++i]; 1736 light_filter[0].para = light_filter_para; 1737 } else if ( strcmp(k, "--light-filter-args") == 0 ) { 1738 ROAR_CKHAVEARGS(1); 1739 light_filter_para = argv[++i]; 1679 1740 1680 1741 } else if ( strcmp(k, "--guest-acclev") == 0 ) { … … 2335 2396 ROAR_ERR("Can not initialize light control subsystem"); 2336 2397 } 2398 light_filter_add(1, &(light_filter[0])); 2399 for (i = 1; i < light_filter_count; i++) 2400 light_filter_add(0, &(light_filter[i])); 2337 2401 #endif 2338 2402
Note: See TracChangeset
for help on using the changeset viewer.