flush_pending ();
new_session_dialog->set_existing_session (false);
- new_session_dialog->set_current_page (2);
+ new_session_dialog->set_current_page (0); // new engine page
+ new_session_dialog->engine_control.unset_interface_chosen ();
+ cerr << "go back and show the engine setup tab again , beir = "
+ << backend_audio_is_running << endl;
response = Gtk::RESPONSE_NONE;
goto try_again;
void discover_servers ();
bool interface_chosen () const { return _interface_chosen; }
+ void unset_interface_chosen() { _interface_chosen = false; }
bool was_used() const { return _used; }
XMLNode& get_state ();
void set_state (const XMLNode&);
- sigc::signal<void> InterfaceChosen;
- void emit_interface_chosen(); /* grr, need to figure out how to connect signalsl directly */
private:
Gtk::Adjustment periods_adjustment;
void
NewSessionDialog::set_have_engine (bool yn)
{
- if (yn) {
- m_notebook->remove_page (engine_control);
- page_set = Pages (page_set & ~EnginePage);
- } else {
- if (!(page_set & EnginePage)) {
- engine_control.discover_servers ();
- if (engine_control.interface_chosen()) {
- m_notebook->append_page (engine_control, _("Audio Setup"));
- m_notebook->show_all_children();
- page_set = Pages (page_set | EnginePage);
- } else {
- /* no interface ever selected - make it the first and only page */
- m_notebook->prepend_page (engine_control, _("Audio Setup"));
- if (page_set & NewPage) {
- m_notebook->remove_page (*new_session_table);
- }
- if (page_set & OpenPage) {
- m_notebook->remove_page (*open_session_vbox);
- }
- m_notebook->show_all_children();
- page_set = Pages (EnginePage);
+
+ m_notebook->remove_page (engine_control);
+ page_set = Pages (page_set & ~EnginePage);
+
+ if (!yn) {
+
+ engine_control.discover_servers ();
+
+ if (engine_control.interface_chosen()) {
+ m_notebook->append_page (engine_control, _("Audio Setup"));
+ m_notebook->show_all_children();
+ page_set = Pages (page_set | EnginePage);
+ } else {
+ m_notebook->prepend_page (engine_control, _("Audio Setup"));
+ page_set = Pages (page_set | EnginePage);
+
+ /* no interface ever selected - make it the first and only page */
+ if (page_set & NewPage) {
+ m_notebook->remove_page (*new_session_table);
+ page_set = Pages (page_set & ~NewPage);
}
+ if (page_set & OpenPage) {
+ m_notebook->remove_page (*open_session_vbox);
+ page_set = Pages (page_set & ~OpenPage);
+ }
+ m_notebook->show_all_children();
}
}
}
{
int num = m_notebook->get_current_page();
+ cerr << "current page set = " << std::hex << page_set << std::dec << endl;
+
if (page_set == NewPage) {
return NewPage;