Trim include dependency graph, especially for io.h and session.h.
authorDavid Robillard <d@drobilla.net>
Fri, 30 Jan 2009 20:18:31 +0000 (20:18 +0000)
committerDavid Robillard <d@drobilla.net>
Fri, 30 Jan 2009 20:18:31 +0000 (20:18 +0000)
Clean up some stuff and other such gruntwork in the process.

git-svn-id: svn://localhost/ardour2/branches/3.0@4468 d708f5d6-7413-0410-9779-e7cbd77b26cf

58 files changed:
SConstruct
gtk2_ardour/automation_region_view.cc
gtk2_ardour/editor.cc
gtk2_ardour/export_channel_selector.cc
gtk2_ardour/gain_meter.cc
gtk2_ardour/gain_meter.h
gtk2_ardour/level_meter.h
gtk2_ardour/mixer_strip.cc
gtk2_ardour/mixer_strip.h
gtk2_ardour/mixer_ui.cc
gtk2_ardour/mixer_ui.h
gtk2_ardour/panner2d.cc
gtk2_ardour/panner_ui.h
gtk2_ardour/port_group.cc
gtk2_ardour/processor_box.h
gtk2_ardour/route_params_ui.h
gtk2_ardour/route_time_axis.cc
gtk2_ardour/route_time_axis.h
gtk2_ardour/send_ui.cc
libs/ardour/ardour/audio_diskstream.h
libs/ardour/ardour/automatable.h
libs/ardour/ardour/automation_control.h
libs/ardour/ardour/diskstream.h
libs/ardour/ardour/export_channel.h
libs/ardour/ardour/export_filename.h
libs/ardour/ardour/export_handler.h
libs/ardour/ardour/gain.h
libs/ardour/ardour/internal_send.h
libs/ardour/ardour/io.h
libs/ardour/ardour/io_processor.h
libs/ardour/ardour/midi_diskstream.h
libs/ardour/ardour/mix.h
libs/ardour/ardour/panner.h
libs/ardour/ardour/plugin_insert.h
libs/ardour/ardour/port.h
libs/ardour/ardour/processor.h
libs/ardour/ardour/region.h
libs/ardour/ardour/region_factory.h
libs/ardour/ardour/route.h
libs/ardour/ardour/route_group_specialized.h
libs/ardour/ardour/send.h
libs/ardour/ardour/session.h
libs/ardour/ardour/track.h
libs/ardour/ardour/types.h
libs/ardour/audio_diskstream.cc
libs/ardour/diskstream.cc
libs/ardour/export_channel.cc
libs/ardour/internal_send.cc
libs/ardour/io_processor.cc
libs/ardour/midi_diskstream.cc
libs/ardour/route_group.cc
libs/ardour/send.cc
libs/ardour/session.cc
libs/ardour/session_butler.cc
libs/ardour/session_export.cc
libs/ardour/session_state.cc
libs/ardour/smf_source.cc
libs/surfaces/control_protocol/control_protocol.cc

index 1744090bd4277c127bdd66c79133a720e4bbff14..6d41bb0e4ce797880692119490a02134c54f3579 100644 (file)
@@ -677,9 +677,9 @@ env = conf.Finish()
 
 opt_flags = []
 if env['GPROFILE'] == 1:
-    debug_flags = [ '-g', '-pg' ]
+    debug_flags = [ '-O0', '-g', '-pg' ]
 else:
-    debug_flags = [ '-g' ]
+    debug_flags = [ '-O0', '-g' ]
 
 # guess at the platform, used to define compiler flags
 
index 5eae11463fc52eaa1659c2f4e474fb492a6b1252..200a1e2fb29e5841b64d2dd2a1057c6b5f3f9027 100644 (file)
@@ -18,6 +18,8 @@
 */
 
 #include <pbd/memento_command.h>
+#include <ardour/session.h>
+#include <ardour/automation_control.h>
 #include "automation_region_view.h"
 #include "public_editor.h"
 
index 8f1c1917c1cb3a36fda5c2f917c76266ee128670..0932a046e08f492e78456a4bf5a634bdeb5a9268 100644 (file)
 #include <gtkmm2ext/window_title.h>
 #include <gtkmm2ext/choice.h>
 
-#include <ardour/audio_track.h>
 #include <ardour/audio_diskstream.h>
-#include <ardour/plugin_manager.h>
-#include <ardour/location.h>
+#include <ardour/audio_track.h>
 #include <ardour/audioplaylist.h>
 #include <ardour/audioregion.h>
+#include <ardour/location.h>
 #include <ardour/midi_region.h>
-#include <ardour/session_route.h>
+#include <ardour/plugin_manager.h>
+#include <ardour/profile.h>
+#include <ardour/route_group.h>
 #include <ardour/session_directory.h>
+#include <ardour/session_route.h>
 #include <ardour/session_state_utils.h>
 #include <ardour/tempo.h>
 #include <ardour/utils.h>
-#include <ardour/profile.h>
 
 #include <control_protocol/control_protocol.h>
 
index 62380c1604c34910c2e98b5f5a8b4b0b4526ab10..1f1472d830a71eeb9962c1ab62bfd9a8ef2cfd23 100644 (file)
 
 #include <pbd/convert.h>
 
+#include <ardour/audio_port.h>
+#include <ardour/audio_track.h>
 #include <ardour/audioengine.h>
 #include <ardour/export_channel_configuration.h>
 #include <ardour/export_handler.h>
 #include <ardour/io.h>
 #include <ardour/route.h>
-#include <ardour/audio_port.h>
 #include <ardour/session.h>
 
 #include <sstream>
index 8438147746ad69f8c03bca8f106fccbe041c65cc..f90e28a9ac00772d9c6b3f63626d7d458992c820 100644 (file)
@@ -924,3 +924,10 @@ GainMeter::meter_metrics_expose (GdkEventExpose *ev)
        return true;
 }
 
+boost::shared_ptr<PBD::Controllable>
+GainMeterBase::get_controllable()
+{
+       return _io->gain_control();
+}
+
+
index 820e9ef0e76f5d0474e318073a63edac37fabf94..0c4e52b7c52cd771ba74ed49a5e913c5fdeb46ea 100644 (file)
@@ -74,7 +74,7 @@ class GainMeterBase : virtual public sigc::trackable
 
        virtual void setup_meters (int len=0);
 
-       boost::shared_ptr<PBD::Controllable> get_controllable() { return _io->gain_control(); }
+       boost::shared_ptr<PBD::Controllable> get_controllable();
 
        LevelMeter& get_level_meter() const { return *level_meter; }
        Gtkmm2ext::SliderController& get_gain_slider() const { return *gain_slider; }
index 521b9d1d8f10e5c766d65486f72a371b20d68374..0273a075c87dbbca639d08afb81650c2c518b2ab 100644 (file)
@@ -21,7 +21,6 @@
 #define __ardour_gtk_track_meter_h__
 
 #include <vector>
-#include <map>
 
 #include <gtkmm/box.h>
 #include <gtkmm/adjustment.h>
@@ -93,7 +92,7 @@ class LevelMeter : public Gtk::HBox
 
        guint16 regular_meter_width;
        static const guint16 thin_meter_width = 2;
-       vector<MeterInfo>    meters;
+       std::vector<MeterInfo>    meters;
        float       max_peak;
        
        void hide_all_meters ();
index 365a26f948a988bb10e1dce4c156cfb972d23a6f..1bee8268aecf0b9aec66e160a3ba23497cf7be78 100644 (file)
@@ -36,6 +36,7 @@
 #include <ardour/session.h>
 #include <ardour/audioengine.h>
 #include <ardour/route.h>
+#include <ardour/route_group.h>
 #include <ardour/audio_track.h>
 #include <ardour/audio_diskstream.h>
 #include <ardour/panner.h>
index 45b650172b77c596c081545f8d7d847a29a9f279..e859e520267a29e450ea955a563d1d0bb201a697 100644 (file)
@@ -42,9 +42,7 @@
 
 #include <ardour/types.h>
 #include <ardour/ardour.h>
-#include <ardour/io.h>
 #include <ardour/processor.h>
-#include <ardour/io_processor.h>
 
 #include <pbd/fastlog.h>
 
index 2c223f5bdab8323b8da3bdda1132aa38365c054f..8da14e2f469e7b46b0a9d1d9e9e1df2c725d16d2 100644 (file)
 #include <gtkmm2ext/stop_signal.h>
 #include <gtkmm2ext/window_title.h>
 
-#include <ardour/session.h>
-#include <ardour/audio_track.h>
-#include <ardour/session_route.h>
 #include <ardour/audio_diskstream.h>
+#include <ardour/audio_track.h>
 #include <ardour/plugin_manager.h>
+#include <ardour/route_group.h>
+#include <ardour/session.h>
+#include <ardour/session_route.h>
 
 #include "keyboard.h"
 #include "mixer_ui.h"
index f5e1ae211ddd8246f1259edea3c24a96b9f2eb45..2dbddc9dd069e857a3b9dd47a8076d6fd391922c 100644 (file)
@@ -35,7 +35,6 @@
 #include <pbd/stateful.h>
 
 #include <ardour/ardour.h>
-#include <ardour/io.h>
 
 #include "route_processor_selection.h"
 #include "enums.h"
index 91ca15b7b7d74cb9cedb060cfec34b7e3f789de1..97f7fcd123850d0cc7cbf58d6a2838179ec5598b 100644 (file)
@@ -633,7 +633,7 @@ Panner2d::on_button_release_event (GdkEventButton *ev)
 
 
                        for (Targets::iterator i = pucks.begin(); i != pucks.end(); ++i) {
-                               Target* puck = i->second;
+                               //Target* puck = i->second;
 
                                /* XXX DO SOMETHING TO SET PUCK BACK TO "normal" */
                        }
index 6be92f9c5a13356a4310e8abcffb58421273c166..b6c439fd6ae618ab1a446b7e267f5f07839cc788 100644 (file)
@@ -114,8 +114,8 @@ class PannerUI : public Gtk::HBox
 
        void panning_link_direction_clicked ();
 
-       vector<Gtk::Adjustment*> pan_adjustments;
-       vector<PannerBar*> pan_bars;
+       std::vector<Gtk::Adjustment*> pan_adjustments;
+       std::vector<PannerBar*> pan_bars;
 
        void pan_adjustment_changed (uint32_t which);
        void pan_value_changed (uint32_t which);
index 4bf565a3e9c0de84dab86ebe60cb86fd5fe9999b..405d503016b15bd66d9e87b9ddc40c185d7a0d58 100644 (file)
 
 */
 
-#include "port_group.h"
-#include "port_matrix.h"
-#include "i18n.h"
-#include "ardour/session.h"
+#include <cstring>
+#include <boost/shared_ptr.hpp>
+
 #include "ardour/audio_track.h"
-#include "ardour/midi_track.h"
 #include "ardour/audioengine.h"
-#include "ardour/port.h"
 #include "ardour/bundle.h"
-#include <boost/shared_ptr.hpp>
-#include <cstring>
+#include "ardour/io_processor.h"
+#include "ardour/midi_track.h"
+#include "ardour/port.h"
+#include "ardour/session.h"
+
+#include "port_group.h"
+#include "port_matrix.h"
+
+#include "i18n.h"
 
 using namespace std;
 using namespace Gtk;
index e47c28ec109c28448fa8f45f62a93d8dc25c7724..0a6399caad450e4208148b650484fcf324325c4f 100644 (file)
@@ -36,7 +36,6 @@
 
 #include <ardour/types.h>
 #include <ardour/ardour.h>
-#include <ardour/io.h>
 #include <ardour/plugin_insert.h>
 #include <ardour/port_insert.h>
 #include <ardour/processor.h>
@@ -56,6 +55,7 @@ class RouteRedirectSelection;
 
 namespace ARDOUR {
        class Connection;
+       class IO;
        class Insert;
        class Plugin;
        class PluginInsert;
index a41a0924409e7e6edda27c54b547c73b02ce1c90..484c4f28a825d7cca4ad32199bc4b2111a44ad96 100644 (file)
@@ -35,8 +35,6 @@
 #include <pbd/stateful.h>
 
 #include <ardour/ardour.h>
-#include <ardour/io.h>
-#include <ardour/io_processor.h>
 
 #include "io_selector.h"
 #include "ardour_dialog.h"
index e544122ccd13f63b9b16fa0a8bb67085d3371530..f8b34bd459a5cbaa35661f9f5ff2dd4aee05b8e4 100644 (file)
 #include <gtkmm2ext/bindable_button.h>
 #include <gtkmm2ext/utils.h>
 
-#include <ardour/playlist.h>
 #include <ardour/audioplaylist.h>
 #include <ardour/diskstream.h>
-#include <ardour/processor.h>
 #include <ardour/ladspa_plugin.h>
 #include <ardour/location.h>
 #include <ardour/panner.h>
 #include <ardour/playlist.h>
+#include <ardour/playlist.h>
+#include <ardour/processor.h>
+#include <ardour/profile.h>
+#include <ardour/route_group.h>
 #include <ardour/session.h>
 #include <ardour/session_playlist.h>
 #include <ardour/utils.h>
 #include <evoral/Parameter.hpp>
-#include <ardour/profile.h>
 
 #include "ardour_ui.h"
 #include "route_time_axis.h"
index 9e40c511a6f980a1465f2155444aa140a47db80d..da1ee711d654e0fd56e69b384a12efeb0fa8702e 100644 (file)
@@ -20,6 +20,9 @@
 #ifndef __ardour_route_time_axis_h__
 #define __ardour_route_time_axis_h__
 
+#include <list>
+#include <set>
+
 #include <gtkmm/table.h>
 #include <gtkmm/button.h>
 #include <gtkmm/box.h>
@@ -31,7 +34,6 @@
 
 #include <gtkmm2ext/selector.h>
 #include <gtkmm2ext/slider_controller.h>
-#include <list>
 
 #include <ardour/playlist.h>
 #include <ardour/types.h>
@@ -305,7 +307,7 @@ protected:
        ProcessorAutomationCurves processor_automation_curves;
        
        // Set from XML so context menu automation buttons can be correctly initialized
-       set<Evoral::Parameter> _show_automation;
+       std::set<Evoral::Parameter> _show_automation;
 
        AutomationTracks _automation_tracks;
 
index fc05c08c2a1d224602a242dd9c17d59f40f4ad59..3fb6e8af47571a102f17c897a08cd2fce282c4ff 100644 (file)
 
 */
 
-#include <ardour/send.h>
 #include <gtkmm2ext/doi.h>
 
+#include <ardour/io.h>
+#include <ardour/send.h>
+
 #include "utils.h"
 #include "send_ui.h"
 #include "io_selector.h"
index 92c8e82df82b91dabef2af1503a0f03101855615..8f081ab58dbca91d8f26888ab674a8546b1d06e9 100644 (file)
@@ -36,9 +36,6 @@
 
 #include <ardour/ardour.h>
 #include <ardour/configuration.h>
-#include <ardour/session.h>
-#include <ardour/route_group.h>
-#include <ardour/route.h>
 #include <ardour/utils.h>
 #include <ardour/diskstream.h>
 #include <ardour/audioplaylist.h>
@@ -261,7 +258,7 @@ class AudioDiskstream : public Diskstream
        void process_varispeed_playback(nframes_t nframes, boost::shared_ptr<ChannelList> c);
        
        /* The two central butler operations */
-       int do_flush (Session::RunContext context, bool force = false);
+       int do_flush (RunContext context, bool force = false);
        int do_refill () { return _do_refill(_mixdown_buffer, _gain_buffer); }
        
        int do_refill_with_alloc ();
index d99960334d00a464224c505811db5df0bcc6d937..ca4624f281ade92222434dd06f726415a958935d 100644 (file)
@@ -23,9 +23,6 @@
 #include <set>
 #include <map>
 #include <boost/shared_ptr.hpp>
-#include <ardour/session_object.h>
-#include <ardour/automation_list.h>
-#include <ardour/automation_control.h>
 #include <ardour/event_type_map.h>
 #include <evoral/ControlSet.hpp>
 #include <evoral/Sequence.hpp>
index 4cb6d1a79acba3736f3913dcda4aa98b7e2f8d97..3f22e6d57fd295460de12aeadd92636cbc7e60a0 100644 (file)
@@ -28,7 +28,6 @@
 
 namespace ARDOUR {
 
-class AutomationList;
 class Session;
 class Automatable;
 
index b0ac26342ff110d73c0fd3a81b1f800f8cd9fd77..211933c77868f114893f6c920b0a493b12eab910 100644 (file)
 #ifndef __ardour_diskstream_h__
 #define __ardour_diskstream_h__
 
-#include <sigc++/signal.h>
-
-#include <cmath>
 #include <string>
 #include <queue>
 #include <map>
 #include <vector>
-
+#include <cmath>
 #include <time.h>
 
+#include <sigc++/signal.h>
+
+#include <evoral/types.hpp>
+
 #include <pbd/fastlog.h>
 #include <pbd/ringbufferNPT.h>
 #include <pbd/stateful.h>
 
 #include <ardour/ardour.h>
 #include <ardour/configuration.h>
-#include <ardour/session.h>
-#include <ardour/route_group.h>
-#include <ardour/route.h>
+#include <ardour/location.h>
+#include <ardour/session_object.h>
+#include <ardour/types.h>
 #include <ardour/utils.h>
+#include <ardour/chan_count.h>
 
 struct tm;
 
 namespace ARDOUR {
 
 class AudioEngine;
+class IO;
+class Playlist;
+class Processor;
+class Region;
 class Send;
 class Session;
-class Playlist;
-class IO;
 
 class Diskstream : public SessionObject
 {      
@@ -195,7 +199,7 @@ class Diskstream : public SessionObject
        };
 
        /* The two central butler operations */
-       virtual int do_flush (Session::RunContext context, bool force = false) = 0;
+       virtual int do_flush (RunContext context, bool force = false) = 0;
        virtual int do_refill () = 0;
        
        /** For non-butler contexts (allocates temporary working buffers) */
index 213bd2d9fa28136f2d9d3a76c78c8ac96a50ac6a..d7c363860ce0cfbba598f51716819eadbb06ac94 100644 (file)
@@ -22,7 +22,6 @@
 #define __ardour_export_channel_h__
 
 #include <ardour/audioregion.h>
-#include <ardour/audio_track.h>
 #include <ardour/buffer_set.h>
 
 #include <set>
@@ -33,6 +32,8 @@
 namespace ARDOUR {
 
 class Session;
+class AudioTrack;
+class AudioPort;
 
 /// Export channel base class interface for different source types
 class ExportChannel
index e44c50f394f4119697967a679b511e2b15915097..fb9f5dcbbc6b859b6614902fcbd43a522320d82b 100644 (file)
 #ifndef __ardour_export_filename_h__
 #define __ardour_export_filename_h__
 
+#include <boost/shared_ptr.hpp>
 #include <glibmm/ustring.h>
 #include <pbd/statefuldestructible.h>
 
-#include <ardour/session.h>
-
 using Glib::ustring;
 
 namespace ARDOUR
index 6142869fe0fc8273d24ceae1e6aa841ff60423c2..b918963ae8642cead5ff8528a499cf6022744b4b 100644 (file)
@@ -28,8 +28,8 @@
 #include <boost/shared_ptr.hpp>
 
 #include <ardour/ardour.h>
-#include <ardour/session.h>
 #include <ardour/types.h>
+#include <ardour/session.h>
 
 namespace ARDOUR
 {
index 0c7d9f957d76f99b7b18def0d593e4fa60f875e3..207f794910a23d6a1c081026d3e7499ed97cf742 100644 (file)
@@ -22,7 +22,6 @@
 
 #include "ardour.h"
 #include "automation_list.h"
-#include <evoral/Curve.hpp>
 
 namespace ARDOUR {
 
index 0215ea9b9a804c36fa786232ae8a4ed1653d0cbc..8d2ea7b1c3f95903c4a241cbf13b603106a13a0d 100644 (file)
@@ -27,7 +27,6 @@
 #include <pbd/stateful.h> 
 #include <ardour/ardour.h>
 #include <ardour/audioengine.h>
-#include <ardour/io.h>
 #include <ardour/io_processor.h>
 
 namespace ARDOUR {
index a3c04689301d99b68aca8a4934dc4ec09c3cbdd9..5a3c5c2b123b7380442c3550d88b7477db71dd7c 100644 (file)
@@ -42,6 +42,7 @@
 #include <ardour/chan_count.h>
 #include <ardour/latent.h>
 #include <ardour/automation_control.h>
+#include <ardour/session_object.h>
 
 using std::string;
 using std::vector;
index 3739c496c55a20eaf2cbdc2365fe6a4677724d90..1c9da68767d12fc9101a1591c31488c5699c5954 100644 (file)
@@ -21,9 +21,6 @@
 #define __ardour_redirect_h__
 
 #include <string>
-#include <vector>
-#include <set>
-#include <map>
 #include <boost/shared_ptr.hpp>
 #include <sigc++/signal.h>
 
 
 #include <ardour/ardour.h>
 #include <ardour/processor.h>
-#include <ardour/io.h>
-#include <ardour/automation_list.h>
 
-using std::map;
-using std::set;
 using std::string;
-using std::vector;
 
 class XMLNode;
 
 namespace ARDOUR {
 
 class Session;
+class IO;
 
 /** A mixer strip element (Processor) with Jack ports (IO).
  */
@@ -59,17 +52,18 @@ class IOProcessor : public Processor
        IOProcessor (const IOProcessor&);
        virtual ~IOProcessor ();
        
-       virtual ChanCount output_streams() const { return _io->n_outputs(); }
-       virtual ChanCount input_streams () const { return _io->n_inputs(); }
-       virtual ChanCount natural_output_streams() const { return _io->n_outputs(); }
-       virtual ChanCount natural_input_streams () const { return _io->n_inputs(); }
+       virtual ChanCount output_streams() const;
+       virtual ChanCount input_streams () const;
+       virtual ChanCount natural_output_streams() const;
+       virtual ChanCount natural_input_streams () const;
 
        boost::shared_ptr<IO>       io()       { return _io; }
        boost::shared_ptr<const IO> io() const { return _io; }
        
-       virtual void automation_snapshot (nframes_t now, bool force) { _io->automation_snapshot(now, force); }
+       virtual void automation_snapshot (nframes_t now, bool force);
 
-       virtual void run_in_place (BufferSet& in, nframes_t start_frame, nframes_t end_frame, nframes_t nframes, nframes_t offset) = 0;
+       virtual void run_in_place (BufferSet& in, nframes_t start, nframes_t end,
+                       nframes_t nframes, nframes_t offset) = 0;
 
        void silence (nframes_t nframes, nframes_t offset);
 
index 02b0132f7a89f84fbab0a0bcef01079ea39e7fff..852a329544987f03e7f4ea2663160620a19e72ac 100644 (file)
 
 #include <ardour/ardour.h>
 #include <ardour/configuration.h>
-#include <ardour/session.h>
-#include <ardour/route_group.h>
-#include <ardour/route.h>
-#include <ardour/utils.h>
 #include <ardour/diskstream.h>
 #include <ardour/midi_playlist.h>
 #include <ardour/midi_ring_buffer.h>
 #include <ardour/midi_state_tracker.h>
+#include <ardour/utils.h>
 
 struct tm;
 
 namespace ARDOUR {
 
+class IO;
 class MidiEngine;
+class MidiPort;
+class MidiRingbuffer;
+class SMFSource;
 class Send;
 class Session;
-class MidiPlaylist;
-class SMFSource;
-class IO;
 
 class MidiDiskstream : public Diskstream
 {      
@@ -145,7 +143,7 @@ class MidiDiskstream : public Diskstream
   private:
 
        /* The two central butler operations */
-       int do_flush (Session::RunContext context, bool force = false);
+       int do_flush (RunContext context, bool force = false);
        int do_refill ();
        
        int do_refill_with_alloc();
index 67779f0e077a8dc5ed0adbfdf27a6311f8904aaf..c9bf9a605a79c00be5053db20048121f04b1fd9f 100644 (file)
 
 #include <ardour/types.h>
 #include <ardour/utils.h>
-#include <ardour/io.h>
 
 #if defined (ARCH_X86) && defined (BUILD_SSE_OPTIMIZATIONS)
 
 extern "C" {
 /* SSE functions */
-       float x86_sse_compute_peak              (const ARDOUR::Sample * buf, nframes_t nsamples, float current);
-       void  x86_sse_apply_gain_to_buffer      (ARDOUR::Sample * buf, nframes_t nframes, float gain);
-       void  x86_sse_mix_buffers_with_gain     (ARDOUR::Sample * dst, const ARDOUR::Sample * src, nframes_t nframes, float gain);
-       void  x86_sse_mix_buffers_no_gain       (ARDOUR::Sample * dst, const ARDOUR::Sample * src, nframes_t nframes);
+    float x86_sse_compute_peak         (const ARDOUR::Sample * buf, nframes_t nsamples, float current);
+    void  x86_sse_apply_gain_to_buffer (ARDOUR::Sample * buf, nframes_t nframes, float gain);
+    void  x86_sse_mix_buffers_with_gain(ARDOUR::Sample * dst, const ARDOUR::Sample * src, nframes_t nframes, float gain);
+    void  x86_sse_mix_buffers_no_gain  (ARDOUR::Sample * dst, const ARDOUR::Sample * src, nframes_t nframes);
 }
 
-void  x86_sse_find_peaks                (const ARDOUR::Sample * buf, nframes_t nsamples, float *min, float *max);
+void  x86_sse_find_peaks               (const ARDOUR::Sample * buf, nframes_t nsamples, float *min, float *max);
 
 /* debug wrappers for SSE functions */
 
-float debug_compute_peak               (const ARDOUR::Sample * buf, nframes_t nsamples, float current);
-void  debug_apply_gain_to_buffer       (ARDOUR::Sample * buf, nframes_t nframes, float gain);
-void  debug_mix_buffers_with_gain      (ARDOUR::Sample * dst, const ARDOUR::Sample * src, nframes_t nframes, float gain);
-void  debug_mix_buffers_no_gain                (ARDOUR::Sample * dst, const ARDOUR::Sample * src, nframes_t nframes);
+float debug_compute_peak               (const ARDOUR::Sample * buf, nframes_t nsamples, float current);
+void  debug_apply_gain_to_buffer       (ARDOUR::Sample * buf, nframes_t nframes, float gain);
+void  debug_mix_buffers_with_gain      (ARDOUR::Sample * dst, const ARDOUR::Sample * src, nframes_t nframes, float gain);
+void  debug_mix_buffers_no_gain        (ARDOUR::Sample * dst, const ARDOUR::Sample * src, nframes_t nframes);
 
 #endif
 
index f523f431c423054addd20c75f0d2c1ad24272bb0..34b99e63bfee9545719767d56e4d25f98049b591 100644 (file)
@@ -33,7 +33,6 @@
 #include <ardour/types.h>
 #include <ardour/automation_control.h>
 #include <ardour/processor.h>
-#include <ardour/session.h>
 
 using std::istream;
 using std::ostream;
index 5cf4b4cbe0b62ea3739aab43ee3791d98f96bfb1..2583728ef347c4eb4304bb57f3e46c618389369e 100644 (file)
@@ -29,7 +29,7 @@
 #include <ardour/ardour.h>
 #include <ardour/types.h>
 #include <ardour/processor.h>
-#include <ardour/automation_list.h>
+#include <ardour/automation_control.h>
 
 class XMLNode;
 
index 759d532e82e185f7ff424884a5e39cd25d37def9..896b35e734ea4b7936eafe743f0847457fe62e0e 100644 (file)
 #ifndef __ardour_port_h__
 #define __ardour_port_h__
 
-#include "ardour/data_type.h"
-#include "ardour/types.h"
-#include <sigc++/trackable.h>
-#include <jack/jack.h>
-#include <string>
 #include <set>
+#include <string>
 #include <vector>
+#include <jack/jack.h>
+#include <sigc++/trackable.h>
+#include "ardour/data_type.h"
+#include "ardour/types.h"
 
 namespace ARDOUR {
 
index da00c77dab6bb3f39dd926c542d73bd2e987b473..5a1011966ce3e704d24c5d8839a6d4ac7a8aa974 100644 (file)
@@ -33,6 +33,7 @@
 #include <ardour/buffer_set.h>
 #include <ardour/automatable.h>
 #include <ardour/latent.h>
+#include <ardour/session_object.h>
 
 class XMLNode;
 
index 66f5d2be355eab35a85a2545f6478ac63927fade..a84057a909d62790dc48de99f0b83fb04291e2ba 100644 (file)
@@ -30,6 +30,7 @@
 #include <ardour/data_type.h>
 #include <ardour/automatable.h>
 #include <ardour/readable.h>
+#include <ardour/session_object.h>
 
 class XMLNode;
 
index b88f3b225a566190c7794540f857761215a92a3c..ed16477310d68dacd3c821e9ab02aef65ebaf6a5 100644 (file)
@@ -28,6 +28,7 @@ class XMLNode;
 namespace ARDOUR {
 
 class Session;
+class AudioRegion;
 
 class RegionFactory {
 
index 1d3fc251648b6d576994cb85ec397f56a0122af7..cbf49108991b3ea7be3cb3abf4a48c3cd4a71fb4 100644 (file)
@@ -27,6 +27,7 @@
 #include <string>
 
 #include <boost/shared_ptr.hpp>
+#include <boost/weak_ptr.hpp>
 
 #include <pbd/fastlog.h>
 #include <glibmm/thread.h>
 
 #include <ardour/ardour.h>
 #include <ardour/io.h>
-#include <ardour/session.h>
-#include <ardour/io_processor.h>
 #include <ardour/types.h>
 
 namespace ARDOUR {
 
 class Processor;
+class IOProcessor;
 class Send;
 class RouteGroup;
 
@@ -154,7 +154,7 @@ class Route : public IO
                ProcessorList::iterator i;
                for (i = _processors.begin(); i != _processors.end() && n; ++i, --n);
                if (i == _processors.end()) {
-                       return boost::shared_ptr<IOProcessor> ();
+                       return boost::shared_ptr<Processor> ();
                } else {
                        return *i;
                }
@@ -227,7 +227,7 @@ class Route : public IO
        IO* control_outs() { return _control_outs; }
 
        bool feeds (boost::shared_ptr<Route>);
-       set<boost::shared_ptr<Route> > fed_by;
+       std::set<boost::shared_ptr<Route> > fed_by;
 
        struct ToggleControllable : public PBD::Controllable {
            enum ToggleType {
index 9e04c46d0e07587bc3fe9f795498438279f3032e..d2ad734b9da5d404a7cc5479ecb4ca439f727b36 100644 (file)
@@ -21,7 +21,7 @@
 #define __ardour_route_group_specialized_h__
 
 #include <ardour/route_group.h>
-#include <ardour/audio_track.h>
+#include <ardour/track.h>
 
 namespace ARDOUR {
 
index d5078bd7df566f81bf1bae9ba6beb84924f41207..497027866b77128c0ba22feef82e130ee9914043 100644 (file)
@@ -27,7 +27,6 @@
 #include <pbd/stateful.h> 
 #include <ardour/ardour.h>
 #include <ardour/audioengine.h>
-#include <ardour/io.h>
 #include <ardour/io_processor.h>
 
 namespace ARDOUR {
index 7cdc11a05487deeafefcc10e405f6108ad9fdbff..60e6aa724e300feea3dd0fb8fddb2e3605035cda 100644 (file)
 #ifndef __ardour_session_h__
 #define __ardour_session_h__
 
-#include <string>
 #include <list>
 #include <map>
-#include <vector>
 #include <set>
 #include <stack>
+#include <string>
+#include <vector>
+#include <stdint.h>
 
+#include <boost/dynamic_bitset.hpp>
 #include <boost/scoped_ptr.hpp>
 #include <boost/weak_ptr.hpp>
-#include <boost/dynamic_bitset.hpp>
-
-#include <stdint.h>
 
 #include <sndfile.h>
 
 #include <glibmm/thread.h>
 
 #include <pbd/error.h>
-#include <pbd/undo.h>
 #include <pbd/pool.h>
 #include <pbd/rcu.h>
 #include <pbd/statefuldestructible.h>
+#include <pbd/undo.h>
 
-#include <midi++/types.h>
 #include <midi++/mmc.h>
+#include <midi++/types.h>
 
-#include <pbd/stateful.h>
 #include <pbd/destructible.h>
+#include <pbd/stateful.h>
 
 #include <ardour/ardour.h>
+#include <ardour/chan_count.h>
 #include <ardour/configuration.h>
 #include <ardour/location.h>
-#include <ardour/gain.h>
-#include <ardour/chan_count.h>
-
 #include <ardour/smpte.h>
 
 class XMLTree;
@@ -69,51 +66,50 @@ namespace PBD {
        class Controllable;
 }
 
+namespace Evoral {
+       class Curve;
+}
+
 namespace ARDOUR {
 
-class Port;
+class AudioDiskstream;
 class AudioEngine;
-class Slave;
-class Diskstream;
-class Route;
-class AuxInput;
-class Source;
+class AudioFileSource;
+class AudioRegion;
 class AudioSource;
+class AudioTrack;
+class Auditioner;
+class AutomationList;
+class AuxInput;
 class BufferSet;
-class IO;
-
+class Bundle;
+class ControlProtocolInfo;
 class Diskstream;
-class AudioDiskstream;
+class ExportHandler;
+class ExportStatus;
+class IO;
+class IOProcessor;
 class MidiDiskstream;
-class AudioFileSource;
+class MidiRegion;
 class MidiSource;
-class Auditioner;
-class Processor;
-class Send;
-class IOProcessor;
-class PortInsert;
-class PluginInsert;
-class Bundle;
-class TempoMap;
-class AudioTrack;
+class MidiTrack;
 class NamedSelection;
-class AudioRegion;
-
-class Region;
 class Playlist;
-class VSTPlugin;
-class ControlProtocolInfo;
-
-class MidiTrack;
-class MidiRegion;
+class PluginInsert;
+class Port;
+class PortInsert;
+class Processor;
+class Region;
+class Route;
+class RouteGroup;
 class SMFSource;
-
+class Send;
 class SessionDirectory;
 class SessionMetadata;
-class ExportHandler;
-class ExportStatus;
-
-struct RouteGroup;
+class Slave;
+class Source;
+class TempoMap;
+class VSTPlugin;
 
 using std::vector;
 using std::string;
@@ -136,115 +132,115 @@ class Session : public PBD::StatefulDestructible
        };
 
        struct Event {
-           enum Type {
-                   SetTransportSpeed,
-                   SetDiskstreamSpeed,
-                   Locate,
-                   LocateRoll,
-                   LocateRollLocate,
-                   SetLoop,
-                   PunchIn,
-                   PunchOut,
-                   RangeStop,
-                   RangeLocate,
-                   Overwrite,
-                   SetSlaveSource,
-                   Audition,
-                   InputConfigurationChange,
-                   SetAudioRange,
-                   SetPlayRange,
-
-                   /* only one of each of these events
-                      can be queued at any one time
-                   */
-
-                   StopOnce,
-                   AutoLoop
-           };
-
-           enum Action {
-                   Add,
-                   Remove,
-                   Replace,
-                   Clear
-           };
+               enum Type {
+                       SetTransportSpeed,
+                       SetDiskstreamSpeed,
+                       Locate,
+                       LocateRoll,
+                       LocateRollLocate,
+                       SetLoop,
+                       PunchIn,
+                       PunchOut,
+                       RangeStop,
+                       RangeLocate,
+                       Overwrite,
+                       SetSlaveSource,
+                       Audition,
+                       InputConfigurationChange,
+                       SetAudioRange,
+                       SetPlayRange,
+
+                       /* only one of each of these events
+                          can be queued at any one time
+                          */
+
+                       StopOnce,
+                       AutoLoop
+               };
+
+               enum Action {
+                       Add,
+                       Remove,
+                       Replace,
+                       Clear
+               };
 
                Type           type;
-           Action         action;
-           nframes_t      action_frame;
-           nframes_t      target_frame;
-           double         speed;
+               Action         action;
+               nframes_t      action_frame;
+               nframes_t      target_frame;
+               double         speed;
 
-           union {
+               union {
                        void*                ptr;
                        bool                 yes_or_no;
-                       nframes_t            target2_frame;
+                       nframes_t            target2_frame;
                        SlaveSource slave;
                        Route*               route;
-           };
+               };
 
-           boost::shared_ptr<Region>     region;
+               boost::shared_ptr<Region>     region;
 
-           list<AudioRange>     audio_range;
-           list<MusicRange>     music_range;
+               list<AudioRange>     audio_range;
+               list<MusicRange>     music_range;
 
-           Event(Type t, Action a, nframes_t when, nframes_t where, double spd, bool yn = false)
-                   : type (t),
-                     action (a),
-                     action_frame (when),
-                     target_frame (where),
-                     speed (spd),
-                     yes_or_no (yn) {}
+               Event(Type t, Action a, nframes_t when, nframes_t where, double spd, bool yn = false)
+                       : type (t),
+                       action (a),
+                       action_frame (when),
+                       target_frame (where),
+                       speed (spd),
+                       yes_or_no (yn) {}
 
-           void set_ptr (void* p) {
-                   ptr = p;
-           }
+               void set_ptr (void* p) {
+                       ptr = p;
+               }
 
-           bool before (const Event& other) const {
-                   return action_frame < other.action_frame;
-           }
+               bool before (const Event& other) const {
+                       return action_frame < other.action_frame;
+               }
 
-           bool after (const Event& other) const {
-                   return action_frame > other.action_frame;
-           }
+               bool after (const Event& other) const {
+                       return action_frame > other.action_frame;
+               }
 
-           static bool compare (const Event *e1, const Event *e2) {
-                   return e1->before (*e2);
-           }
+               static bool compare (const Event *e1, const Event *e2) {
+                       return e1->before (*e2);
+               }
 
-           void *operator new (size_t ignored) {
-                   return pool.alloc ();
-           }
+               void *operator new (size_t ignored) {
+                       return pool.alloc ();
+               }
 
-           void operator delete(void *ptr, size_t size) {
-                   pool.release (ptr);
-           }
+               void operator delete(void *ptr, size_t size) {
+                       pool.release (ptr);
+               }
 
-           static const nframes_t Immediate = 0;
+               static const nframes_t Immediate = 0;
 
-        private:
-           static MultiAllocSingleReleasePool pool;
+               private:
+               static MultiAllocSingleReleasePool pool;
        };
 
        /* creating from an XML file */
 
        Session (AudioEngine&,
-                const string& fullpath,
-                const string& snapshot_name,
-                string mix_template = "");
+                       const string& fullpath,
+                       const string& snapshot_name,
+                       string mix_template = "");
 
        /* creating a new Session */
 
        Session (AudioEngine&,
-                string fullpath,
-                string snapshot_name,
-                AutoConnectOption input_auto_connect,
-                AutoConnectOption output_auto_connect,
-                uint32_t control_out_channels,
-                uint32_t master_out_channels,
-                uint32_t n_physical_in,
-                uint32_t n_physical_out,
-                nframes_t initial_length);
+                       string fullpath,
+                       string snapshot_name,
+                       AutoConnectOption input_auto_connect,
+                       AutoConnectOption output_auto_connect,
+                       uint32_t control_out_channels,
+                       uint32_t master_out_channels,
+                       uint32_t n_physical_in,
+                       uint32_t n_physical_out,
+                       nframes_t initial_length);
 
        virtual ~Session ();
 
@@ -573,12 +569,12 @@ class Session : public PBD::StatefulDestructible
        static sigc::signal<void> EndTimeChanged;
        static sigc::signal<void> SMPTEOffsetChanged;
 
-       void        request_slave_source (SlaveSource);
-       bool        synced_to_jack() const { return Config->get_slave_source() == JACK; }
+       void   request_slave_source (SlaveSource);
+       bool   synced_to_jack() const { return Config->get_slave_source() == JACK; }
 
-       double      transport_speed() const { return _transport_speed; }
-       bool        transport_stopped() const { return _transport_speed == 0.0f; }
-       bool        transport_rolling() const { return _transport_speed != 0.0f; }
+       double transport_speed() const { return _transport_speed; }
+       bool   transport_stopped() const { return _transport_speed == 0.0f; }
+       bool   transport_rolling() const { return _transport_speed != 0.0f; }
 
        void set_silent (bool yn);
        bool silent () { return _silent; }
@@ -615,17 +611,17 @@ class Session : public PBD::StatefulDestructible
        /* source management */
 
        struct import_status : public InterThreadInfo {
-           string doing_what;
+               string doing_what;
 
-           /* control info */
-           uint32_t total;
-           SrcQuality quality;
-           volatile bool freeze;
-           std::vector<Glib::ustring> paths;
-           bool replace_existing_source;
+               /* control info */
+               uint32_t total;
+               SrcQuality quality;
+               volatile bool freeze;
+               std::vector<Glib::ustring> paths;
+               bool replace_existing_source;
 
-           /* result */
-           SourceList sources;
+               /* result */
+               SourceList sources;
        };
 
        void import_audiofiles (import_status&);
@@ -728,8 +724,8 @@ class Session : public PBD::StatefulDestructible
 
        /* flattening stuff */
 
-       boost::shared_ptr<Region> write_one_track (AudioTrack&, nframes_t start, nframes_t end, bool overwrite, vector<boost::shared_ptr<Source> >&,
-                                                  InterThreadInfo& wot);
+       boost::shared_ptr<Region> write_one_track (AudioTrack&, nframes_t start, nframes_t end,
+                       bool overwrite, vector<boost::shared_ptr<Source> >&, InterThreadInfo& wot);
        int freeze (InterThreadInfo&);
 
        /* session-wide solo/mute/rec-enable */
@@ -946,21 +942,14 @@ class Session : public PBD::StatefulDestructible
        gain_t* gain_automation_buffer () const { return _gain_automation_buffer; }
        pan_t** pan_automation_buffer () const  { return _pan_automation_buffer; }
 
-       /* buffers for conversion */
-       enum RunContext {
-               ButlerContext = 0,
-               TransportContext,
-               ExportContext
-       };
-
        /* VST support */
 
        static long vst_callback (AEffect* effect,
-                                 long opcode,
-                                 long index,
-                                 long value,
-                                 void* ptr,
-                                 float opt);
+                       long opcode,
+                       long index,
+                       long value,
+                       void* ptr,
+                       float opt);
 
        static sigc::signal<void> SendFeedback;
 
@@ -971,8 +960,6 @@ class Session : public PBD::StatefulDestructible
        void add_controllable (boost::shared_ptr<PBD::Controllable>);
        void remove_controllable (PBD::Controllable*);
 
-       /* metadata */
-
        SessionMetadata & metadata () { return *_metadata; }
 
   protected:
@@ -1208,12 +1195,12 @@ class Session : public PBD::StatefulDestructible
        inline bool transport_work_requested() const { return g_atomic_int_get(&butler_should_do_transport_work); }
 
        struct ButlerRequest {
-           enum Type {
-                   Wake,
-                   Run,
-                   Pause,
-                   Quit
-           };
+               enum Type {
+                       Wake,
+                       Run,
+                       Pause,
+                       Quit
+               };
        };
 
        enum PostTransportWork {
@@ -1235,14 +1222,15 @@ class Session : public PBD::StatefulDestructible
        };
 
        static const PostTransportWork ProcessCannotProceedMask =
-               PostTransportWork (PostTransportInputChange|
-                                  PostTransportSpeed|
-                                  PostTransportReverse|
-                                  PostTransportCurveRealloc|
-                                  PostTransportScrub|
-                                  PostTransportAudition|
-                                  PostTransportLocate|
-                                  PostTransportStop);
+               PostTransportWork (
+                               PostTransportInputChange|
+                               PostTransportSpeed|
+                               PostTransportReverse|
+                               PostTransportCurveRealloc|
+                               PostTransportScrub|
+                               PostTransportAudition|
+                               PostTransportLocate|
+                               PostTransportStop);
 
        PostTransportWork post_transport_work;
 
@@ -1397,15 +1385,11 @@ class Session : public PBD::StatefulDestructible
        bool process_can_proceed() const { return !(post_transport_work & ProcessCannotProceedMask); }
 
        struct MIDIRequest {
-
-           enum Type {
-                   PortChange,
-                   Quit
-           };
-
-           Type type;
-
-           MIDIRequest () {}
+               enum Type {
+                       PortChange,
+                       Quit
+               };
+               Type type;
        };
 
        Glib::Mutex  midi_lock;
@@ -1587,18 +1571,18 @@ class Session : public PBD::StatefulDestructible
        /* S/W RAID */
 
        struct space_and_path {
-           uint32_t blocks; /* 4kB blocks */
-           string path;
+               uint32_t blocks; /* 4kB blocks */
+               string path;
 
-           space_and_path() {
-                   blocks = 0;
-           }
+               space_and_path() {
+                       blocks = 0;
+               }
        };
 
        struct space_and_path_ascending_cmp {
-           bool operator() (space_and_path a, space_and_path b) {
-                   return a.blocks > b.blocks;
-           }
+               bool operator() (space_and_path a, space_and_path b) {
+                       return a.blocks > b.blocks;
+               }
        };
 
        void setup_raid_path (string path);
@@ -1647,36 +1631,36 @@ class Session : public PBD::StatefulDestructible
        /* click track */
 
        struct Click {
-           nframes_t start;
-           nframes_t duration;
-           nframes_t offset;
-           const Sample *data;
+               nframes_t start;
+               nframes_t duration;
+               nframes_t offset;
+               const Sample *data;
 
-           Click (nframes_t s, nframes_t d, const Sample *b)
-                   : start (s), duration (d), data (b) { offset = 0; }
+               Click (nframes_t s, nframes_t d, const Sample *b)
+                       : start (s), duration (d), data (b) { offset = 0; }
 
-           void *operator new(size_t ignored) {
-                   return pool.alloc ();
-           };
+               void *operator new(size_t ignored) {
+                       return pool.alloc ();
+               };
 
-           void operator delete(void *ptr, size_t size) {
-                   pool.release (ptr);
-           }
+               void operator delete(void *ptr, size_t size) {
+                       pool.release (ptr);
+               }
 
          private:
-           static Pool pool;
+               static Pool pool;
        };
 
        typedef list<Click*> Clicks;
 
-       Clicks          clicks;
-       bool           _clicking;
+       Clicks                 clicks;
+       bool                  _clicking;
        boost::shared_ptr<IO> _click_io;
-       Sample*         click_data;
-       Sample*         click_emphasis_data;
-       nframes_t  click_length;
-       nframes_t  click_emphasis_length;
-       mutable Glib::RWLock click_lock;
+       Sample*                click_data;
+       Sample*                click_emphasis_data;
+       nframes_t              click_length;
+       nframes_t              click_emphasis_length;
+       mutable Glib::RWLock   click_lock;
 
        static const Sample    default_click[];
        static const nframes_t default_click_length;
@@ -1711,11 +1695,11 @@ class Session : public PBD::StatefulDestructible
        /* VST support */
 
        long _vst_callback (VSTPlugin*,
-                           long opcode,
-                           long index,
-                           long value,
-                           void* ptr,
-                           float opt);
+                       long opcode,
+                       long index,
+                       long value,
+                       void* ptr,
+                       float opt);
 
        /* number of hardware ports we're using,
           based on max (requested,available)
@@ -1730,7 +1714,6 @@ class Session : public PBD::StatefulDestructible
        uint32_t n_physical_midi_outputs;
        uint32_t n_physical_midi_inputs;
 
-
        int find_all_sources (std::string path, std::set<std::string>& result);
        int find_all_sources_across_snapshots (std::set<std::string>& result, bool exclude_this_snapshot);
 
@@ -1754,13 +1737,9 @@ class Session : public PBD::StatefulDestructible
 
        static bool _disable_all_loaded_plugins;
        
-       /* Metadata */
-
        SessionMetadata * _metadata;
 
-       /* used in ::audible_frame() */
-
-       mutable bool have_looped;
+       mutable bool have_looped; ///< Used in ::audible_frame(*)
 };
 
 } // namespace ARDOUR
index b524c5d5871f6e1640051c00bcbb14901b2738e4..566153d02f82eb8ad9529ef1868c2238d809b0c6 100644 (file)
@@ -29,6 +29,7 @@ class Session;
 class Diskstream;
 class Playlist;
 class RouteGroup;
+class Region;
 
 class Track : public Route
 {
index 125c8569a82d2407cff08d5fbb7ffeabb000f71f..f98b3d993a2e213bb65942879326d242d4e820f2 100644 (file)
@@ -378,6 +378,12 @@ namespace ARDOUR {
                LV2,
                VST
        };
+       
+       enum RunContext {
+               ButlerContext = 0,
+               TransportContext,
+               ExportContext
+       };
 
        enum SlaveSource {
                None = 0,
index 0661cb27a95eb8543f5635887525742c1c7763c8..2982b0f2f8b742e69896c3eff731cf683af76287 100644 (file)
@@ -53,6 +53,8 @@
 #include <ardour/audio_port.h>
 #include <ardour/source_factory.h>
 #include <ardour/audio_buffer.h>
+#include <ardour/session.h>
+#include <ardour/io.h>
 
 #include "i18n.h"
 #include <locale.h>
@@ -1403,7 +1405,7 @@ AudioDiskstream::_do_refill (Sample* mixdown_buffer, float* gain_buffer)
  * written at all unless @a force_flush is true.
  */
 int
-AudioDiskstream::do_flush (Session::RunContext context, bool force_flush)
+AudioDiskstream::do_flush (RunContext context, bool force_flush)
 {
        uint32_t to_write;
        int32_t ret = 0;
@@ -1555,7 +1557,7 @@ AudioDiskstream::transport_stopped (struct tm& when, time_t twhen, bool abort_ca
        */
 
        while (more_work && !err) {
-               switch (do_flush (Session::TransportContext, true)) {
+               switch (do_flush (TransportContext, true)) {
                case 0:
                        more_work = false;
                        break;
index afd5d214708ba6b145f4053ac6a339a73c16f002..54d5360aa3ea88bacb261abc09ba2bd8c2cd4986 100644 (file)
@@ -50,6 +50,9 @@
 #include <ardour/cycle_timer.h>
 #include <ardour/region.h>
 #include <ardour/panner.h>
+#include <ardour/session.h>
+#include <ardour/io.h>
+#include <ardour/route.h>
 
 #include "i18n.h"
 #include <locale.h>
index ccb481dc8f6856ffff3f6ad92877ddbb0de7b4c8..42138453e6122fef08d7cd921f7ebe348c0c4ab6 100644 (file)
 
 */
 
+#include <ardour/audio_buffer.h>
+#include <ardour/audio_port.h>
+#include <ardour/audio_track.h>
+#include <ardour/audioengine.h>
 #include <ardour/export_channel.h>
-
 #include <ardour/export_failed.h>
-#include <ardour/audioengine.h>
-#include <ardour/audio_port.h>
-#include <ardour/audio_buffer.h>
+#include <ardour/session.h>
 
 using namespace ARDOUR;
 
index 60c0cde6afd6ba104be5e682c297112fc37d6d36..56667baf4d0192587c3a72849f80d2b785fdd159 100644 (file)
@@ -28,6 +28,7 @@
 #include <ardour/buffer_set.h>
 #include <ardour/meter.h>
 #include <ardour/panner.h>
+#include <ardour/io.h>
 
 #include "i18n.h"
 
index fb27ba6f540d599c9dbc8299cc2b444591b5a79d..efa319a85b9854dae723262272f90cd7b3d54924 100644 (file)
@@ -35,6 +35,7 @@
 #include <ardour/send.h>
 #include <ardour/port_insert.h>
 #include <ardour/plugin_insert.h>
+#include <ardour/io.h>
 
 #include "i18n.h"
 
@@ -121,3 +122,34 @@ IOProcessor::silence (nframes_t nframes, nframes_t offset)
 {
        _io->silence(nframes, offset);
 }
+
+ChanCount
+IOProcessor::output_streams() const
+{
+       return _io->n_outputs();
+}
+
+ChanCount
+IOProcessor::input_streams () const
+{
+       return _io->n_inputs();
+}
+
+ChanCount
+IOProcessor::natural_output_streams() const
+{
+       return _io->n_outputs();
+}
+
+ChanCount
+IOProcessor::natural_input_streams () const
+{
+       return _io->n_inputs();
+}
+
+void
+IOProcessor::automation_snapshot (nframes_t now, bool force)
+{
+       _io->automation_snapshot(now, force);
+}
+
index 5b81401c41de8b70d311fe91990f7e135e06541c..959e687882ec1adcc89e460ca6a1ad7fadbb7d0e 100644 (file)
 
 #include <ardour/ardour.h>
 #include <ardour/audioengine.h>
-#include <ardour/midi_diskstream.h>
-#include <ardour/utils.h>
 #include <ardour/configuration.h>
-#include <ardour/smf_source.h>
-#include <ardour/send.h>
-#include <ardour/region_factory.h>
-#include <ardour/midi_playlist.h>
-#include <ardour/playlist_factory.h>
 #include <ardour/cycle_timer.h>
-#include <ardour/midi_region.h>
+#include <ardour/io.h>
+#include <ardour/midi_diskstream.h>
+#include <ardour/midi_playlist.h>
 #include <ardour/midi_port.h>
+#include <ardour/midi_region.h>
+#include <ardour/playlist_factory.h>
+#include <ardour/region_factory.h>
+#include <ardour/send.h>
+#include <ardour/session.h>
+#include <ardour/smf_source.h>
+#include <ardour/utils.h>
 
 #include "i18n.h"
 #include <locale.h>
@@ -870,7 +872,7 @@ MidiDiskstream::do_refill ()
  * written at all unless @a force_flush is true.
  */
 int
-MidiDiskstream::do_flush (Session::RunContext context, bool force_flush)
+MidiDiskstream::do_flush (RunContext context, bool force_flush)
 {
        uint32_t to_write;
        int32_t ret = 0;
@@ -941,7 +943,7 @@ MidiDiskstream::transport_stopped (struct tm& when, time_t twhen, bool abort_cap
           */
 
        while (more_work && !err) {
-               switch (do_flush (Session::TransportContext, true)) {
+               switch (do_flush (TransportContext, true)) {
                        case 0:
                                more_work = false;
                                break;
index f22deb5dbfd2c6b6420b7ae54f5339884c7856f2..b1852c360791b312ee35b7216320a0ee2346628d 100644 (file)
@@ -31,6 +31,7 @@
 #include <ardour/audio_track.h>
 #include <ardour/audio_diskstream.h>
 #include <ardour/configuration.h>
+#include <ardour/session.h>
 
 using namespace ARDOUR;
 using namespace sigc;
index d562ddff3f2860dcdbde46dc5a5a4351b568921c..bb5a4245752d2fcba5886d39782ce5468abdc6d5 100644 (file)
@@ -28,6 +28,7 @@
 #include <ardour/buffer_set.h>
 #include <ardour/meter.h>
 #include <ardour/panner.h>
+#include <ardour/io.h>
 
 #include "i18n.h"
 
index 6e7fe3a0f6186daed5ef04a75af8ea5d727ba368..862a8fb7e6fe709424bac4700e556a18dfd419c3 100644 (file)
 #include <pbd/stacktrace.h>
 #include <pbd/file_utils.h>
 
-#include <ardour/audioengine.h>
-#include <ardour/configuration.h>
-#include <ardour/session.h>
-#include <ardour/session_directory.h>
-#include <ardour/session_metadata.h>
-#include <ardour/utils.h>
+#include <ardour/analyser.h>
+#include <ardour/audio_buffer.h>
 #include <ardour/audio_diskstream.h>
+#include <ardour/audio_track.h>
+#include <ardour/audioengine.h>
+#include <ardour/audiofilesource.h>
 #include <ardour/audioplaylist.h>
 #include <ardour/audioregion.h>
-#include <ardour/audiofilesource.h>
+#include <ardour/auditioner.h>
+#include <ardour/buffer_set.h>
+#include <ardour/bundle.h>
+#include <ardour/click.h>
+#include <ardour/configuration.h>
+#include <ardour/crossfade.h>
+#include <ardour/cycle_timer.h>
+#include <ardour/data_type.h>
+#include <ardour/filename_extensions.h>
+#include <ardour/internal_send.h>
+#include <ardour/io_processor.h>
 #include <ardour/midi_diskstream.h>
 #include <ardour/midi_playlist.h>
 #include <ardour/midi_region.h>
-#include <ardour/smf_source.h>
-#include <ardour/auditioner.h>
-#include <ardour/recent_sessions.h>
-#include <ardour/io_processor.h>
-#include <ardour/send.h>
-#include <ardour/processor.h>
-#include <ardour/plugin_insert.h>
-#include <ardour/port_insert.h>
-#include <ardour/slave.h>
-#include <ardour/tempo.h>
-#include <ardour/audio_track.h>
 #include <ardour/midi_track.h>
-#include <ardour/cycle_timer.h>
 #include <ardour/named_selection.h>
-#include <ardour/crossfade.h>
 #include <ardour/playlist.h>
-#include <ardour/internal_send.h>
-#include <ardour/click.h>
-#include <ardour/data_type.h>
-#include <ardour/buffer_set.h>
-#include <ardour/source_factory.h>
+#include <ardour/plugin_insert.h>
+#include <ardour/port_insert.h>
+#include <ardour/processor.h>
+#include <ardour/recent_sessions.h>
 #include <ardour/region_factory.h>
-#include <ardour/filename_extensions.h>
+#include <ardour/route_group.h>
+#include <ardour/send.h>
+#include <ardour/session.h>
 #include <ardour/session_directory.h>
+#include <ardour/session_directory.h>
+#include <ardour/session_metadata.h>
+#include <ardour/slave.h>
+#include <ardour/smf_source.h>
+#include <ardour/source_factory.h>
 #include <ardour/tape_file_matcher.h>
-#include <ardour/analyser.h>
-#include <ardour/audio_buffer.h>
-#include <ardour/bundle.h>
+#include <ardour/tempo.h>
+#include <ardour/utils.h>
 
 #include "i18n.h"
 
index 5fe7a92d3d7da9b41f2c69cd4022a56d7d53c0fe..37d0bbd4e720b7badd29f94c6297904e91e15693 100644 (file)
 #include <pbd/pthread_utils.h>
 #include <pbd/stacktrace.h>
 
-#include <ardour/configuration.h>
-#include <ardour/audioengine.h>
-#include <ardour/session.h>
 #include <ardour/audio_diskstream.h>
-#include <ardour/midi_diskstream.h>
+#include <ardour/audioengine.h>
+#include <ardour/configuration.h>
 #include <ardour/crossfade.h>
+#include <ardour/io.h>
+#include <ardour/midi_diskstream.h>
+#include <ardour/session.h>
 #include <ardour/timestamps.h>
 
 #include "i18n.h"
@@ -315,7 +316,7 @@ Session::butler_thread_work ()
                        /* note that we still try to flush diskstreams attached to inactive routes
                         */
                        
-                       switch ((*i)->do_flush (Session::ButlerContext)) {
+                       switch ((*i)->do_flush (ButlerContext)) {
                        case 0:
                                bytes += (*i)->write_data_count();
                                break;
index 90ad257d3bdf027159bba591297043df33442b7a..c330a4f7ce85715c8636877274f30c600b46e0cd 100644 (file)
 #include <pbd/error.h>
 #include <glibmm/thread.h>
 
+#include <ardour/ardour.h>
+#include <ardour/audio_diskstream.h>
+#include <ardour/audioengine.h>
 #include <ardour/export_failed.h>
 #include <ardour/export_file_io.h>
-#include <ardour/export_utilities.h>
 #include <ardour/export_handler.h>
 #include <ardour/export_status.h>
-#include <ardour/timestamps.h>
-#include <ardour/ardour.h>
-#include <ardour/session.h>
-#include <ardour/audioengine.h>
-#include <ardour/audio_diskstream.h>
+#include <ardour/export_utilities.h>
 #include <ardour/panner.h>
+#include <ardour/route.h>
+#include <ardour/session.h>
+#include <ardour/timestamps.h>
 
 #include "i18n.h"
 
index 42dae522df8031846f8504697415aa92eb35e7b6..0f1d9720351a3c21f5f24aa1f3ce21fd2a115d1f 100644 (file)
 #include <ardour/directory_names.h>
 #include <ardour/template_utils.h>
 #include <ardour/ticker.h>
+#include <ardour/route_group.h>
 
 #include <control_protocol/control_protocol.h>
 
index dadd7a8e0a5e2b2a630adacd18661ab6d3e93c11..d379d52a3d7efb8b73e46b78c6c552ddd415dcee 100644 (file)
@@ -33,6 +33,7 @@
 #include <glibmm/miscutils.h>
 
 #include <evoral/SMFReader.hpp>
+#include <evoral/Control.hpp>
 
 #include <ardour/smf_source.h>
 #include <ardour/session.h>
index 1c9ee83833e96f3621e7a3435c55757106369c12..f95aadb2b87abca702c17c691f3abc35778d7ef8 100644 (file)
@@ -117,12 +117,12 @@ ControlProtocol::prev_track (uint32_t initial_id)
        }
 
        if (id < 0) {
-               id = limit;
-               while (id > initial_id) {
-                       if ((cr = session->route_by_remote_id (id)) != 0) {
+               uint32_t i = limit;
+               while (i > initial_id) {
+                       if ((cr = session->route_by_remote_id (i)) != 0) {
                                break;
                        }
-                       id--;
+                       i--;
                }
        }