projects
/
ardour.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix the horrible mess that was anything related to sources and paths.
[ardour.git]
/
libs
/
ardour
/
ardour
/
track.h
diff --git
a/libs/ardour/ardour/track.h
b/libs/ardour/ardour/track.h
index f16e9d29d93ce4a7d0a18daa459d0bf8e831ba98..566153d02f82eb8ad9529ef1868c2238d809b0c6 100644
(file)
--- a/
libs/ardour/ardour/track.h
+++ b/
libs/ardour/ardour/track.h
@@
-19,6
+19,8
@@
#ifndef __ardour_track_h__
#define __ardour_track_h__
#ifndef __ardour_track_h__
#define __ardour_track_h__
+#include <boost/shared_ptr.hpp>
+
#include <ardour/route.h>
namespace ARDOUR {
#include <ardour/route.h>
namespace ARDOUR {
@@
-27,6
+29,7
@@
class Session;
class Diskstream;
class Playlist;
class RouteGroup;
class Diskstream;
class Playlist;
class RouteGroup;
+class Region;
class Track : public Route
{
class Track : public Route
{
@@
-35,31
+38,33
@@
class Track : public Route
virtual ~Track ();
virtual ~Track ();
- int set_name (string str, void *src);
+ bool set_name (const std::string& str);
+
+ TrackMode mode () const { return _mode; }
+ virtual int set_mode (TrackMode m) { return false; }
+ virtual bool can_use_mode (TrackMode m, bool& bounce_required) { return false; }
+ sigc::signal<void> TrackModeChanged;
- virtual int roll (
jack_nframes_t nframes, jack_nframes_t start_frame, jack_
nframes_t end_frame,
-
jack_
nframes_t offset, int declick, bool can_record, bool rec_monitors_input) = 0;
+ virtual int roll (
nframes_t nframes, nframes_t start_frame,
nframes_t end_frame,
+ nframes_t offset, int declick, bool can_record, bool rec_monitors_input) = 0;
- virtual int no_roll (
jack_nframes_t nframes, jack_nframes_t start_frame, jack_
nframes_t end_frame,
-
jack_
nframes_t offset, bool state_changing, bool can_record, bool rec_monitors_input) = 0;
+ virtual int no_roll (
nframes_t nframes, nframes_t start_frame,
nframes_t end_frame,
+ nframes_t offset, bool state_changing, bool can_record, bool rec_monitors_input) = 0;
- virtual int silent_roll (
jack_nframes_t nframes, jack_nframes_t start_frame, jack_
nframes_t end_frame,
-
jack_
nframes_t offset, bool can_record, bool rec_monitors_input) = 0;
+ virtual int silent_roll (
nframes_t nframes, nframes_t start_frame,
nframes_t end_frame,
+ nframes_t offset, bool can_record, bool rec_monitors_input) = 0;
void toggle_monitor_input ();
void toggle_monitor_input ();
- bool can_record()
const { return true; }
+ bool can_record()
;
-
Diskstream& diskstream() const { return *
_diskstream; }
+
boost::shared_ptr<Diskstream> diskstream() const { return
_diskstream; }
virtual int use_diskstream (string name) = 0;
virtual int use_diskstream (const PBD::ID& id) = 0;
virtual int use_diskstream (string name) = 0;
virtual int use_diskstream (const PBD::ID& id) = 0;
- TrackMode mode() const { return _mode; }
- void set_mode (TrackMode m);
-
- jack_nframes_t update_total_latency();
- void set_latency_delay (jack_nframes_t);
+ nframes_t update_total_latency();
+ void set_latency_delay (nframes_t);
enum FreezeState {
NoFreeze,
enum FreezeState {
NoFreeze,
@@
-72,21
+77,20
@@
class Track : public Route
virtual void freeze (InterThreadInfo&) = 0;
virtual void unfreeze () = 0;
virtual void freeze (InterThreadInfo&) = 0;
virtual void unfreeze () = 0;
- virtual
void
bounce (InterThreadInfo&) = 0;
- virtual
void bounce_range (jack_nframes_t start, jack_
nframes_t end, InterThreadInfo&) = 0;
+ virtual
boost::shared_ptr<Region>
bounce (InterThreadInfo&) = 0;
+ virtual
boost::shared_ptr<Region> bounce_range (nframes_t start,
nframes_t end, InterThreadInfo&) = 0;
XMLNode& get_state();
XMLNode& get_template();
virtual int set_state(const XMLNode& node) = 0;
XMLNode& get_state();
XMLNode& get_template();
virtual int set_state(const XMLNode& node) = 0;
-
PBD::Controllable&
rec_enable_control() { return _rec_enable_control; }
+
boost::shared_ptr<PBD::Controllable>
rec_enable_control() { return _rec_enable_control; }
bool record_enabled() const;
void set_record_enable (bool yn, void *src);
void set_meter_point (MeterPoint, void* src);
bool record_enabled() const;
void set_record_enable (bool yn, void *src);
void set_meter_point (MeterPoint, void* src);
- sigc::signal<void> ModeChanged;
sigc::signal<void> DiskstreamChanged;
sigc::signal<void> FreezeChange;
sigc::signal<void> DiskstreamChanged;
sigc::signal<void> FreezeChange;
@@
-95,38
+99,35
@@
class Track : public Route
virtual XMLNode& state (bool full) = 0;
virtual XMLNode& state (bool full) = 0;
- virtual void passthru_silence (jack_nframes_t start_frame, jack_nframes_t end_frame,
- jack_nframes_t nframes, jack_nframes_t offset, int declick, bool meter) = 0;
-
- virtual uint32_t n_process_buffers () = 0;
-
- Diskstream *_diskstream;
+ boost::shared_ptr<Diskstream> _diskstream;
MeterPoint _saved_meter_point;
TrackMode _mode;
//private: (FIXME)
MeterPoint _saved_meter_point;
TrackMode _mode;
//private: (FIXME)
- struct FreezeRecord
Insert
Info {
- FreezeRecord
InsertInfo(XMLNode& st, boost::shared_ptr<Insert> ins
)
- : state (st),
insert (ins
) {}
-
- XMLNode state;
- boost::shared_ptr<
Insert> insert
;
- PBD::ID id;
- UndoAction memento;
+ struct FreezeRecord
Processor
Info {
+ FreezeRecord
ProcessorInfo(XMLNode& st, boost::shared_ptr<Processor> proc
)
+ : state (st),
processor (proc
) {}
+
+ XMLNode
state;
+ boost::shared_ptr<
Processor> processor
;
+ PBD::ID
id;
+ UndoAction
memento;
};
struct FreezeRecord {
FreezeRecord()
};
struct FreezeRecord {
FreezeRecord()
- : playlist(0)
- , have_mementos(false)
+ : have_mementos(false)
{}
~FreezeRecord();
{}
~FreezeRecord();
- Playlist* playlist;
- vector<FreezeRecordInsertInfo*> insert_info;
- bool have_mementos;
- FreezeState state;
+ boost::shared_ptr<Playlist> playlist;
+ vector<FreezeRecordProcessorInfo*> processor_info;
+ bool have_mementos;
+ FreezeState state;
+ gain_t gain;
+ AutoState gain_automation_state;
+ AutoState pan_automation_state;
};
struct RecEnableControllable : public PBD::Controllable {
};
struct RecEnableControllable : public PBD::Controllable {
@@
-138,19
+139,15
@@
class Track : public Route
Track& track;
};
Track& track;
};
- //virtual void diskstream_record_enable_changed (void *src) = 0;
- //virtual void diskstream_input_channel_changed (void *src) = 0;
-
- //virtual void input_change_handler (void *src) = 0;
-
virtual void set_state_part_two () = 0;
FreezeRecord _freeze_record;
XMLNode* pending_state;
sigc::connection recenable_connection;
sigc::connection ic_connection;
virtual void set_state_part_two () = 0;
FreezeRecord _freeze_record;
XMLNode* pending_state;
sigc::connection recenable_connection;
sigc::connection ic_connection;
- RecEnableControllable _rec_enable_control;
bool _destructive;
bool _destructive;
+
+ boost::shared_ptr<RecEnableControllable> _rec_enable_control;
};
}; /* namespace ARDOUR*/
};
}; /* namespace ARDOUR*/