gladish: add menu items for reactivating jackdbus and a2jmidid. Fixes #132

This commit is contained in:
Nedko Arnaudov 2010-12-25 05:12:19 +02:00
parent 6a58ad88a4
commit 8ff8613dc7
11 changed files with 118 additions and 8 deletions

View File

@ -127,13 +127,13 @@ void control_proxy_on_studio_disappeared(void)
destroy_studio_view();
}
void menu_request_daemon_exit(void)
void menu_request_ladishd_exit(void)
{
log_info("Daemon exit request");
log_info("ladishd exit request");
if (!control_proxy_exit())
{
error_message_box(_("Daemon exit command failed, please inspect logs."));
error_message_box(_("ladishd exit command failed, please inspect logs."));
}
}

View File

@ -328,7 +328,7 @@
</object>
</child>
<child>
<object class="GtkImageMenuItem" id="menu_item_daemon_exit">
<object class="GtkImageMenuItem" id="menu_item_ladishd_exit">
<property name="label" translatable="yes">Reactivate ladishd</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="image">image_reactivate_ladishd</property>
@ -336,6 +336,24 @@
<property name="visible">True</property>
</object>
</child>
<child>
<object class="GtkImageMenuItem" id="menu_item_jackdbus_exit">
<property name="label" translatable="yes">Reactivate jackdbus</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="image">image_reactivate_jackdbus</property>
<property name="use_stock">False</property>
<property name="visible">True</property>
</object>
</child>
<child>
<object class="GtkImageMenuItem" id="menu_item_a2jmidid_exit">
<property name="label" translatable="yes">Reactivate a2jmidid</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="image">image_reactivate_a2jmidid</property>
<property name="use_stock">False</property>
<property name="visible">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem" id="menu_item_jack_latency">
<property name="label" translatable="yes">JACK _Latency</property>
@ -1343,6 +1361,14 @@ along with LADI Session Handler; if not, write to the Free Software Foundation,
<property name="stock">gtk-refresh</property>
<property name="visible">True</property>
</object>
<object class="GtkImage" id="image_reactivate_jackdbus">
<property name="stock">gtk-refresh</property>
<property name="visible">True</property>
</object>
<object class="GtkImage" id="image_reactivate_a2jmidid">
<property name="stock">gtk-refresh</property>
<property name="visible">True</property>
</object>
<object class="GtkImage" id="image_arrange_canvas">
<property name="stock">gtk-sort-ascending</property>
<property name="visible">True</property>

View File

@ -33,7 +33,9 @@
#include "statusbar.h"
#include "action.h"
#include "../proxies/jack_proxy.h"
#include "../proxies/a2j_proxy.h"
#include "gtk_builder.h"
#include "ask_dialog.h"
/* JACK states */
#define JACK_STATE_NA 0
@ -237,6 +239,46 @@ void menu_request_jack_latency_change(uint32_t buffer_size)
}
}
void menu_request_jackdbus_exit(void)
{
bool result;
log_info("jackdbus exit request");
if (g_jack_state == JACK_STATE_STARTED)
{
if (!ask_dialog(&result, _("<b><big>Are you sure</big></b>"), _("jackdbus will be reactivated. Are you sure?")) || !result)
{
return;
}
}
if (!jack_proxy_exit())
{
error_message_box(_("jackdbus exit command failed, please inspect logs."));
}
}
void menu_request_a2jmidid_exit(void)
{
bool result;
log_info("a2jmidid exit request");
if (g_jack_state == JACK_STATE_STARTED)
{
if (!ask_dialog(&result, _("<b><big>Are you sure</big></b>"), _("a2jmidid will be reactivated. Are you sure?")) || !result)
{
return;
}
}
if (!a2j_proxy_exit())
{
error_message_box(_("a2jmidid exit command failed, please inspect logs."));
}
}
void menu_request_jack_configure(void)
{
GError * error_ptr;

View File

@ -29,6 +29,7 @@
#include "gtk_builder.h"
#include "canvas.h"
#include "../proxies/control_proxy.h"
#include "../proxies/a2j_proxy.h"
#include "world_tree.h"
#include "graph_view.h"
#include "../common/catdup.h"
@ -165,6 +166,11 @@ int main(int argc, char** argv)
return 1;
}
if (!a2j_proxy_init())
{
return 1;
}
if (!control_proxy_init())
{
return 1;
@ -189,6 +195,7 @@ int main(int argc, char** argv)
studio_proxy_uninit();
control_proxy_uninit();
a2j_proxy_uninit();
uninit_jack();
menu_uninit();
create_room_dialog_uninit();

View File

@ -41,7 +41,9 @@ static GtkWidget * g_menu_item_rename_studio;
static GtkWidget * g_menu_item_create_room;
static GtkWidget * g_menu_item_destroy_room;
static GtkWidget * g_menu_item_project;
static GtkWidget * g_menu_item_daemon_exit;
static GtkWidget * g_menu_item_ladishd_exit;
static GtkWidget * g_menu_item_jackdbus_exit;
static GtkWidget * g_menu_item_a2jmidid_exit;
static GtkWidget * g_menu_item_jack_configure;
static GtkWidget * g_menu_item_settings;
static GtkCheckMenuItem * g_menu_item_jack_latency_32;
@ -177,7 +179,9 @@ bool menu_init(void)
g_menu_item_create_room = get_gtk_builder_widget("menu_item_create_room");
g_menu_item_destroy_room = get_gtk_builder_widget("menu_item_destroy_room");
g_menu_item_project = get_gtk_builder_widget("project_menu_item");
g_menu_item_daemon_exit = get_gtk_builder_widget("menu_item_daemon_exit");
g_menu_item_ladishd_exit = get_gtk_builder_widget("menu_item_ladishd_exit");
g_menu_item_jackdbus_exit = get_gtk_builder_widget("menu_item_jackdbus_exit");
g_menu_item_a2jmidid_exit = get_gtk_builder_widget("menu_item_a2jmidid_exit");
g_menu_item_jack_configure = get_gtk_builder_widget("menu_item_jack_configure");
g_menu_item_settings = get_gtk_builder_widget("menu_item_settings");
g_menu_item_view_toolbar = get_gtk_builder_widget("menu_item_view_toolbar");
@ -203,7 +207,9 @@ bool menu_init(void)
g_signal_connect(G_OBJECT(g_menu_item_save_studio), "activate", G_CALLBACK(menu_request_save_studio), NULL);
g_signal_connect(G_OBJECT(g_menu_item_save_as_studio), "activate", G_CALLBACK(menu_request_save_as_studio), NULL);
g_signal_connect(G_OBJECT(g_menu_item_rename_studio), "activate", G_CALLBACK(menu_request_rename_studio), NULL);
g_signal_connect(G_OBJECT(g_menu_item_daemon_exit), "activate", G_CALLBACK(menu_request_daemon_exit), NULL);
g_signal_connect(G_OBJECT(g_menu_item_ladishd_exit), "activate", G_CALLBACK(menu_request_ladishd_exit), NULL);
g_signal_connect(G_OBJECT(g_menu_item_jackdbus_exit), "activate", G_CALLBACK(menu_request_jackdbus_exit), NULL);
g_signal_connect(G_OBJECT(g_menu_item_a2jmidid_exit), "activate", G_CALLBACK(menu_request_a2jmidid_exit), NULL);
g_signal_connect(G_OBJECT(g_menu_item_jack_configure), "activate", G_CALLBACK(menu_request_jack_configure), NULL);
g_signal_connect(G_OBJECT(g_menu_item_settings), "activate", G_CALLBACK(menu_request_settings), NULL);
g_signal_connect(G_OBJECT(g_menu_item_start_app), "activate", G_CALLBACK(menu_request_start_app), NULL);

View File

@ -39,7 +39,9 @@ void menu_set_toolbar_visibility(bool visible);
void menu_view_activated(bool room);
void fill_view_popup_menu(GtkMenu * menu, graph_view_handle view);
void menu_request_daemon_exit(void);
void menu_request_ladishd_exit(void);
void menu_request_jackdbus_exit(void);
void menu_request_a2jmidid_exit(void);
void menu_request_jack_configure(void);
void menu_request_settings(void);
void menu_request_save_studio(void);

View File

@ -254,3 +254,14 @@ bool a2j_proxy_stop_bridge(void)
return true;
}
bool a2j_proxy_exit(void)
{
if (!dbus_call(0, A2J_SERVICE, A2J_OBJECT, A2J_IFACE_CONTROL, "exit", "", ""))
{
log_error("exit() failed.");
return false;
}
return true;
}

View File

@ -45,4 +45,6 @@ bool a2j_proxy_is_started(void);
bool a2j_proxy_start_bridge(void);
bool a2j_proxy_stop_bridge(void);
bool a2j_proxy_exit(void);
#endif // #ifndef A2J_PROXY_HPP__24525CB1_8AED_4697_8C56_5C57473839CC__INCLUDED

View File

@ -628,3 +628,14 @@ bool jack_reset_all_params(void)
return jack_proxy_read_conf_container(address, NULL, reset_callback);
}
bool jack_proxy_exit(void)
{
if (!dbus_call(0, JACKDBUS_SERVICE_NAME, JACKDBUS_OBJECT_PATH, JACKDBUS_IFACE_CONTROL, "Exit", "", ""))
{
log_error("Exit() failed.");
return false;
}
return true;
}

View File

@ -135,4 +135,6 @@ jack_proxy_reset_parameter_value(
bool jack_reset_all_params(void);
bool jack_proxy_exit(void);
#endif /* #ifndef JACK_PROXY_H__88702EEC_4B82_407F_A664_AD70C1E14D02__INCLUDED */

View File

@ -533,6 +533,7 @@ def build(bld):
for source in [
'jack_proxy.c',
'a2j_proxy.c',
'graph_proxy.c',
'studio_proxy.c',
'control_proxy.c',