Changeset 5592:da9a9bb6ece0 in roaraudio
- Timestamp:
- 07/22/12 15:24:36 (12 years ago)
- Branch:
- default
- Phase:
- public
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/man1/roard.1
r5399 r5592 159 159 Arguments for the plugin. 160 160 (must be given before the \-\-plugin-load). 161 162 .TP 163 \fB--list-plugins\fR 164 List loaded plugins. 161 165 162 166 .SH "SECURITY" -
roard/include/plugins.h
r5447 r5592 45 45 int plugins_load (const char * filename, const char * args); 46 46 47 void print_pluginlist(enum output_format format); 48 47 49 int plugins_reg_sched(struct roard_plugins_sched * sched); 48 50 int plugins_reg_proto(struct roard_proto * proto); -
roard/plugins.c
r5586 r5592 49 49 int i; 50 50 51 ROAR_DBG("_find_free(void) = ?"); 52 51 53 for (i = 0; i < MAX_PLUGINS; i++) { 52 54 if ( g_plugins[i].lhandle == NULL ) { 53 55 memset(&(g_plugins[i]), 0, sizeof(struct _roard_plugin)); 56 ROAR_DBG("_find_free(void) = %p // i=%i", &(g_plugins[i]), i); 54 57 return &(g_plugins[i]); 55 58 } 56 59 } 57 60 61 ROAR_DBG("_find_free(void) = NULL"); 58 62 return NULL; 59 63 } 60 64 61 65 int plugins_preinit (void) { 66 ROAR_DBG("plugins_preinit(void) = ?"); 67 62 68 memset(g_plugins, 0, sizeof(g_plugins)); 63 69 70 #ifdef DEBUG 71 print_pluginlist(FORMAT_NATIVE); 72 #endif 73 74 ROAR_DBG("plugins_preinit(void) = 0"); 64 75 return 0; 65 76 } … … 67 78 static inline void plugins_delete(struct _roard_plugin * plugin) { 68 79 int i; 80 81 ROAR_DBG("plugins_delete(plugin=%p) = ?", plugin); 69 82 70 83 if ( plugin->sched != NULL ) { … … 93 106 return -1; 94 107 108 ROAR_DBG("plugins_init_one(plugin=%p) = ?", plugin); 109 95 110 _pp = plugin; 96 111 _pp->sched = NULL; … … 120 135 size_t i; 121 136 137 ROAR_DBG("plugins_init(void) = ?"); 138 139 #ifdef DEBUG 140 print_pluginlist(FORMAT_NATIVE); 141 #endif 142 122 143 if ( _plugins_inited ) { 144 ROAR_DBG("plugins_init(void) = -1 // error=BUSY"); 123 145 roar_err_set(ROAR_ERROR_BUSY); 124 146 return -1; … … 135 157 _plugins_inited = 1; 136 158 159 #ifdef DEBUG 160 print_pluginlist(FORMAT_NATIVE); 161 #endif 162 163 ROAR_DBG("plugins_init(void) = 0"); 137 164 return 0; 138 165 } … … 140 167 int plugins_free (void) { 141 168 int i; 169 170 ROAR_DBG("plugins_free(void) = ?"); 142 171 143 172 for (i = 0; i < MAX_PLUGINS; i++) { … … 178 207 int i; 179 208 209 ROAR_DBG("plugins_load(filename=\"%s\", args=\"%s\") = ?", filename, args); 210 180 211 if ( next == NULL ) 181 212 return -1; 182 213 183 for (i = 0; i < MAX_P ROTOS; i++)214 for (i = 0; i < MAX_PLUGINS; i++) 184 215 next->protocols[i] = -1; 185 216 … … 201 232 202 233 return 0; 234 } 235 236 void print_pluginlist(enum output_format format) { 237 const struct roar_dl_libraryname * libname; 238 struct _roard_plugin * p; 239 size_t i; 240 241 switch (format) { 242 case FORMAT_NATIVE: 243 printf(" Name\n"); 244 printf(" Attributes\n"); 245 printf("-----------------------------------------------------\n"); 246 break; 247 case FORMAT_WIKI: 248 case FORMAT_CSV: 249 default: 250 roar_err_set(ROAR_ERROR_NOTSUP); 251 return; 252 } 253 254 for (i = 0; i < MAX_PLUGINS; i++) { 255 p = &(g_plugins[i]); 256 if ( p->lhandle == NULL ) 257 continue; 258 259 libname = roar_dl_getlibname(p->lhandle); 260 if ( libname == NULL ) { 261 } else { 262 printf(" %s\n", libname->libname); 263 printf(" Flags: %s\n", p->sched != NULL ? "roardsched" : ""); 264 if ( libname->description != NULL ) 265 printf(" Description: %s\n", libname->description); 266 if ( libname->contact != NULL ) 267 printf(" Contact: %s\n", libname->contact); 268 } 269 } 203 270 } 204 271 -
roard/roard.c
r5586 r5592 43 43 enum metaaction { 44 44 MA_ACTION, 45 MA_LIST_PROTO 45 MA_LIST_PROTO, 46 MA_LIST_PLUGIN 46 47 }; 47 48 … … 272 273 " --plugin-args ARGS - Arguments for the plugin\n" 273 274 " (must be given before the --plugin-load)\n" 275 " --list-plugins - List loaded plugins\n" 274 276 ); 275 277 … … 1766 1768 _CKHAVEARGS(1); 1767 1769 plugin_args = argv[++i]; 1770 } else if ( strcmp(k, "--list-plugins") == 0 ) { 1771 metaaction = MA_LIST_PLUGIN; 1768 1772 1769 1773 } else if ( strcmp(k, "--guest-acclev") == 0 ) { … … 2467 2471 return 0; 2468 2472 break; 2473 case MA_LIST_PLUGIN: 2474 print_pluginlist(print_format); 2475 return 0; 2476 break; 2469 2477 } 2470 2478 #endif
Note: See TracChangeset
for help on using the changeset viewer.