GPtrArray *loaded_plugins;
+#ifdef __MINGW32__
+#include <windows.h>
+
static
-void sigint_handler(int signum)
+BOOL WINAPI signal_handler(DWORD signal) {
+ if (the_graph) {
+ bt_graph_cancel(the_graph);
+ }
+
+ canceled = true;
+
+ return TRUE;
+}
+
+static
+void set_signal_handler(void)
+{
+ if (!SetConsoleCtrlHandler(signal_handler, TRUE)) {
+ BT_LOGE("Failed to set the ctrl+c handler.");
+ }
+}
+#else /* __MINGW32__ */
+static
+void signal_handler(int signum)
{
if (signum != SIGINT) {
return;
canceled = true;
}
+static
+void set_signal_handler(void)
+{
+ struct sigaction new_action, old_action;
+
+ new_action.sa_handler = signal_handler;
+ sigemptyset(&new_action.sa_mask);
+ new_action.sa_flags = 0;
+ sigaction(SIGINT, NULL, &old_action);
+
+ if (old_action.sa_handler != SIG_IGN) {
+ sigaction(SIGINT, &new_action, NULL);
+ }
+}
+#endif /* __MINGW32__ */
+
static
void init_static_data(void)
{
printf("%s%s%s%s:\n", bt_common_color_bold(),
bt_common_color_fg_blue(), plugin_name,
bt_common_color_reset());
- printf(" %sPath%s: %s\n", bt_common_color_bold(),
- bt_common_color_reset(), path ? path : "(None)");
+ if (path) {
+ printf(" %sPath%s: %s\n", bt_common_color_bold(),
+ bt_common_color_reset(), path);
+ } else {
+ puts(" Built-in");
+ }
if (version_status == BT_PLUGIN_STATUS_OK) {
printf(" %sVersion%s: %u.%u.%u",
}
ctx->connect_ports = true;
}
- goto end;
- }
- if (status != BT_GRAPH_STATUS_OK) {
- BT_LOGE("Cannot create connection: cannot find a matching downstream port for upstream port: "
- "upstream-port-addr=%p, upstream-port-name=\"%s\", "
- "downstream-comp-name=\"%s\", conn-arg=\"%s\"",
- upstream_port, bt_port_get_name(upstream_port),
- cfg_conn->downstream_comp_name->str,
- cfg_conn->arg->str);
- fprintf(stderr,
- "Cannot create connection: cannot find a matching downstream port for upstream port `%s`: %s\n",
- bt_port_get_name(upstream_port), cfg_conn->arg->str);
- goto error;
+ /*
+ * We found a matching downstream port: the search is
+ * over.
+ */
+ goto end;
}
- goto end;
+ /* No downstream port found */
+ BT_LOGE("Cannot create connection: cannot find a matching downstream port for upstream port: "
+ "upstream-port-addr=%p, upstream-port-name=\"%s\", "
+ "downstream-comp-name=\"%s\", conn-arg=\"%s\"",
+ upstream_port, bt_port_get_name(upstream_port),
+ cfg_conn->downstream_comp_name->str,
+ cfg_conn->arg->str);
+ fprintf(stderr,
+ "Cannot create connection: cannot find a matching downstream port for upstream port `%s`: %s\n",
+ bt_port_get_name(upstream_port), cfg_conn->arg->str);
error:
ret = -1;
}
}
-static
-void set_sigint_handler(void)
-{
- struct sigaction new_action, old_action;
-
- new_action.sa_handler = sigint_handler;
- sigemptyset(&new_action.sa_mask);
- new_action.sa_flags = 0;
- sigaction(SIGINT, NULL, &old_action);
-
- if (old_action.sa_handler != SIG_IGN) {
- sigaction(SIGINT, &new_action, NULL);
- }
-}
-
int main(int argc, const char **argv)
{
int ret;
struct bt_config *cfg;
init_log_level();
- set_sigint_handler();
+ set_signal_handler();
init_static_data();
cfg = bt_config_cli_args_create_with_default(argc, argv, &retcode);