Start and stop A2J bridge menu entries
This commit is contained in:
parent
79ffd453ec
commit
057bfda4e4
|
@ -93,6 +93,8 @@ Patchage::Patchage(int argc, char** argv)
|
|||
, INIT_WIDGET(_menu_help_about)
|
||||
, INIT_WIDGET(_menu_jack_start)
|
||||
, INIT_WIDGET(_menu_jack_stop)
|
||||
, INIT_WIDGET(_menu_a2j_start)
|
||||
, INIT_WIDGET(_menu_a2j_stop)
|
||||
, INIT_WIDGET(_menu_load_project)
|
||||
, INIT_WIDGET(_menu_save_all_projects)
|
||||
, INIT_WIDGET(_menu_close_all_projects)
|
||||
|
@ -220,6 +222,11 @@ Patchage::Patchage(int argc, char** argv)
|
|||
_menu_jack_stop->signal_activate().connect(
|
||||
sigc::mem_fun(_jack, &jack_proxy::stop_server));
|
||||
|
||||
_menu_a2j_start->signal_activate().connect(
|
||||
sigc::mem_fun(_a2j, &a2j_proxy::start_bridge));
|
||||
_menu_a2j_stop->signal_activate().connect(
|
||||
sigc::mem_fun(_a2j, &a2j_proxy::stop_bridge));
|
||||
|
||||
jack_status_changed(_jack->is_started());
|
||||
|
||||
connect_widgets();
|
||||
|
@ -573,16 +580,24 @@ Patchage::set_a2j_status(
|
|||
{
|
||||
case A2J_STATUS_NO_RESPONSE:
|
||||
status_text = "A2J N/A";
|
||||
_menu_a2j_start->set_sensitive(false);
|
||||
_menu_a2j_stop->set_sensitive(false);
|
||||
break;
|
||||
case A2J_STATUS_BRIDGE_STOPPED:
|
||||
status_text = "A2J bridge stopped";
|
||||
_menu_a2j_start->set_sensitive(true);
|
||||
_menu_a2j_stop->set_sensitive(false);
|
||||
break;
|
||||
case A2J_STATUS_BRIDGE_STARTED:
|
||||
status_text = "A2J bridge started";
|
||||
_menu_a2j_start->set_sensitive(false);
|
||||
_menu_a2j_stop->set_sensitive(true);
|
||||
break;
|
||||
default:
|
||||
error_msg(str(boost::format("Unknown A2J status %u") % status));
|
||||
status_text = "Unknown A2J status";
|
||||
_menu_a2j_start->set_sensitive(true);
|
||||
_menu_a2j_stop->set_sensitive(true);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -165,6 +165,8 @@ protected:
|
|||
Widget<Gtk::MenuItem> _menu_help_about;
|
||||
Widget<Gtk::MenuItem> _menu_jack_start;
|
||||
Widget<Gtk::MenuItem> _menu_jack_stop;
|
||||
Widget<Gtk::MenuItem> _menu_a2j_start;
|
||||
Widget<Gtk::MenuItem> _menu_a2j_stop;
|
||||
Widget<Gtk::MenuItem> _menu_load_project;
|
||||
Widget<Gtk::MenuItem> _menu_save_all_projects;
|
||||
Widget<Gtk::MenuItem> _menu_close_all_projects;
|
||||
|
|
|
@ -310,3 +310,29 @@ a2j_proxy_impl::is_started()
|
|||
|
||||
return started;
|
||||
}
|
||||
|
||||
void
|
||||
a2j_proxy::start_bridge()
|
||||
{
|
||||
DBusMessage * reply_ptr;
|
||||
|
||||
if (!_impl_ptr->call(true, A2J_IFACE_CONTROL, "start", &reply_ptr, DBUS_TYPE_INVALID))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
dbus_message_unref(reply_ptr);
|
||||
}
|
||||
|
||||
void
|
||||
a2j_proxy::stop_bridge()
|
||||
{
|
||||
DBusMessage * reply_ptr;
|
||||
|
||||
if (!_impl_ptr->call(true, A2J_IFACE_CONTROL, "stop", &reply_ptr, DBUS_TYPE_INVALID))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
dbus_message_unref(reply_ptr);
|
||||
}
|
||||
|
|
|
@ -40,6 +40,12 @@ public:
|
|||
string& alsa_client_name,
|
||||
string& alsa_port_name);
|
||||
|
||||
void
|
||||
start_bridge();
|
||||
|
||||
void
|
||||
stop_bridge();
|
||||
|
||||
private:
|
||||
a2j_proxy_impl * _impl_ptr;
|
||||
};
|
||||
|
|
|
@ -144,6 +144,37 @@
|
|||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkImageMenuItem" id="menu_a2j_start">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Start A2J bridge</property>
|
||||
<property name="use_underline">True</property>
|
||||
<accelerator key="A" modifiers="GDK_CONTROL_MASK" signal="activate"/>
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="menu-item-image11">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-media-play</property>
|
||||
<property name="icon_size">1</property>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkImageMenuItem" id="menu_a2j_stop">
|
||||
<property name="visible">True</property>
|
||||
<property name="sensitive">False</property>
|
||||
<property name="label" translatable="yes">Stop A2J bridge</property>
|
||||
<property name="use_underline">True</property>
|
||||
<accelerator key="A" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK" signal="activate"/>
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="menu-item-image12">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-media-stop</property>
|
||||
<property name="icon_size">1</property>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
|
|
Loading…
Reference in New Issue