Trim include dependency graph, especially for io.h and session.h.

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
This commit is contained in:
David Robillard 2009-01-30 20:18:31 +00:00
parent a384dab130
commit aaa91db6d9
58 changed files with 425 additions and 387 deletions

View 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

View 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"

View file

@ -46,19 +46,20 @@
#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>

View file

@ -24,12 +24,13 @@
#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>

View 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();
}

View 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; }

View 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 ();

View 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>

View 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>

View file

@ -30,11 +30,12 @@
#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"

View 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"

View 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" */
}

View 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);

View file

@ -17,17 +17,21 @@
*/
#include <cstring>
#include <boost/shared_ptr.hpp>
#include "ardour/audio_track.h"
#include "ardour/audioengine.h"
#include "ardour/bundle.h"
#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"
#include "ardour/session.h"
#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>
using namespace std;
using namespace Gtk;

View 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;

View 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"

View file

@ -40,19 +40,20 @@
#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"

View 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;

View file

@ -17,9 +17,11 @@
*/
#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"

View 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 ();

View 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>

View file

@ -28,7 +28,6 @@
namespace ARDOUR {
class AutomationList;
class Session;
class Automatable;

View file

@ -20,16 +20,17 @@
#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>
@ -37,20 +38,23 @@
#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) */

View 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

View file

@ -21,11 +21,10 @@
#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

View 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
{

View file

@ -22,7 +22,6 @@
#include "ardour.h"
#include "automation_list.h"
#include <evoral/Curve.hpp>
namespace ARDOUR {

View 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 {

View 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;

View 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>
@ -33,19 +30,15 @@
#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);

View file

@ -37,25 +37,23 @@
#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();

View file

@ -21,7 +21,6 @@
#include <ardour/types.h>
#include <ardour/utils.h>
#include <ardour/io.h>
#if defined (ARCH_X86) && defined (BUILD_SSE_OPTIMIZATIONS)
@ -29,7 +28,7 @@ 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_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);
}

View 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;

View 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;

View file

@ -20,13 +20,13 @@
#ifndef __ardour_port_h__
#define __ardour_port_h__
#include <set>
#include <string>
#include <vector>
#include <jack/jack.h>
#include <sigc++/trackable.h>
#include "ardour/data_type.h"
#include "ardour/types.h"
#include <sigc++/trackable.h>
#include <jack/jack.h>
#include <string>
#include <set>
#include <vector>
namespace ARDOUR {

View 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;

View 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;

View file

@ -28,6 +28,7 @@ class XMLNode;
namespace ARDOUR {
class Session;
class AudioRegion;
class RegionFactory {

View 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>
@ -38,13 +39,12 @@
#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 {

View 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 {

View 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 {

View file

@ -20,41 +20,38 @@
#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 AudioEngine;
class Slave;
class Diskstream;
class Route;
class AuxInput;
class Source;
class AudioSource;
class BufferSet;
class IO;
class Diskstream;
class AudioDiskstream;
class MidiDiskstream;
class AudioEngine;
class AudioFileSource;
class MidiSource;
class Auditioner;
class Processor;
class Send;
class IOProcessor;
class PortInsert;
class PluginInsert;
class Bundle;
class TempoMap;
class AudioTrack;
class NamedSelection;
class AudioRegion;
class Region;
class Playlist;
class VSTPlugin;
class AudioSource;
class AudioTrack;
class Auditioner;
class AutomationList;
class AuxInput;
class BufferSet;
class Bundle;
class ControlProtocolInfo;
class MidiTrack;
class MidiRegion;
class SMFSource;
class SessionDirectory;
class SessionMetadata;
class Diskstream;
class ExportHandler;
class ExportStatus;
struct RouteGroup;
class IO;
class IOProcessor;
class MidiDiskstream;
class MidiRegion;
class MidiSource;
class MidiTrack;
class NamedSelection;
class Playlist;
class PluginInsert;
class Port;
class PortInsert;
class Processor;
class Region;
class Route;
class RouteGroup;
class SMFSource;
class Send;
class SessionDirectory;
class SessionMetadata;
class Slave;
class Source;
class TempoMap;
class VSTPlugin;
using std::vector;
using std::string;
@ -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,13 +942,6 @@ 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,
@ -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:
@ -1235,7 +1222,8 @@ class Session : public PBD::StatefulDestructible
};
static const PostTransportWork ProcessCannotProceedMask =
PostTransportWork (PostTransportInputChange|
PostTransportWork (
PostTransportInputChange|
PostTransportSpeed|
PostTransportReverse|
PostTransportCurveRealloc|
@ -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 () {}
};
Glib::Mutex midi_lock;
@ -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

View file

@ -29,6 +29,7 @@ class Session;
class Diskstream;
class Playlist;
class RouteGroup;
class Region;
class Track : public Route
{

View file

@ -379,6 +379,12 @@ namespace ARDOUR {
VST
};
enum RunContext {
ButlerContext = 0,
TransportContext,
ExportContext
};
enum SlaveSource {
None = 0,
MTC,

View 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;

View 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>

View file

@ -18,12 +18,13 @@
*/
#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/audio_port.h>
#include <ardour/audio_track.h>
#include <ardour/audioengine.h>
#include <ardour/export_channel.h>
#include <ardour/export_failed.h>
#include <ardour/session.h>
using namespace ARDOUR;

View 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"

View 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);
}

View file

@ -38,17 +38,19 @@
#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;

View 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;

View 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"

View file

@ -43,47 +43,48 @@
#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/midi_track.h>
#include <ardour/named_selection.h>
#include <ardour/playlist.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/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"

View file

@ -31,12 +31,13 @@
#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;

View file

@ -22,17 +22,18 @@
#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"

View file

@ -103,6 +103,7 @@
#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>

View 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>

View 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--;
}
}