From b09ab546542040b1d468c9925c60bda2dfd80da8 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Wed, 14 Jun 2006 21:17:32 +0000 Subject: use libsndfile for all audio file i/o, and rename DiskStream AudioDiskStream git-svn-id: svn://localhost/ardour2/trunk@589 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/ardev_common.sh | 2 +- gtk2_ardour/ardour.menus | 2 ++ gtk2_ardour/ardour_ui.cc | 50 +++++++++++++++++++++++-------------- gtk2_ardour/ardour_ui.h | 10 ++++---- gtk2_ardour/ardour_ui_dialogs.cc | 4 +-- gtk2_ardour/ardour_ui_ed.cc | 5 ++-- gtk2_ardour/audio_clock.cc | 33 +++++++++++++++++++----- gtk2_ardour/audio_clock.h | 2 ++ gtk2_ardour/audio_time_axis.cc | 18 ++++++------- gtk2_ardour/audio_time_axis.h | 2 +- gtk2_ardour/crossfade_edit.cc | 1 + gtk2_ardour/editor.cc | 10 ++++---- gtk2_ardour/editor.h | 4 +-- gtk2_ardour/editor_audio_import.cc | 11 ++++---- gtk2_ardour/editor_audiotrack.cc | 2 +- gtk2_ardour/editor_canvas_events.cc | 2 +- gtk2_ardour/editor_export_audio.cc | 29 ++++++++++----------- gtk2_ardour/editor_mouse.cc | 4 +-- gtk2_ardour/editor_ops.cc | 8 +++--- gtk2_ardour/editor_region_list.cc | 1 + gtk2_ardour/editor_timefx.cc | 2 +- gtk2_ardour/io_selector.cc | 2 +- gtk2_ardour/main.cc | 1 - gtk2_ardour/meter_bridge.cc | 2 +- gtk2_ardour/mixer_strip.cc | 8 +++--- gtk2_ardour/mixer_strip.h | 2 +- gtk2_ardour/mixer_ui.cc | 2 +- gtk2_ardour/mixer_ui.h | 2 +- gtk2_ardour/opts.cc | 6 ++--- gtk2_ardour/playlist_selector.cc | 6 ++--- gtk2_ardour/redirect_box.cc | 2 +- gtk2_ardour/regionview.cc | 3 ++- gtk2_ardour/route_params_ui.cc | 2 +- gtk2_ardour/route_ui.cc | 12 ++++++--- gtk2_ardour/route_ui.h | 4 +-- gtk2_ardour/sfdb_ui.cc | 10 ++++---- gtk2_ardour/sfdb_ui.h | 4 +-- gtk2_ardour/streamview.cc | 13 +++++----- gtk2_ardour/streamview.h | 6 ++--- gtk2_ardour/taperegionview.cc | 3 ++- 40 files changed, 168 insertions(+), 124 deletions(-) (limited to 'gtk2_ardour') diff --git a/gtk2_ardour/ardev_common.sh b/gtk2_ardour/ardev_common.sh index 9483ae2971..5c68933a96 100755 --- a/gtk2_ardour/ardev_common.sh +++ b/gtk2_ardour/ardev_common.sh @@ -2,7 +2,7 @@ export ARDOUR_PATH=./glade:./pixmaps:. -export LD_LIBRARY_PATH=../libs/surfaces/control_protocol:../libs/ardour:../libs/midi++2:../libs/pbd3:../libs/soundtouch:../libs/gtkmm2ext:../libs/sigc++2:../libs/glibmm2:../libs/gtkmm2/atk:../libs/gtkmm2/pango:../libs/gtkmm2/gdk:../libs/gtkmm2/gtk:../libs/libgnomecanvasmm:../libs/libglademm:$LD_LIBRARY_PATH +export LD_LIBRARY_PATH=../libs/surfaces/control_protocol:../libs/ardour:../libs/midi++2:../libs/pbd3:../libs/soundtouch:../libs/gtkmm2ext:../libs/sigc++2:../libs/glibmm2:../libs/gtkmm2/atk:../libs/gtkmm2/pango:../libs/gtkmm2/gdk:../libs/gtkmm2/gtk:../libs/libgnomecanvasmm:../libs/libsndfile:$LD_LIBRARY_PATH # DYLD_LIBRARY_PATH is for darwin. export DYLD_LIBRARY_PATH=$LD_LIBRARY_PATH diff --git a/gtk2_ardour/ardour.menus b/gtk2_ardour/ardour.menus index 3c13ac8342..9293883067 100644 --- a/gtk2_ardour/ardour.menus +++ b/gtk2_ardour/ardour.menus @@ -207,6 +207,8 @@ + + diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index 640b62df1f..fa77c3f50b 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -50,8 +50,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include @@ -184,9 +184,9 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], string rcfile) gettimeofday (&last_peak_grab, 0); gettimeofday (&last_shuttle_request, 0); - ARDOUR::DiskStream::DeleteSources.connect (mem_fun(*this, &ARDOUR_UI::delete_sources_in_the_right_thread)); - ARDOUR::DiskStream::DiskOverrun.connect (mem_fun(*this, &ARDOUR_UI::disk_overrun_handler)); - ARDOUR::DiskStream::DiskUnderrun.connect (mem_fun(*this, &ARDOUR_UI::disk_underrun_handler)); + ARDOUR::AudioDiskstream::DeleteSources.connect (mem_fun(*this, &ARDOUR_UI::delete_sources_in_the_right_thread)); + ARDOUR::AudioDiskstream::DiskOverrun.connect (mem_fun(*this, &ARDOUR_UI::disk_overrun_handler)); + ARDOUR::AudioDiskstream::DiskUnderrun.connect (mem_fun(*this, &ARDOUR_UI::disk_underrun_handler)); /* handle pending state with a dialog */ @@ -241,10 +241,10 @@ ARDOUR_UI::set_engine (AudioEngine& e) /* this being a GUI and all, we want peakfiles */ - FileSource::set_build_peakfiles (true); - FileSource::set_build_missing_peakfiles (true); + AudioFileSource::set_build_peakfiles (true); + AudioFileSource::set_build_missing_peakfiles (true); - if (Source::start_peak_thread ()) { + if (AudioSource::start_peak_thread ()) { throw failed_constructor(); } @@ -281,7 +281,7 @@ ARDOUR_UI::~ARDOUR_UI () delete add_route_dialog; } - Source::stop_peak_thread (); + AudioSource::stop_peak_thread (); } gint @@ -542,7 +542,7 @@ ARDOUR_UI::update_buffer_load () } void -ARDOUR_UI::count_recenabled_diskstreams (DiskStream& ds) +ARDOUR_UI::count_recenabled_diskstreams (AudioDiskstream& ds) { if (ds.record_enabled()) { rec_enabled_diskstreams++; @@ -570,7 +570,7 @@ ARDOUR_UI::update_disk_space() if (session->actively_recording()){ rec_enabled_diskstreams = 0; - session->foreach_diskstream (this, &ARDOUR_UI::count_recenabled_diskstreams); + session->foreach_audio_diskstream (this, &ARDOUR_UI::count_recenabled_diskstreams); if (rec_enabled_diskstreams) { frames /= rec_enabled_diskstreams; @@ -917,7 +917,7 @@ restart JACK with more ports.")); } void -ARDOUR_UI::diskstream_added (DiskStream* ds) +ARDOUR_UI::diskstream_added (AudioDiskstream* ds) { } @@ -1164,7 +1164,7 @@ ARDOUR_UI::toggle_monitor_enable (guint32 dstream) return; } - DiskStream *ds; + AudioDiskstream *ds; if ((ds = session->diskstream_by_id (dstream)) != 0) { Port *port = ds->io()->input (0); @@ -1179,7 +1179,7 @@ ARDOUR_UI::toggle_record_enable (guint32 dstream) return; } - DiskStream *ds; + AudioDiskstream *ds; if ((ds = session->diskstream_by_id (dstream)) != 0) { ds->set_record_enabled (!ds->record_enabled(), this); @@ -1386,7 +1386,7 @@ ARDOUR_UI::stop_blinking () void -ARDOUR_UI::add_diskstream_to_menu (DiskStream& dstream) +ARDOUR_UI::add_diskstream_to_menu (AudioDiskstream& dstream) { using namespace Gtk; using namespace Menu_Helpers; @@ -1424,7 +1424,7 @@ ARDOUR_UI::select_diskstream (GdkEventButton *ev) MenuList& items = diskstream_menu->items(); items.push_back (MenuElem (_("No Stream"), (bind (mem_fun(*this, &ARDOUR_UI::diskstream_selected), -1)))); - session->foreach_diskstream (this, &ARDOUR_UI::add_diskstream_to_menu); + session->foreach_audio_diskstream (this, &ARDOUR_UI::add_diskstream_to_menu); if (ev) { diskstream_menu->popup (ev->button, ev->time); @@ -1569,7 +1569,7 @@ ARDOUR_UI::secondary_clock_value_changed () } void -ARDOUR_UI::rec_enable_button_blink (bool onoff, DiskStream *dstream, Widget *w) +ARDOUR_UI::rec_enable_button_blink (bool onoff, AudioDiskstream *dstream, Widget *w) { if (session && dstream && dstream->record_enabled()) { @@ -2216,11 +2216,11 @@ ARDOUR_UI::halt_on_xrun_message () } void -ARDOUR_UI::delete_sources_in_the_right_thread (list* deletion_list) +ARDOUR_UI::delete_sources_in_the_right_thread (list* deletion_list) { ENSURE_GUI_THREAD (bind (mem_fun(*this, &ARDOUR_UI::delete_sources_in_the_right_thread), deletion_list)); - for (list::iterator i = deletion_list->begin(); i != deletion_list->end(); ++i) { + for (list::iterator i = deletion_list->begin(); i != deletion_list->end(); ++i) { delete *i; } @@ -2377,6 +2377,12 @@ ARDOUR_UI::set_native_file_header_format (HeaderFormat hf) case RF64: act = ActionManager::get_action (X_("options"), X_("FileHeaderFormatRF64")); break; + case CAF: + act = ActionManager::get_action (X_("options"), X_("FileHeaderFormatCAF")); + break; + case AIFF: + act = ActionManager::get_action (X_("options"), X_("FileHeaderFormatAIFF")); + break; } if (act) { @@ -2451,6 +2457,12 @@ ARDOUR_UI::use_config () case RF64: act = ActionManager::get_action (X_("options"), X_("FileHeaderFormatRF64")); break; + case CAF: + act = ActionManager::get_action (X_("options"), X_("FileHeaderFormatCAF")); + break; + case AIFF: + act = ActionManager::get_action (X_("options"), X_("FileHeaderFormatAIFF")); + break; } if (act) { diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index a759c6cd61..678342f32b 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -167,7 +167,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI blinking rec-enable buttons. */ - void rec_enable_button_blink (bool onoff, ARDOUR::DiskStream *, Gtk::Widget *w); + void rec_enable_button_blink (bool onoff, ARDOUR::AudioDiskstream *, Gtk::Widget *w); void name_io_setup (ARDOUR::AudioEngine&, string&, ARDOUR::IO& io, bool in); void choose_io (ARDOUR::IO&, bool input); @@ -522,7 +522,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI sigc::connection point_one_second_connection; sigc::connection point_zero_one_second_connection; - void diskstream_added (ARDOUR::DiskStream*); + void diskstream_added (ARDOUR::AudioDiskstream*); gint session_menu (GdkEventButton *); @@ -539,7 +539,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI void session_add_audio_route (bool disk, int32_t input_channels, int32_t output_channels, ARDOUR::TrackMode mode); - void add_diskstream_to_menu (ARDOUR::DiskStream&); + void add_diskstream_to_menu (ARDOUR::AudioDiskstream&); void diskstream_selected (gint32); Gtk::Menu *diskstream_menu; gint32 selected_dstream; @@ -630,7 +630,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI void toggle_monitor_enable (guint32); uint32_t rec_enabled_diskstreams; - void count_recenabled_diskstreams (ARDOUR::DiskStream&); + void count_recenabled_diskstreams (ARDOUR::AudioDiskstream&); About* about; bool shown_flag; @@ -649,7 +649,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI struct timeval last_peak_grab; struct timeval last_shuttle_request; - void delete_sources_in_the_right_thread (list*); + void delete_sources_in_the_right_thread (list*); void editor_display_control_changed (Editing::DisplayControl c); diff --git a/gtk2_ardour/ardour_ui_dialogs.cc b/gtk2_ardour/ardour_ui_dialogs.cc index 6b1d0224db..eb9e72b253 100644 --- a/gtk2_ardour/ardour_ui_dialogs.cc +++ b/gtk2_ardour/ardour_ui_dialogs.cc @@ -75,8 +75,8 @@ ARDOUR_UI::connect_to_session (Session *s) rec_button.set_sensitive (true); shuttle_box.set_sensitive (true); - if (session->n_diskstreams() == 0) { - session->DiskStreamAdded.connect (mem_fun(*this, &ARDOUR_UI::diskstream_added)); + if (session->n_audio_diskstreams() == 0) { + session->AudioDiskstreamAdded.connect (mem_fun(*this, &ARDOUR_UI::diskstream_added)); } if (connection_editor) { diff --git a/gtk2_ardour/ardour_ui_ed.cc b/gtk2_ardour/ardour_ui_ed.cc index 5bcad97d26..3ca435a24d 100644 --- a/gtk2_ardour/ardour_ui_ed.cc +++ b/gtk2_ardour/ardour_ui_ed.cc @@ -381,8 +381,9 @@ ARDOUR_UI::install_actions () act = ActionManager::register_radio_action (option_actions, file_header_group, X_("FileHeaderFormatBWF"), X_("Broadcast WAVE"), bind (mem_fun (*this, &ARDOUR_UI::set_native_file_header_format), ARDOUR::BWF)); act = ActionManager::register_radio_action (option_actions, file_header_group, X_("FileHeaderFormatWAVE"), X_("WAVE"), bind (mem_fun (*this, &ARDOUR_UI::set_native_file_header_format), ARDOUR::WAVE)); act = ActionManager::register_radio_action (option_actions, file_header_group, X_("FileHeaderFormatWAVE64"), X_("WAVE-64"), bind (mem_fun (*this, &ARDOUR_UI::set_native_file_header_format), ARDOUR::WAVE64)); - act = ActionManager::register_radio_action (option_actions, file_header_group, X_("FileHeaderFormatiXML"), X_("iXML"), bind (mem_fun (*this, &ARDOUR_UI::set_native_file_header_format), ARDOUR::iXML)); - act = ActionManager::register_radio_action (option_actions, file_header_group, X_("FileHeaderFormatRF64"), X_("RF64"), bind (mem_fun (*this, &ARDOUR_UI::set_native_file_header_format), ARDOUR::RF64)); + // act = ActionManager::register_radio_action (option_actions, file_header_group, X_("FileHeaderFormatiXML"), X_("iXML"), bind (mem_fun (*this, &ARDOUR_UI::set_native_file_header_format), ARDOUR::iXML)); + // act = ActionManager::register_radio_action (option_actions, file_header_group, X_("FileHeaderFormatRF64"), X_("RF64"), bind (mem_fun (*this, &ARDOUR_UI::set_native_file_header_format), ARDOUR::RF64)); + act = ActionManager::register_radio_action (option_actions, file_header_group, X_("FileHeaderFormatCAF"), X_("CAF"), bind (mem_fun (*this, &ARDOUR_UI::set_native_file_header_format), ARDOUR::CAF)); RadioAction::Group file_data_group; diff --git a/gtk2_ardour/audio_clock.cc b/gtk2_ardour/audio_clock.cc index a5e7aa7193..8289fac8a7 100644 --- a/gtk2_ardour/audio_clock.cc +++ b/gtk2_ardour/audio_clock.cc @@ -195,6 +195,8 @@ AudioClock::AudioClock (const string& name, bool allow_edit, bool duration, bool clock_base.add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::SCROLL_MASK); clock_base.signal_button_release_event().connect (bind (mem_fun (*this, &AudioClock::field_button_release_event), SMPTE_Hours)); + Session::SMPTEOffsetChanged.connect (mem_fun (*this, &AudioClock::smpte_offset_changed)); + if (editable) { setup_events (); } @@ -389,6 +391,25 @@ AudioClock::set (jack_nframes_t when, bool force) last_when = when; } +void +AudioClock::smpte_offset_changed () +{ + jack_nframes_t current; + + switch (_mode) { + case SMPTE: + if (is_duration) { + current = current_duration(); + } else { + current = current_time (); + } + set (current, true); + break; + default: + break; + } +} + void AudioClock::set_frames (jack_nframes_t when, bool force) { @@ -446,9 +467,9 @@ AudioClock::set_smpte (jack_nframes_t when, bool force) if (force || smpte.hours != last_hrs || smpte.negative != last_negative) { if (smpte.negative) { - sprintf (buf, "-%02ld", smpte.hours); + sprintf (buf, "-%02" PRIu32, smpte.hours); } else { - sprintf (buf, " %02ld", smpte.hours); + sprintf (buf, " %02" PRIu32, smpte.hours); } hours_label.set_text (buf); last_hrs = smpte.hours; @@ -456,19 +477,19 @@ AudioClock::set_smpte (jack_nframes_t when, bool force) } if (force || smpte.minutes != last_mins) { - sprintf (buf, "%02ld", smpte.minutes); + sprintf (buf, "%02" PRIu32, smpte.minutes); minutes_label.set_text (buf); last_mins = smpte.minutes; } if (force || smpte.seconds != last_secs) { - sprintf (buf, "%02ld", smpte.seconds); + sprintf (buf, "%02" PRIu32, smpte.seconds); seconds_label.set_text (buf); last_secs = smpte.seconds; } if (force || smpte.frames != last_frames) { - sprintf (buf, "%02ld", smpte.frames); + sprintf (buf, "%02" PRIu32, smpte.frames); frames_label.set_text (buf); last_frames = smpte.frames; } @@ -1267,7 +1288,7 @@ AudioClock::smpte_frame_from_display () const smpte.minutes = atoi (minutes_label.get_text()); smpte.seconds = atoi (seconds_label.get_text()); smpte.frames = atoi (frames_label.get_text()); - + session->smpte_to_sample( smpte, sample, false /* use_offset */, false /* use_subframes */ ); diff --git a/gtk2_ardour/audio_clock.h b/gtk2_ardour/audio_clock.h index a0733e7de3..14dc6ba673 100644 --- a/gtk2_ardour/audio_clock.h +++ b/gtk2_ardour/audio_clock.h @@ -175,6 +175,8 @@ class AudioClock : public Gtk::HBox void build_ops_menu (); void setup_events (); + void smpte_offset_changed (); + static const uint32_t field_length[(int)AudioFrames+1]; }; diff --git a/gtk2_ardour/audio_time_axis.cc b/gtk2_ardour/audio_time_axis.cc index 84c7bf7e15..32c303de34 100644 --- a/gtk2_ardour/audio_time_axis.cc +++ b/gtk2_ardour/audio_time_axis.cc @@ -38,7 +38,7 @@ #include #include -#include +#include #include #include #include @@ -823,7 +823,7 @@ AudioTimeAxisView::rename_current_playlist () string name; AudioPlaylist *pl; - DiskStream *ds; + AudioDiskstream *ds; if (((ds = get_diskstream()) == 0) || ds->destructive() || ((pl = ds->playlist()) == 0)) { return; @@ -851,7 +851,7 @@ void AudioTimeAxisView::use_copy_playlist (bool prompt) { AudioPlaylist *pl; - DiskStream *ds; + AudioDiskstream *ds; string name; if (((ds = get_diskstream()) == 0) || ds->destructive() || ((pl = ds->playlist()) == 0)) { @@ -891,7 +891,7 @@ void AudioTimeAxisView::use_new_playlist (bool prompt) { AudioPlaylist *pl; - DiskStream *ds; + AudioDiskstream *ds; string name; if (((ds = get_diskstream()) == 0) || ds->destructive() || ((pl = ds->playlist()) == 0)) { @@ -930,7 +930,7 @@ void AudioTimeAxisView::clear_playlist () { AudioPlaylist *pl; - DiskStream *ds; + AudioDiskstream *ds; if ((ds = get_diskstream()) != 0) { if ((pl = ds->playlist()) != 0) { @@ -988,7 +988,7 @@ AudioTimeAxisView::diskstream_changed (void *src) void AudioTimeAxisView::update_diskstream_display () { - DiskStream *ds; + AudioDiskstream *ds; if ((ds = get_diskstream()) != 0) { set_playlist (ds->playlist ()); @@ -1092,7 +1092,7 @@ AudioTimeAxisView::name() const Playlist * AudioTimeAxisView::playlist () const { - DiskStream *ds; + AudioDiskstream *ds; if ((ds = get_diskstream()) != 0) { return ds->playlist(); @@ -1142,7 +1142,7 @@ AudioTimeAxisView::hide_click () Region* AudioTimeAxisView::find_next_region (jack_nframes_t pos, RegionPoint point, int32_t dir) { - DiskStream *stream; + AudioDiskstream *stream; AudioPlaylist *playlist; if ((stream = get_diskstream()) != 0 && (playlist = stream->playlist()) != 0) { @@ -1717,7 +1717,7 @@ bool AudioTimeAxisView::cut_copy_clear (Selection& selection, CutCopyOp op) { Playlist* what_we_got; - DiskStream* ds = get_diskstream(); + AudioDiskstream* ds = get_diskstream(); Playlist* playlist; bool ret = false; diff --git a/gtk2_ardour/audio_time_axis.h b/gtk2_ardour/audio_time_axis.h index d1fbde3e9c..b319d0ea99 100644 --- a/gtk2_ardour/audio_time_axis.h +++ b/gtk2_ardour/audio_time_axis.h @@ -48,7 +48,7 @@ namespace ALSA { namespace ARDOUR { class Session; - class DiskStream; + class AudioDiskstream; class RouteGroup; class Redirect; class Insert; diff --git a/gtk2_ardour/crossfade_edit.cc b/gtk2_ardour/crossfade_edit.cc index 6363178004..293324dc91 100644 --- a/gtk2_ardour/crossfade_edit.cc +++ b/gtk2_ardour/crossfade_edit.cc @@ -34,6 +34,7 @@ #include #include #include +#include #include #include diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index c7956386ce..1d78c2fce0 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -38,7 +38,7 @@ #include #include -#include +#include #include #include #include @@ -1636,7 +1636,7 @@ Editor::build_track_region_context_menu (jack_nframes_t frame) AudioTimeAxisView* atv = dynamic_cast (clicked_trackview); if (atv) { - DiskStream* ds; + AudioDiskstream* ds; Playlist* pl; if ((ds = atv->get_diskstream()) && ((pl = ds->playlist()))) { @@ -1663,7 +1663,7 @@ Editor::build_track_crossfade_context_menu (jack_nframes_t frame) AudioTimeAxisView* atv = dynamic_cast (clicked_trackview); if (atv) { - DiskStream* ds; + AudioDiskstream* ds; Playlist* pl; AudioPlaylist* apl; @@ -3107,7 +3107,7 @@ Editor::mapped_set_selected_regionview_from_click (AudioTimeAxisView& atv, uint3 AudioPlaylist* pl; vector results; AudioRegionView* marv; - DiskStream* ds; + AudioDiskstream* ds; if ((ds = atv.get_diskstream()) == 0) { /* bus */ @@ -3338,7 +3338,7 @@ Editor::set_selected_regionview_from_region_list (Region& r, Selection::Operatio AudioPlaylist* pl; vector results; AudioRegionView* marv; - DiskStream* ds; + AudioDiskstream* ds; if ((ds = tatv->get_diskstream()) == 0) { /* bus */ diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index 8b7b2af1d0..be2f3ba44f 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -45,7 +45,6 @@ #include #include #include -#include #include "audio_clock.h" #include "gtk-custom-ruler.h" @@ -67,9 +66,8 @@ namespace LinuxAudioSystems { } namespace ARDOUR { - class DiskStream; + class AudioDiskstream; class RouteGroup; - class Source; class Playlist; class Region; class Location; diff --git a/gtk2_ardour/editor_audio_import.cc b/gtk2_ardour/editor_audio_import.cc index ee73c46b24..6f9d96e61e 100644 --- a/gtk2_ardour/editor_audio_import.cc +++ b/gtk2_ardour/editor_audio_import.cc @@ -26,12 +26,11 @@ #include #include #include -#include -#include -#include +#include #include #include #include +#include #include "ardour_ui.h" #include "editor.h" @@ -187,7 +186,7 @@ int Editor::embed_sndfile (Glib::ustring path, bool split, bool multiple_files, bool& check_sample_rate, ImportMode mode, AudioTrack* track, jack_nframes_t& pos, bool prompt) { - ExternalSource *source = 0; /* keep g++ quiet */ + AudioFileSource *source = 0; /* keep g++ quiet */ AudioRegion::SourceList sources; AudioRegion* region; string idspec; @@ -220,7 +219,7 @@ Editor::embed_sndfile (Glib::ustring path, bool split, bool multiple_files, bool string error_msg; - if (!ExternalSource::get_soundfile_info (path, finfo, error_msg)) { + if (!AudioFileSource::get_soundfile_info (path, finfo, error_msg)) { error << string_compose(_("Editor: cannot open file \"%1\", (%2)"), selection, error_msg ) << endmsg; return 0; } @@ -267,7 +266,7 @@ Editor::embed_sndfile (Glib::ustring path, bool split, bool multiple_files, bool idspec += string_compose(":%1", n); try { - source = ExternalSource::create (idspec.c_str()); + source = AudioFileSource::create (idspec.c_str()); sources.push_back(source); } diff --git a/gtk2_ardour/editor_audiotrack.cc b/gtk2_ardour/editor_audiotrack.cc index b9ae734bde..db1353f159 100644 --- a/gtk2_ardour/editor_audiotrack.cc +++ b/gtk2_ardour/editor_audiotrack.cc @@ -1,5 +1,5 @@ #include -#include +#include #include "editor.h" #include "editing.h" diff --git a/gtk2_ardour/editor_canvas_events.cc b/gtk2_ardour/editor_canvas_events.cc index 29997f5f57..ff4dda9182 100644 --- a/gtk2_ardour/editor_canvas_events.cc +++ b/gtk2_ardour/editor_canvas_events.cc @@ -21,7 +21,7 @@ #include #include -#include +#include #include #include "editor.h" diff --git a/gtk2_ardour/editor_export_audio.cc b/gtk2_ardour/editor_export_audio.cc index 8ad432ece6..9781a24d29 100644 --- a/gtk2_ardour/editor_export_audio.cc +++ b/gtk2_ardour/editor_export_audio.cc @@ -37,8 +37,8 @@ #include #include #include -#include -#include +#include +#include #include #include @@ -154,7 +154,7 @@ Editor::bounce_region_selection () bool Editor::write_region (string path, AudioRegion& region) { - FileSource* fs; + AudioFileSource* fs; const jack_nframes_t chunk_size = 4096; jack_nframes_t to_read; Sample buf[chunk_size]; @@ -163,7 +163,7 @@ Editor::write_region (string path, AudioRegion& region) jack_nframes_t pos; char s[PATH_MAX+1]; uint32_t cnt; - vector sources; + vector sources; uint32_t nchans; nchans = region.n_channels(); @@ -204,7 +204,7 @@ Editor::write_region (string path, AudioRegion& region) try { - fs = new FileSource (path, session->frame_rate()); + fs = AudioFileSource::create (path); } catch (failed_constructor& err) { @@ -227,10 +227,10 @@ Editor::write_region (string path, AudioRegion& region) this_time = min (to_read, chunk_size); - for (vector::iterator src=sources.begin(); src != sources.end(); ++src) { - - fs = (*src); + for (vector::iterator src=sources.begin(); src != sources.end(); ++src) { + fs = (*src); + if (region.read_at (buf, buf, gain_buffer, workbuf, pos, this_time) != this_time) { break; } @@ -250,7 +250,7 @@ Editor::write_region (string path, AudioRegion& region) time (&tnow); now = localtime (&tnow); - for (vector::iterator src = sources.begin(); src != sources.end(); ++src) { + for (vector::iterator src = sources.begin(); src != sources.end(); ++src) { (*src)->update_header (0, *now, tnow); } @@ -258,7 +258,8 @@ Editor::write_region (string path, AudioRegion& region) error_out: - for (vector::iterator i = sources.begin(); i != sources.end(); ++i) { + for (vector::iterator i = sources.begin(); i != sources.end(); ++i) { + (*i)->mark_for_remove (); delete (*i); } @@ -300,7 +301,7 @@ Editor::write_audio_selection (TimeSelection& ts) bool Editor::write_audio_range (Playlist& playlist, uint32_t channels, list& range) { - FileSource* fs; + AudioFileSource* fs; const jack_nframes_t chunk_size = 4096; jack_nframes_t nframes; Sample buf[chunk_size]; @@ -310,7 +311,7 @@ Editor::write_audio_range (Playlist& playlist, uint32_t channels, list sources; + vector sources; for (uint32_t n=0; n < channels; ++n) { @@ -337,7 +338,7 @@ Editor::write_audio_range (Playlist& playlist, uint32_t channels, listframe_rate()); + fs = AudioFileSource::create (path); } catch (failed_constructor& err) { @@ -420,7 +421,7 @@ Editor::write_audio_range (Playlist& playlist, uint32_t channels, list::iterator i = sources.begin(); i != sources.end(); ++i) { + for (vector::iterator i = sources.begin(); i != sources.end(); ++i) { (*i)->mark_for_remove (); delete *i; } diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc index 249b1d781a..15feac8342 100644 --- a/gtk2_ardour/editor_mouse.cc +++ b/gtk2_ardour/editor_mouse.cc @@ -47,7 +47,7 @@ #include #include #include -#include +#include #include #include #include @@ -286,7 +286,7 @@ Editor::step_mouse_mode (bool next) void Editor::button_selection (ArdourCanvas::Item* item, GdkEvent* event, ItemType item_type) { - bool commit; + bool commit = false; bool c1; bool c2; diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index acf205d06f..39b2843756 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -36,9 +36,7 @@ #include #include #include -#include -#include -#include +#include #include #include #include @@ -122,9 +120,9 @@ Editor::set_meter_hold (int32_t cnt) void Editor::set_meter_falloff (int intval) { - float val; + float val = 0.0f; /* off */ std::string str; - cerr << "set_meter_falloff () called: intval = " << intval << endl; + Config->set_meter_falloff_off(false); Config->set_meter_falloff_slowest(false); Config->set_meter_falloff_slow(false); diff --git a/gtk2_ardour/editor_region_list.cc b/gtk2_ardour/editor_region_list.cc index bbcfb09a29..26d9717d4a 100644 --- a/gtk2_ardour/editor_region_list.cc +++ b/gtk2_ardour/editor_region_list.cc @@ -26,6 +26,7 @@ #include #include +#include #include #include diff --git a/gtk2_ardour/editor_timefx.cc b/gtk2_ardour/editor_timefx.cc index 9760c5116b..ecb2f5ba4b 100644 --- a/gtk2_ardour/editor_timefx.cc +++ b/gtk2_ardour/editor_timefx.cc @@ -36,7 +36,7 @@ #include #include #include -#include +#include #include "i18n.h" diff --git a/gtk2_ardour/io_selector.cc b/gtk2_ardour/io_selector.cc index b45966c5e3..b18e08fabd 100644 --- a/gtk2_ardour/io_selector.cc +++ b/gtk2_ardour/io_selector.cc @@ -31,7 +31,7 @@ #include #include #include -#include +#include #include #include diff --git a/gtk2_ardour/main.cc b/gtk2_ardour/main.cc index e9ac25a8f8..dc30690611 100644 --- a/gtk2_ardour/main.cc +++ b/gtk2_ardour/main.cc @@ -458,7 +458,6 @@ main (int argc, char *argv[]) ui = 0; } - out: delete engine; ARDOUR::cleanup (); shutdown (0); diff --git a/gtk2_ardour/meter_bridge.cc b/gtk2_ardour/meter_bridge.cc index 6b83a34322..755058acb2 100644 --- a/gtk2_ardour/meter_bridge.cc +++ b/gtk2_ardour/meter_bridge.cc @@ -20,7 +20,7 @@ #include #include -#include +#include #include #include "ardour_ui.h" diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc index 9bdc8c340a..cc66d1128a 100644 --- a/gtk2_ardour/mixer_strip.cc +++ b/gtk2_ardour/mixer_strip.cc @@ -37,7 +37,7 @@ #include #include #include -#include +#include #include #include #include @@ -665,9 +665,9 @@ MixerStrip::select_stream_input () MenuList& items = stream_menu->items(); stream_menu->set_name ("ArdourContextMenu"); - Session::DiskStreamList streams = _session.disk_streams(); + Session::AudioDiskstreamList streams = _session.audio_disk_streams(); - for (Session::DiskStreamList::iterator i = streams.begin(); i != streams.end(); ++i) { + for (Session::AudioDiskstreamList::iterator i = streams.begin(); i != streams.end(); ++i) { if (!(*i)->hidden()) { @@ -685,7 +685,7 @@ MixerStrip::select_stream_input () } void -MixerStrip::stream_input_chosen (DiskStream *stream) +MixerStrip::stream_input_chosen (AudioDiskstream *stream) { if (is_audio_track()) { audio_track()->set_diskstream (*stream, this); diff --git a/gtk2_ardour/mixer_strip.h b/gtk2_ardour/mixer_strip.h index 65be3c00c1..0cc8fed8e3 100644 --- a/gtk2_ardour/mixer_strip.h +++ b/gtk2_ardour/mixer_strip.h @@ -170,7 +170,7 @@ class MixerStrip : public RouteUI, public Gtk::EventBox Gtk::Menu output_menu; void add_connection_to_output_menu (ARDOUR::Connection *); - void stream_input_chosen (ARDOUR::DiskStream*); + void stream_input_chosen (ARDOUR::AudioDiskstream*); void select_stream_input (); void connection_input_chosen (ARDOUR::Connection *); void connection_output_chosen (ARDOUR::Connection *); diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc index 1ded8625c6..916424b9bd 100644 --- a/gtk2_ardour/mixer_ui.cc +++ b/gtk2_ardour/mixer_ui.cc @@ -34,7 +34,7 @@ #include #include #include -#include +#include #include #include "mixer_ui.h" diff --git a/gtk2_ardour/mixer_ui.h b/gtk2_ardour/mixer_ui.h index 35320b3a48..5108df6014 100644 --- a/gtk2_ardour/mixer_ui.h +++ b/gtk2_ardour/mixer_ui.h @@ -45,7 +45,7 @@ namespace ARDOUR { class Route; class RouteGroup; class Session; - class DiskStream; + class AudioDiskstream; class AudioEngine; }; diff --git a/gtk2_ardour/opts.cc b/gtk2_ardour/opts.cc index 2ea5805098..69b8128824 100644 --- a/gtk2_ardour/opts.cc +++ b/gtk2_ardour/opts.cc @@ -83,7 +83,7 @@ GTK_ARDOUR::parse_opts (int argc, char *argv[]) { "name", 1, 0, 'c' }, { "novst", 0, 0, 'V' }, { "new", 1, 0, 'N' }, - { "use-hw-optimizations", 0, 0, 'o' }, + { "no-hw-optimizations", 0, 0, 'O' }, { "curvetest", 1, 0, 'C' }, { "gtktheme", 0, 0, 'g' }, { 0, 0, 0, 0 } @@ -124,8 +124,8 @@ GTK_ARDOUR::parse_opts (int argc, char *argv[]) session_name = optarg; break; - case 'o': - try_hw_optimization = true; + case 'O': + try_hw_optimization = false; break; case 'V': diff --git a/gtk2_ardour/playlist_selector.cc b/gtk2_ardour/playlist_selector.cc index eb0e7e3203..870fa2df5f 100644 --- a/gtk2_ardour/playlist_selector.cc +++ b/gtk2_ardour/playlist_selector.cc @@ -22,7 +22,7 @@ #include #include -#include +#include #include #include #include @@ -89,7 +89,7 @@ void PlaylistSelector::show_for (RouteUI* ruix) { vector item; - DiskStream* this_ds; + AudioDiskstream* this_ds; string str; rui = ruix; @@ -115,7 +115,7 @@ PlaylistSelector::show_for (RouteUI* ruix) for (DSPL_Map::iterator x = dspl_map.begin(); x != dspl_map.end(); ++x) { - DiskStream* ds = session->diskstream_by_id (x->first); + AudioDiskstream* ds = session->diskstream_by_id (x->first); if (ds == 0) { continue; diff --git a/gtk2_ardour/redirect_box.cc b/gtk2_ardour/redirect_box.cc index f186fab2d5..3d858a8f60 100644 --- a/gtk2_ardour/redirect_box.cc +++ b/gtk2_ardour/redirect_box.cc @@ -38,7 +38,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/gtk2_ardour/regionview.cc b/gtk2_ardour/regionview.cc index dbca103239..ad012b3483 100644 --- a/gtk2_ardour/regionview.cc +++ b/gtk2_ardour/regionview.cc @@ -27,7 +27,8 @@ #include #include -#include +#include +#include #include "streamview.h" #include "regionview.h" diff --git a/gtk2_ardour/route_params_ui.cc b/gtk2_ardour/route_params_ui.cc index aee247df02..7b6f00d76b 100644 --- a/gtk2_ardour/route_params_ui.cc +++ b/gtk2_ardour/route_params_ui.cc @@ -26,7 +26,7 @@ #include #include -#include +#include #include #include #include diff --git a/gtk2_ardour/route_ui.cc b/gtk2_ardour/route_ui.cc index 05f3683175..bd2cee26e9 100644 --- a/gtk2_ardour/route_ui.cc +++ b/gtk2_ardour/route_ui.cc @@ -34,7 +34,7 @@ #include #include -#include +#include #include "i18n.h" using namespace sigc; @@ -433,7 +433,13 @@ RouteUI::refresh_remote_control_menu () limit += 4; /* leave some breathing room */ - for (uint32_t i = 0; i < limit; ++i) { + rc_items.push_back (RadioMenuElem (rc_group, _("None"))); + if (_route.remote_control_id() == 0) { + rc_active = dynamic_cast (&rc_items.back()); + rc_active->set_active (); + } + + for (uint32_t i = 1; i < limit; ++i) { snprintf (buf, sizeof (buf), "%u", i); rc_items.push_back (RadioMenuElem (rc_group, buf)); rc_active = dynamic_cast(&rc_items.back()); @@ -872,7 +878,7 @@ RouteUI::is_audio_track () const return dynamic_cast(&_route) != 0; } -DiskStream* +AudioDiskstream* RouteUI::get_diskstream () const { AudioTrack *at; diff --git a/gtk2_ardour/route_ui.h b/gtk2_ardour/route_ui.h index b7a5b059f0..69c9b7f5a9 100644 --- a/gtk2_ardour/route_ui.h +++ b/gtk2_ardour/route_ui.h @@ -50,7 +50,7 @@ class RouteUI : public virtual AxisView virtual ~RouteUI(); bool is_audio_track() const; - ARDOUR::DiskStream* get_diskstream() const; + ARDOUR::AudioDiskstream* get_diskstream() const; ARDOUR::Route& route() const { return _route; } ARDOUR::AudioTrack* audio_track() const; @@ -116,7 +116,7 @@ class RouteUI : public virtual AxisView sigc::connection blink_connection; - void rec_enable_button_blink (bool onoff, ARDOUR::DiskStream *, Gtk::Widget *w); + void rec_enable_button_blink (bool onoff, ARDOUR::AudioDiskstream *, Gtk::Widget *w); void remove_this_route (); static gint idle_remove_this_route (RouteUI *); diff --git a/gtk2_ardour/sfdb_ui.cc b/gtk2_ardour/sfdb_ui.cc index 947f470ac8..aa06d86bb8 100644 --- a/gtk2_ardour/sfdb_ui.cc +++ b/gtk2_ardour/sfdb_ui.cc @@ -31,7 +31,7 @@ #include #include -#include +#include #include "ardour_ui.h" #include "gui_thread.h" @@ -122,7 +122,7 @@ SoundFileBox::setup_labels (string filename) path = filename; string error_msg; - if(!ExternalSource::get_soundfile_info (filename, sf_info, error_msg)) { + if(!AudioFileSource::get_soundfile_info (filename, sf_info, error_msg)) { return false; } @@ -187,12 +187,12 @@ SoundFileBox::play_btn_clicked () if (region_cache.find (path) == region_cache.end()) { AudioRegion::SourceList srclist; - ExternalSource* sfs; + AudioFileSource* afs; for (int n = 0; n < sf_info.channels; ++n) { try { - sfs = ExternalSource::create (path+":"+string_compose("%1", n), false); - srclist.push_back(sfs); + afs = AudioFileSource::create (path+":"+string_compose("%1", n)); + srclist.push_back(afs); } catch (failed_constructor& err) { error << _("Could not access soundfile: ") << path << endmsg; diff --git a/gtk2_ardour/sfdb_ui.h b/gtk2_ardour/sfdb_ui.h index 769e4ff02d..79c73b97ac 100644 --- a/gtk2_ardour/sfdb_ui.h +++ b/gtk2_ardour/sfdb_ui.h @@ -40,7 +40,7 @@ #include #include -#include +#include #include "ardour_dialog.h" #include "editing.h" @@ -69,7 +69,7 @@ class SoundFileBox : public Gtk::VBox LabelModelColumns label_columns; - ARDOUR::SoundFileInfo sf_info; + ARDOUR::SoundFileInfo sf_info; pid_t current_pid; diff --git a/gtk2_ardour/streamview.cc b/gtk2_ardour/streamview.cc index bceaf09f99..70c06b1db7 100644 --- a/gtk2_ardour/streamview.cc +++ b/gtk2_ardour/streamview.cc @@ -6,7 +6,8 @@ #include #include -#include +#include +#include #include #include #include @@ -311,7 +312,7 @@ StreamView::undisplay_diskstream () } void -StreamView::display_diskstream (DiskStream *ds) +StreamView::display_diskstream (AudioDiskstream *ds) { playlist_change_connection.disconnect(); playlist_changed (ds); @@ -337,7 +338,7 @@ StreamView::playlist_modified () } void -StreamView::playlist_changed (DiskStream *ds) +StreamView::playlist_changed (AudioDiskstream *ds) { ENSURE_GUI_THREAD (bind (mem_fun (*this, &StreamView::playlist_changed), ds)); @@ -491,7 +492,7 @@ StreamView::diskstream_changed (void *src_ignored) AudioTrack *at; if ((at = _trackview.audio_track()) != 0) { - DiskStream& ds = at->disk_stream(); + AudioDiskstream& ds = at->disk_stream(); /* XXX grrr: when will SigC++ allow me to bind references? */ Gtkmm2ext::UI::instance()->call_slot (bind (mem_fun (*this, &StreamView::display_diskstream), &ds)); } else { @@ -634,7 +635,7 @@ StreamView::setup_rec_box () peak_ready_connections.clear(); for (uint32_t n=0; n < _trackview.get_diskstream()->n_channels(); ++n) { - Source *src = (Source *) _trackview.get_diskstream()->write_source (n); + AudioSource *src = (AudioSource *) _trackview.get_diskstream()->write_source (n); if (src) { sources.push_back (src); peak_ready_connections.push_back (src->PeakRangeReady.connect (bind (mem_fun (*this, &StreamView::rec_peak_range_ready), src))); @@ -662,7 +663,7 @@ StreamView::setup_rec_box () AudioTrack* at; at = _trackview.audio_track(); /* we know what it is already */ - DiskStream& ds = at->disk_stream(); + AudioDiskstream& ds = at->disk_stream(); jack_nframes_t frame_pos = ds.current_capture_start (); gdouble xstart = _trackview.editor.frame_to_pixel (frame_pos); gdouble xend; diff --git a/gtk2_ardour/streamview.h b/gtk2_ardour/streamview.h index eb17083de1..00ec2d93f2 100644 --- a/gtk2_ardour/streamview.h +++ b/gtk2_ardour/streamview.h @@ -37,7 +37,7 @@ namespace Gdk { namespace ARDOUR { class Route; - class DiskStream; + class AudioDiskstream; class Crossfade; class PeakData; class AudioRegion; @@ -151,12 +151,12 @@ class StreamView : public sigc::trackable void remove_audio_region_view (ARDOUR::AudioRegion* ); void remove_audio_rec_region (ARDOUR::AudioRegion*); - void display_diskstream (ARDOUR::DiskStream* ); + void display_diskstream (ARDOUR::AudioDiskstream* ); void undisplay_diskstream (); void redisplay_diskstream (); void diskstream_changed (void* ); void playlist_state_changed (ARDOUR::Change); - void playlist_changed (ARDOUR::DiskStream* ); + void playlist_changed (ARDOUR::AudioDiskstream* ); void playlist_modified (); bool crossfades_visible; diff --git a/gtk2_ardour/taperegionview.cc b/gtk2_ardour/taperegionview.cc index 19276223ef..533b715ce4 100644 --- a/gtk2_ardour/taperegionview.cc +++ b/gtk2_ardour/taperegionview.cc @@ -27,7 +27,8 @@ #include #include -#include +#include +#include #include "taperegionview.h" #include "audio_time_axis.h" -- cgit v1.2.3