, play_selection_controllable (new TransportControllable ("transport play selection", *this, TransportControllable::PlaySelection))
, rec_controllable (new TransportControllable ("transport rec-enable", *this, TransportControllable::RecordEnable))
- , transport_joiner (play_selection_button, roll_button)
-
, auto_return_button (ArdourButton::led_default_elements)
, auto_play_button (ArdourButton::led_default_elements)
, auto_input_button (ArdourButton::led_default_elements)
big_clock_resize_in_progress = false;
session_selector_window = 0;
last_key_press_time = 0;
- _will_create_new_session_automatically = false;
add_route_dialog = 0;
route_params = 0;
bundle_manager = 0;
original_big_clock_height = -1;
original_big_clock_font_size = 0;
+ roll_button.set_elements (ArdourButton::Element (ArdourButton::Body|ArdourButton::Text));
+ play_selection_button.set_elements (ArdourButton::Element (ArdourButton::Body|ArdourButton::Text));
+
roll_button.set_controllable (roll_controllable);
stop_button.set_controllable (stop_controllable);
goto_start_button.set_controllable (goto_start_controllable);
}
}
-void
-ARDOUR_UI::backend_audio_error (bool we_set_params, Gtk::Window* toplevel)
-{
- string title;
- if (we_set_params) {
- title = string_compose (_("%1 could not start JACK"), PROGRAM_NAME);
- } else {
- title = string_compose (_("%1 could not connect to JACK."), PROGRAM_NAME);
- }
-
- MessageDialog win (title,
- false,
- Gtk::MESSAGE_INFO,
- Gtk::BUTTONS_NONE);
-
- if (we_set_params) {
- win.set_secondary_text(_("There are several possible reasons:\n\
-\n\
-1) You requested audio parameters that are not supported..\n\
-2) JACK is running as another user.\n\
-\n\
-Please consider the possibilities, and perhaps try different parameters."));
- } else {
- win.set_secondary_text(_("There are several possible reasons:\n\
-\n\
-1) JACK is not running.\n\
-2) JACK is running as another user, perhaps root.\n\
-3) There is already another client called \"ardour\".\n\
-\n\
-Please consider the possibilities, and perhaps (re)start JACK."));
- }
-
- if (toplevel) {
- win.set_transient_for (*toplevel);
- }
-
- if (we_set_params) {
- win.add_button (Stock::OK, RESPONSE_CLOSE);
- } else {
- win.add_button (Stock::QUIT, RESPONSE_CLOSE);
- }
-
- win.set_default_response (RESPONSE_CLOSE);
-
- win.show_all ();
- win.set_position (Gtk::WIN_POS_CENTER);
- pop_back_splash (win);
-
- /* we just don't care about the result, but we want to block */
-
- win.run ();
-}
-
void
ARDOUR_UI::startup ()
{
return TRUE;
}
-gint
-ARDOUR_UI::session_menu (GdkEventButton */*ev*/)
-{
- session_popup_menu->popup (0, 0);
- return TRUE;
-}
-
void
ARDOUR_UI::redisplay_recent_sessions ()
{
}
}
+ recent_session_display.set_tooltip_column(1); // recent_session_columns.fullpath
recent_session_display.set_model (recent_session_model);
}
open_session_selector->add_button (Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
open_session_selector->add_button (Gtk::Stock::OPEN, Gtk::RESPONSE_ACCEPT);
open_session_selector->set_default_response(Gtk::RESPONSE_ACCEPT);
+
+ if (_session) {
+ string session_parent_dir = Glib::path_get_dirname(_session->path());
+ string::size_type last_dir_sep = session_parent_dir.rfind(G_DIR_SEPARATOR);
+ session_parent_dir = session_parent_dir.substr(0, last_dir_sep);
+ open_session_selector->set_current_folder(session_parent_dir);
+ } else {
+ open_session_selector->set_current_folder(Config->get_default_session_parent_dir());
+ }
+
+ open_session_selector->add_shortcut_folder (Config->get_default_session_parent_dir());
FileFilter session_filter;
session_filter.add_pattern ("*.ardour");
}
}
-void
-ARDOUR_UI::do_transport_locate (framepos_t new_position, bool with_roll)
-{
- framecnt_t _preroll = 0;
-
- if (_session) {
- // XXX CONFIG_CHANGE FIX - requires AnyTime handling
- // _preroll = _session->convert_to_frames_at (new_position, Config->get_preroll());
-
- if (new_position > _preroll) {
- new_position -= _preroll;
- } else {
- new_position = 0;
- }
-
- _session->request_locate (new_position, with_roll);
- }
-}
-
void
ARDOUR_UI::transport_goto_start ()
{
_session->request_stop (false, true);
}
-void
-ARDOUR_UI::transport_stop_and_forget_capture ()
-{
- if (_session) {
- _session->request_stop (true, true);
- }
-}
-
-void
-ARDOUR_UI::remove_last_capture()
-{
- if (editor) {
- editor->remove_last_capture();
- }
-}
-
void
ARDOUR_UI::transport_record (bool roll)
{
void
ARDOUR_UI::toggle_session_auto_loop ()
{
- if (!_session) {
+ Location * looploc = _session->locations()->auto_loop_location();
+
+ if (!_session || !looploc) {
return;
}
if (_session->transport_rolling()) {
- Location * looploc = _session->locations()->auto_loop_location();
-
- if (looploc) {
- _session->request_locate (looploc->start(), true);
- _session->request_play_loop (false);
- }
+ _session->request_locate (looploc->start(), true);
+ _session->request_play_loop (false);
} else {
_session->request_play_loop (false);
}
} else {
-
- Location * looploc = _session->locations()->auto_loop_location();
-
- if (looploc) {
- _session->request_play_loop (true);
- }
+ _session->request_play_loop (true);
}
+
+ //show the loop markers
+ looploc->set_hidden (false, this);
}
void
auto_loop_button.unset_active_state ();
play_selection_button.unset_active_state ();
roll_button.unset_active_state ();
- stop_button.set_active_state (Gtkmm2ext::Active);
+ stop_button.set_active_state (Gtkmm2ext::ExplicitActive);
return;
}
if (_session->get_play_range()) {
- play_selection_button.set_active_state (Gtkmm2ext::Active);
+ play_selection_button.set_active_state (Gtkmm2ext::ExplicitActive);
roll_button.unset_active_state ();
auto_loop_button.unset_active_state ();
} else if (_session->get_play_loop ()) {
- auto_loop_button.set_active_state (Gtkmm2ext::Active);
- play_selection_button.unset_active_state ();
- roll_button.unset_active_state ();
+ auto_loop_button.set_active (true);
+ play_selection_button.set_active (false);
+ roll_button.set_active (false);
} else {
- roll_button.set_active_state (Gtkmm2ext::Active);
- play_selection_button.unset_active_state ();
- auto_loop_button.unset_active_state ();
+ roll_button.set_active (true);
+ play_selection_button.set_active (false);
+ auto_loop_button.set_active (false);
}
if (Config->get_always_play_range()) {
/* light up both roll and play-selection if they are joined */
- roll_button.set_active_state (Gtkmm2ext::Active);
- play_selection_button.set_active_state (Gtkmm2ext::Active);
+ roll_button.set_active (true);
+ play_selection_button.set_active (true);
}
- stop_button.unset_active_state ();
+ stop_button.set_active (false);
} else {
- stop_button.set_active_state (Gtkmm2ext::Active);
- roll_button.unset_active_state ();
- play_selection_button.unset_active_state ();
- auto_loop_button.unset_active_state ();
+ stop_button.set_active (true);
+ roll_button.set_active (false);
+ play_selection_button.set_active (false);
+ auto_loop_button.set_active (false);
update_disk_space ();
}
}
return 0;
}
-void
-ARDOUR_UI::setup_theme ()
-{
- theme_manager->setup_theme();
-}
-
void
ARDOUR_UI::update_clocks ()
{
clock_signal_connection.disconnect ();
}
-void
-ARDOUR_UI::toggle_clocking ()
-{
-#if 0
- if (clock_button.get_active()) {
- start_clocking ();
- } else {
- stop_clocking ();
- }
-#endif
-}
-
gint
ARDOUR_UI::_blink (void *arg)
if (r == Session::Enabled || (r == Session::Recording && !h)) {
if (onoff) {
- rec_button.set_active_state (Active);
+ rec_button.set_active_state (Gtkmm2ext::ExplicitActive);
} else {
- rec_button.set_active_state (Mid);
+ rec_button.set_active_state (Gtkmm2ext::ImplicitActive);
}
} else if (r == Session::Recording && h) {
- rec_button.set_active_state (Mid);
+ rec_button.set_active_state (Gtkmm2ext::ExplicitActive);
} else {
rec_button.unset_active_state ();
}
}
}
-void
-ARDOUR_UI::end_loading_messages ()
-{
- // hide_splash ();
-}
-
void
ARDOUR_UI::loading_message (const std::string& msg)
{
} else {
if (!likely_new) {
- MessageDialog msg (string_compose (_("There is no existing session at \"%1\""), session_path));
- msg.run ();
- ARDOUR_COMMAND_LINE::session_name = ""; // cancel that
- continue;
- }
+ if (_startup) {
+ pop_back_splash (*_startup);
+ } else {
+ hide_splash ();
+ }
- if (session_name.find ('/') != std::string::npos) {
- MessageDialog msg (*_startup,
- _("To ensure compatibility with various systems\n"
- "session names may not contain a '/' character"));
+ MessageDialog msg (string_compose (_("There is no existing session at \"%1\""), session_path));
msg.run ();
ARDOUR_COMMAND_LINE::session_name = ""; // cancel that
continue;
}
- if (session_name.find ('\\') != std::string::npos) {
- MessageDialog msg (*_startup,
- _("To ensure compatibility with various systems\n"
- "session names may not contain a '\\' character"));
+ char illegal = Session::session_name_is_legal(session_name);
+ if (illegal) {
+ pop_back_splash (*_startup);
+ MessageDialog msg (*_startup, string_compose(_("To ensure compatibility with various systems\n"
+ "session names may not contain a '%1' character"), illegal));
msg.run ();
ARDOUR_COMMAND_LINE::session_name = ""; // cancel that
continue;
}
if (removed > 1) {
- txt.set_text (string_compose (plural_msg, removed, dead_directory, space_adjusted, bprefix));
+ txt.set_text (string_compose (plural_msg, removed, dead_directory, space_adjusted, bprefix, PROGRAM_NAME));
} else {
- txt.set_text (string_compose (singular_msg, removed, dead_directory, space_adjusted, bprefix));
+ txt.set_text (string_compose (singular_msg, removed, dead_directory, space_adjusted, bprefix, PROGRAM_NAME));
}
dhbox.pack_start (*dimage, true, false, 5);
The following %1 files were not in use and \n\
have been moved to:\n\n\
%2\n\n\
-After a restart of Ardour,\n\n\
+After a restart of %5,\n\n\
Session -> Clean-up -> Flush Wastebasket\n\n\
will release an additional\n\
%3 %4bytes of disk space.\n"),
The following file was not in use and \n\
has been moved to:\n \
%2\n\n\
-After a restart of Ardour,\n\n\
+After a restart of %5,\n\n\
Session -> Clean-up -> Flush Wastebasket\n\n\
will release an additional\n\
%3 %4bytes of disk space.\n"
// we make insensitive
if (yn) {
- rec_button.set_active_state (Mid);
+ rec_button.set_active_state (Gtkmm2ext::ImplicitActive);
rec_button.set_sensitive (false);
} else {
rec_button.unset_active_state ();;