mirror of
https://github.com/cookiengineer/audacity
synced 2025-05-05 14:18:53 +02:00
94 lines
2.6 KiB
C
94 lines
2.6 KiB
C
/*
|
|
Copyright 2007-2012 David Robillard <http://drobilla.net>
|
|
|
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
purpose with or without fee is hereby granted, provided that the above
|
|
copyright notice and this permission notice appear in all copies.
|
|
|
|
THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
|
|
#include "lilv/lilv.h"
|
|
|
|
#include "lilv_config.h"
|
|
|
|
static void
|
|
list_plugins(const LilvPlugins* list, bool show_names)
|
|
{
|
|
LILV_FOREACH(plugins, i, list) {
|
|
const LilvPlugin* p = lilv_plugins_get(list, i);
|
|
if (show_names) {
|
|
LilvNode* n = lilv_plugin_get_name(p);
|
|
printf("%s\n", lilv_node_as_string(n));
|
|
lilv_node_free(n);
|
|
} else {
|
|
printf("%s\n", lilv_node_as_uri(lilv_plugin_get_uri(p)));
|
|
}
|
|
}
|
|
}
|
|
|
|
static void
|
|
print_version(void)
|
|
{
|
|
printf(
|
|
"lv2ls (lilv) " LILV_VERSION "\n"
|
|
"Copyright 2007-2012 David Robillard <http://drobilla.net>\n"
|
|
"License: <http://www.opensource.org/licenses/isc-license>\n"
|
|
"This is free software: you are free to change and redistribute it.\n"
|
|
"There is NO WARRANTY, to the extent permitted by law.\n");
|
|
}
|
|
|
|
static void
|
|
print_usage(void)
|
|
{
|
|
printf("Usage: lv2ls [OPTION]...\n");
|
|
printf("List all installed LV2 plugins.\n");
|
|
printf("\n");
|
|
printf(" -n, --names Show names instead of URIs\n");
|
|
printf(" --help Display this help and exit\n");
|
|
printf(" --version Display version information and exit\n");
|
|
printf("\n");
|
|
printf("The environment variable LV2_PATH can be used to control where\n");
|
|
printf("this (and all other lilv based LV2 hosts) will search for plugins.\n");
|
|
}
|
|
|
|
int
|
|
main(int argc, char** argv)
|
|
{
|
|
bool show_names = false;
|
|
for (int i = 1; i < argc; ++i) {
|
|
if (!strcmp(argv[i], "--names") || !strcmp(argv[i], "-n")) {
|
|
show_names = true;
|
|
} else if (!strcmp(argv[i], "--version")) {
|
|
print_version();
|
|
return 0;
|
|
} else if (!strcmp(argv[i], "--help")) {
|
|
print_usage();
|
|
return 0;
|
|
} else {
|
|
print_usage();
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
LilvWorld* world = lilv_world_new();
|
|
lilv_world_load_all(world);
|
|
|
|
const LilvPlugins* plugins = lilv_world_get_all_plugins(world);
|
|
|
|
list_plugins(plugins, show_names);
|
|
|
|
lilv_world_free(world);
|
|
|
|
return 0;
|
|
}
|