X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fardour_ui.cc;h=fe31d5f4cba16e62e3316babd098e59619cbc239;hb=9f9e948d845382c8f74e67034fd8beb1704bba78;hp=873d114cf24f1889911bd5d816f08ae3e977d6bc;hpb=ae51d5fd4ebb90f782334ac0b4addc0c88e1629c;p=ardour.git diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index 873d114cf2..fe31d5f4cb 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -86,7 +86,8 @@ #include "ardour/audioengine.h" #include "ardour/audiofilesource.h" #include "ardour/automation_watch.h" -#include "ardour/diskstream.h" +#include "ardour/disk_reader.h" +#include "ardour/disk_writer.h" #include "ardour/filename_extensions.h" #include "ardour/filesystem_paths.h" #include "ardour/ltc_file_reader.h" @@ -123,7 +124,7 @@ #undef check #endif -#include "timecode/time.h" +#include "temporal/time.h" typedef uint64_t microseconds_t; @@ -201,7 +202,7 @@ using namespace Editing; ARDOUR_UI *ARDOUR_UI::theArdourUI = 0; -sigc::signal ARDOUR_UI::Clock; +sigc::signal ARDOUR_UI::Clock; sigc::signal ARDOUR_UI::CloseAllDialogs; static bool @@ -396,8 +397,8 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir) rec_button.set_name ("transport recenable button"); midi_panic_button.set_name ("transport button"); - ARDOUR::Diskstream::DiskOverrun.connect (forever_connections, MISSING_INVALIDATOR, boost::bind (&ARDOUR_UI::disk_overrun_handler, this), gui_context()); - ARDOUR::Diskstream::DiskUnderrun.connect (forever_connections, MISSING_INVALIDATOR, boost::bind (&ARDOUR_UI::disk_underrun_handler, this), gui_context()); + ARDOUR::DiskWriter::Overrun.connect (forever_connections, MISSING_INVALIDATOR, boost::bind (&ARDOUR_UI::disk_overrun_handler, this), gui_context()); + ARDOUR::DiskReader::Underrun.connect (forever_connections, MISSING_INVALIDATOR, boost::bind (&ARDOUR_UI::disk_underrun_handler, this), gui_context()); ARDOUR::Session::VersionMismatch.connect (forever_connections, MISSING_INVALIDATOR, boost::bind (&ARDOUR_UI::session_format_mismatch, this, _1, _2), gui_context()); @@ -543,7 +544,7 @@ release software. So, a few guidelines:\n\ 2) Please wait for a helpful writeup of new features.\n\ 3) Please do NOT use the forums at ardour.org to report issues.\n\ 4) Please DO use the bugtracker at http://tracker.ardour.org/ to report issues\n\ - making sure to note the product version number as 5.0-pre.\n\ + making sure to note the product version number as 6.0-pre.\n\ 5) Please DO use the ardour-users mailing list to discuss ideas and pass on comments.\n\ 6) Please DO join us on IRC for real time discussions about %1 %2. You\n\ can get there directly from within the program via the Help->Chat menu option.\n\ @@ -769,7 +770,7 @@ ARDOUR_UI::post_engine () vector::iterator l; for (p = paths.begin(), l = labels.begin(); p != paths.end(); ++p, ++l) { - output << " " << (*p).substr (9, string::npos); + output << " " << (*p).substr (10, string::npos); output << "" << *l << "" << endl; } output << " \n " << endl; @@ -781,7 +782,7 @@ ARDOUR_UI::post_engine () GError *err = NULL; gint fd; - if ((fd = g_file_open_tmp ("akprintXXXXXX.html", &file_name, &err)) < 0) { + if ((fd = g_file_open_tmp ("list-of-menu-actionsXXXXXX.html", &file_name, &err)) < 0) { if (err) { error << string_compose (_("Could not open temporary file to print bindings (%1)"), err->message) << endmsg; g_error_free (err); @@ -1580,7 +1581,7 @@ ARDOUR_UI::set_fps_timeout_connection () * signals to the GUI Thread.. */ interval = floor(500. /* update twice per FPS, since Glib::signal_timeout is very irregular */ - * _session->frame_rate() / _session->nominal_frame_rate() + * _session->sample_rate() / _session->nominal_sample_rate() / _session->timecode_frames_per_second() ); #ifdef PLATFORM_WINDOWS @@ -1600,7 +1601,7 @@ ARDOUR_UI::set_fps_timeout_connection () } void -ARDOUR_UI::update_sample_rate (framecnt_t) +ARDOUR_UI::update_sample_rate (samplecnt_t) { char buf[64]; @@ -1612,7 +1613,7 @@ ARDOUR_UI::update_sample_rate (framecnt_t) } else { - framecnt_t rate = AudioEngine::instance()->sample_rate(); + samplecnt_t rate = AudioEngine::instance()->sample_rate(); if (rate == 0) { /* no sample rate available */ @@ -1788,43 +1789,43 @@ ARDOUR_UI::update_disk_space() return; } - boost::optional opt_frames = _session->available_capture_duration(); + boost::optional opt_samples = _session->available_capture_duration(); char buf[64]; - framecnt_t fr = _session->frame_rate(); + samplecnt_t fr = _session->sample_rate(); if (fr == 0) { /* skip update - no SR available */ return; } - if (!opt_frames) { + if (!opt_samples) { /* Available space is unknown */ snprintf (buf, sizeof (buf), "%s", _("Disk: Unknown")); - } else if (opt_frames.get_value_or (0) == max_framecnt) { + } else if (opt_samples.get_value_or (0) == max_samplecnt) { snprintf (buf, sizeof (buf), "%s", _("Disk: 24hrs+")); } else { rec_enabled_streams = 0; _session->foreach_route (this, &ARDOUR_UI::count_recenabled_streams, false); - framecnt_t frames = opt_frames.get_value_or (0); + samplecnt_t samples = opt_samples.get_value_or (0); if (rec_enabled_streams) { - frames /= rec_enabled_streams; + samples /= rec_enabled_streams; } int hrs; int mins; int secs; - hrs = frames / (fr * 3600); + hrs = samples / (fr * 3600); if (hrs > 24) { snprintf (buf, sizeof (buf), "%s", _("Disk: >24 hrs")); } else { - frames -= hrs * fr * 3600; - mins = frames / (fr * 60); - frames -= mins * fr * 60; - secs = frames / fr; + samples -= hrs * fr * 3600; + mins = samples / (fr * 60); + samples -= mins * fr * 60; + secs = samples / fr; bool const low = (hrs == 0 && mins <= 30); @@ -2179,7 +2180,7 @@ ARDOUR_UI::transport_goto_start () */ if (editor) { - editor->center_screen (_session->current_start_frame ()); + editor->center_screen (_session->current_start_sample ()); } } } @@ -2207,30 +2208,30 @@ ARDOUR_UI::transport_goto_wallclock () time_t now; struct tm tmnow; - framepos_t frames; + samplepos_t samples; time (&now); localtime_r (&now, &tmnow); - framecnt_t frame_rate = _session->frame_rate(); + samplecnt_t sample_rate = _session->sample_rate(); - if (frame_rate == 0) { + if (sample_rate == 0) { /* no frame rate available */ return; } - frames = tmnow.tm_hour * (60 * 60 * frame_rate); - frames += tmnow.tm_min * (60 * frame_rate); - frames += tmnow.tm_sec * frame_rate; + samples = tmnow.tm_hour * (60 * 60 * sample_rate); + samples += tmnow.tm_min * (60 * sample_rate); + samples += tmnow.tm_sec * sample_rate; - _session->request_locate (frames, _session->transport_rolling ()); + _session->request_locate (samples, _session->transport_rolling ()); /* force displayed area in editor to start no matter what "follow playhead" setting is. */ if (editor) { - editor->center_screen (frames); + editor->center_screen (samples); } } } @@ -2239,15 +2240,15 @@ void ARDOUR_UI::transport_goto_end () { if (_session) { - framepos_t const frame = _session->current_end_frame(); - _session->request_locate (frame); + samplepos_t const sample = _session->current_end_sample(); + _session->request_locate (sample); /* force displayed area in editor to start no matter what "follow playhead" setting is. */ if (editor) { - editor->center_screen (frame); + editor->center_screen (sample); } } } @@ -2460,9 +2461,9 @@ ARDOUR_UI::toggle_roll (bool with_abort, bool roll_out_of_bounded_mode) * want to do this. */ - if (UIConfiguration::instance().get_follow_edits() && ( editor->get_selection().time.front().start == _session->transport_frame() ) ) { //if playhead is exactly at the start of a range, we can assume it was placed there by follow_edits + if (UIConfiguration::instance().get_follow_edits() && ( editor->get_selection().time.front().start == _session->transport_sample() ) ) { //if playhead is exactly at the start of a range, we can assume it was placed there by follow_edits _session->request_play_range (&editor->get_selection().time, true); - _session->set_requested_return_frame( editor->get_selection().time.front().start ); //force an auto-return here + _session->set_requested_return_sample( editor->get_selection().time.front().start ); //force an auto-return here } _session->request_transport_speed (1.0f); } @@ -2705,7 +2706,7 @@ ARDOUR_UI::update_clocks () if (!_session) return; if (editor && !editor->dragging_playhead()) { - Clock (_session->audible_frame(), false, editor->get_preferred_edit_position (EDIT_IGNORE_PHEAD)); /* EMIT_SIGNAL */ + Clock (_session->audible_sample(), false, editor->get_preferred_edit_position (EDIT_IGNORE_PHEAD)); /* EMIT_SIGNAL */ } } @@ -3192,8 +3193,8 @@ ARDOUR_UI::save_template () return; } - SaveTemplateDialog* d = new SaveTemplateDialog (*_session); - + const std::string desc = SessionMetadata::Metadata()->description (); + SaveTemplateDialog* d = new SaveTemplateDialog (_session->name (), desc); d->signal_response().connect (sigc::bind (sigc::mem_fun (*this, &ARDOUR_UI::save_template_dialog_response), d)); d->show (); } @@ -4344,7 +4345,7 @@ ARDOUR_UI::cleanup_peakfiles () RegionSelection rs; TrackViewList empty; empty.clear(); - editor->get_regions_after(rs, (framepos_t) 0, empty); + editor->get_regions_after(rs, (samplepos_t) 0, empty); std::list views = rs.by_layer(); // remove displayed audio-region-views waveforms @@ -4449,6 +4450,7 @@ ARDOUR_UI::add_route_dialog_response (int r) switch (r) { case AddRouteDialog::Add: + add_route_dialog->reset_name_edited (); break; case AddRouteDialog::AddAndClose: add_route_dialog->ArdourDialog::on_response (r); @@ -4792,10 +4794,10 @@ ARDOUR_UI::add_video (Gtk::Window* float_window) LTCFileReader ltcr (audio_from_video, video_timeline->get_video_file_fps()); /* TODO ASK user which channel: 0 .. ltcr->channels() - 1 */ - ltc_seq = ltcr.read_ltc (/*channel*/ 0, /*max LTC frames to decode*/ 15); + ltc_seq = ltcr.read_ltc (/*channel*/ 0, /*max LTC samples to decode*/ 15); /* TODO seek near end of file, and read LTC until end. - * if it fails to find any LTC frames, scan complete file + * if it fails to find any LTC samples, scan complete file * * calculate drift of LTC compared to video-duration, * ask user for reference (timecode from start/mid/end) @@ -4811,16 +4813,16 @@ ARDOUR_UI::add_video (Gtk::Window* float_window) } else { /* the very first TC in the file is somteimes not aligned properly */ int i = ltc_seq.size() -1; - ARDOUR::frameoffset_t video_start_offset = - _session->nominal_frame_rate() * (ltc_seq[i].timecode_sec - ltc_seq[i].framepos_sec); + ARDOUR::sampleoffset_t video_start_offset = + _session->nominal_sample_rate() * (ltc_seq[i].timecode_sec - ltc_seq[i].framepos_sec); PBD::info << string_compose (_("Align video-start to %1 [samples]"), video_start_offset) << endmsg; video_timeline->set_offset(video_start_offset); } } _session->maybe_update_session_range( - std::max(video_timeline->get_offset(), (ARDOUR::frameoffset_t) 0), - std::max(video_timeline->get_offset() + video_timeline->get_duration(), (ARDOUR::frameoffset_t) 0)); + std::max(video_timeline->get_offset(), (ARDOUR::sampleoffset_t) 0), + std::max(video_timeline->get_offset() + video_timeline->get_duration(), (ARDOUR::sampleoffset_t) 0)); if (add_video_dialog->launch_xjadeo() && local_file) { @@ -4986,7 +4988,7 @@ ARDOUR_UI::keyboard_settings () const } void -ARDOUR_UI::create_xrun_marker (framepos_t where) +ARDOUR_UI::create_xrun_marker (samplepos_t where) { if (_session) { Location *location = new Location (*_session, where, where, _("xrun"), Location::IsMark, 0); @@ -5003,7 +5005,7 @@ ARDOUR_UI::halt_on_xrun_message () } void -ARDOUR_UI::xrun_handler (framepos_t where) +ARDOUR_UI::xrun_handler (samplepos_t where) { if (!_session) { return; @@ -5227,7 +5229,7 @@ what you would like to do.\n"), PROGRAM_NAME)); } int -ARDOUR_UI::sr_mismatch_dialog (framecnt_t desired, framecnt_t actual) +ARDOUR_UI::sr_mismatch_dialog (samplecnt_t desired, samplecnt_t actual) { HBox* hbox = new HBox(); Image* image = new Image (Stock::DIALOG_WARNING, ICON_SIZE_DIALOG); @@ -5260,7 +5262,7 @@ audio may be played at the wrong sample rate.\n"), desired, PROGRAM_NAME, actual } void -ARDOUR_UI::sr_mismatch_message (framecnt_t desired, framecnt_t actual) +ARDOUR_UI::sr_mismatch_message (samplecnt_t desired, samplecnt_t actual) { MessageDialog msg (string_compose (_("\ This session was created with a sample rate of %1 Hz, but\n\ @@ -5284,7 +5286,7 @@ ARDOUR_UI::use_config () } void -ARDOUR_UI::update_transport_clocks (framepos_t pos) +ARDOUR_UI::update_transport_clocks (samplepos_t pos) { if (UIConfiguration::instance().get_primary_clock_delta_edit_cursor()) { primary_clock->set (pos, false, editor->get_preferred_edit_position (EDIT_IGNORE_PHEAD));