#include <boost/weak_ptr.hpp>
#include <boost/utility.hpp>
-#include <glibmm/thread.h>
+#include <glibmm/threads.h>
#include "pbd/error.h"
#include "pbd/event_loop.h"
class MidiRegion;
class MidiSource;
class MidiTrack;
-class NamedSelection;
class Playlist;
class PluginInsert;
class PluginInfo;
bool operator() (boost::shared_ptr<Route>, boost::shared_ptr<Route> b);
};
- void sync_order_keys (std::string const &);
+ void notify_remote_id_change ();
+ void sync_order_keys (RouteSortOrderKey);
template<class T> void foreach_route (T *obj, void (T::*func)(Route&));
template<class T> void foreach_route (T *obj, void (T::*func)(boost::shared_ptr<Route>));
void goto_start ();
void use_rf_shuttle_speed ();
void allow_auto_play (bool yn);
- void request_transport_speed (double speed);
- void request_transport_speed_nonzero (double);
+ void request_transport_speed (double speed, bool as_default = false);
+ void request_transport_speed_nonzero (double, bool as_default = false);
void request_overwrite_buffer (Track *);
void adjust_playback_buffering();
void adjust_capture_buffering();
void resort_routes ();
void resort_routes_using (boost::shared_ptr<RouteList>);
- void set_remote_control_ids();
-
AudioEngine & engine() { return _engine; }
AudioEngine const & engine () const { return _engine; }
void add_playlist (boost::shared_ptr<Playlist>, bool unused = false);
- /* named selections */
-
- boost::shared_ptr<NamedSelection> named_selection_by_name (std::string name);
- void add_named_selection (boost::shared_ptr<NamedSelection>);
- void remove_named_selection (boost::shared_ptr<NamedSelection>);
-
- template<class T> void foreach_named_selection (T& obj, void (T::*func)(boost::shared_ptr<NamedSelection>));
- PBD::Signal0<void> NamedSelectionAdded;
- PBD::Signal0<void> NamedSelectionRemoved;
-
/* Curves and AutomationLists (TODO when they go away) */
void add_automation_list(AutomationList*);
void send_mmc_locate (framepos_t);
int send_full_time_code (framepos_t);
- PBD::Signal0<void> RouteOrderKeyChanged;
-
bool step_editing() const { return (_step_editors > 0); }
void request_suspend_timecode_transmission ();
// varispeed playback
double _transport_speed;
+ double _default_transport_speed;
double _last_transport_speed;
double _target_transport_speed;
CubicInterpolation interpolation;
int load_state (std::string snapshot_name);
framepos_t _last_roll_location;
+ /** the session frame time at which we last rolled, located, or changed transport direction */
framepos_t _last_roll_or_reversal_location;
framepos_t _last_record_location;
void start_locate (framepos_t, bool with_roll, bool with_flush, bool with_loop=false, bool force=false);
void force_locate (framepos_t frame, bool with_roll = false);
void set_track_speed (Track *, double speed);
- void set_transport_speed (double speed, bool abort = false, bool clear_state = false);
+ void set_transport_speed (double speed, bool abort = false, bool clear_state = false, bool as_default = false);
void stop_transport (bool abort = false, bool clear_state = false);
void start_transport ();
void realtime_stop (bool abort, bool clear_state);
/* REGION MANAGEMENT */
- mutable Glib::Mutex region_lock;
+ mutable Glib::Threads::Mutex region_lock;
int load_regions (const XMLNode& node);
int load_compounds (const XMLNode& node);
/* SOURCES */
- mutable Glib::Mutex source_lock;
+ mutable Glib::Threads::Mutex source_lock;
public:
typedef std::map<PBD::ID,boost::shared_ptr<Source> > SourceMap;
void playlist_ranges_moved (std::list<Evoral::RangeMove<framepos_t> > const &);
void playlist_regions_extended (std::list<Evoral::Range<framepos_t> > const &);
- /* NAMED SELECTIONS */
-
- mutable Glib::Mutex named_selection_lock;
- typedef std::set<boost::shared_ptr<NamedSelection> > NamedSelectionList;
- NamedSelectionList named_selections;
-
- int load_named_selections (const XMLNode&);
-
- NamedSelection *named_selection_factory (std::string name);
- NamedSelection *XMLNamedSelectionFactory (const XMLNode&);
-
/* CURVES and AUTOMATION LISTS */
std::map<PBD::ID, AutomationList*> automation_lists;
could not report free space.
*/
bool _total_free_4k_blocks_uncertain;
- Glib::Mutex space_lock;
+ Glib::Threads::Mutex space_lock;
bool no_questions_about_missing_files;
Sample* click_emphasis_data;
framecnt_t click_length;
framecnt_t click_emphasis_length;
- mutable Glib::RWLock click_lock;
+ mutable Glib::Threads::RWLock click_lock;
static const Sample default_click[];
static const framecnt_t default_click_length;
int find_all_sources_across_snapshots (std::set<std::string>& result, bool exclude_this_snapshot);
typedef std::set<boost::shared_ptr<PBD::Controllable> > Controllables;
- Glib::Mutex controllables_lock;
+ Glib::Threads::Mutex controllables_lock;
Controllables controllables;
boost::shared_ptr<PBD::Controllable> _solo_cut_control;
XMLNode& get_control_protocol_state ();
void set_history_depth (uint32_t depth);
- void sync_order_keys ();
static bool _disable_all_loaded_plugins;
void setup_midi_machine_control ();
- void route_order_key_changed ();
-
void step_edit_status_change (bool);
uint32_t _step_editors;