X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fsession.h;h=acb9f5f53f3e7227a266cbd850cd8d8a8565605c;hb=d3f64c28489d2358498b9d7dcfc6fa4228ebd63e;hp=fb7d24568f411a2751d70e2b722fab130d007c89;hpb=ead3796adeed06a7d314317d3ca65861409eebda;p=ardour.git diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h index fb7d24568f..acb9f5f53f 100644 --- a/libs/ardour/ardour/session.h +++ b/libs/ardour/ardour/session.h @@ -125,6 +125,7 @@ class Session : public PBD::StatefulDestructible SetDiskstreamSpeed, Locate, LocateRoll, + LocateRollLocate, SetLoop, PunchIn, PunchOut, @@ -210,9 +211,9 @@ class Session : public PBD::StatefulDestructible /* creating from an XML file */ Session (AudioEngine&, - string fullpath, - string snapshot_name, - string* mix_template = 0); + const string& fullpath, + const string& snapshot_name, + string mix_template = ""); /* creating a new Session */ @@ -251,8 +252,11 @@ class Session : public PBD::StatefulDestructible std::string peak_dir () const; std::string dead_sound_dir () const; std::string automation_dir () const; + std::string analysis_dir() const; + + int ensure_subdirs (); - string peak_path_from_audio_path (string) const; + Glib::ustring peak_path (Glib::ustring) const; static string suffixed_search_path (std::string suffix, bool data); static string control_protocol_path (); @@ -343,10 +347,11 @@ class Session : public PBD::StatefulDestructible sigc::signal PositionChanged; /* sent after any non-sequential motion */ sigc::signal DurationChanged; sigc::signal HaltOnXrun; + sigc::signal TransportLooped; sigc::signal RouteAdded; - void request_roll (); + void request_roll_at_and_return (nframes_t start, nframes_t return_to); void request_bounded_roll (nframes_t start, nframes_t end); void request_stop (bool abort = false); void request_locate (nframes_t frame, bool with_roll = false); @@ -415,6 +420,7 @@ class Session : public PBD::StatefulDestructible int restore_history (string snapshot_name); void remove_state (string snapshot_name); void rename_state (string old_name, string new_name); + void remove_pending_capture_state (); static int rename_template (string old_name, string new_name); @@ -491,6 +497,7 @@ class Session : public PBD::StatefulDestructible nframes_t transport_frame () const {return _transport_frame; } nframes_t audible_frame () const; + nframes64_t requested_return_frame() const { return _requested_return_frame; } enum PullupFormat { pullup_Plus4Plus1, @@ -535,6 +542,9 @@ class Session : public PBD::StatefulDestructible 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; } + int jack_slave_sync (nframes_t); TempoMap& tempo_map() { return *_tempo_map; } @@ -561,17 +571,17 @@ class Session : public PBD::StatefulDestructible string doing_what; /* control info */ - bool multichan; bool sample_convert; + SrcQuality quality; volatile bool freeze; std::vector paths; /* result */ - std::vector > new_regions; + SourceList sources; }; - int import_audiofile (import_status&); + void import_audiofiles (import_status&); bool sample_rate_convert (import_status&, string infile, string& outfile); string build_tmp_convert_name (string file); @@ -688,6 +698,13 @@ class Session : public PBD::StatefulDestructible uint32_t n_plugin_inserts() const { return _plugin_inserts.size(); } uint32_t n_sends() const { return _sends.size(); } + static void set_disable_all_loaded_plugins (bool yn) { + _disable_all_loaded_plugins = yn; + } + static bool get_disable_all_loaded_plugins() { + return _disable_all_loaded_plugins; + } + uint32_t next_send_id(); uint32_t next_insert_id(); void mark_send_id (uint32_t); @@ -730,7 +747,8 @@ class Session : public PBD::StatefulDestructible void deliver_midi (MIDI::Port*, MIDI::byte*, int32_t size); - void set_mmc_device_id (uint32_t id); + void set_mmc_receive_device_id (uint32_t id); + void set_mmc_send_device_id (uint32_t id); /* Scrubbing */ @@ -842,21 +860,6 @@ class Session : public PBD::StatefulDestructible boost::shared_ptr click_io() { return _click_io; } - /* tempo FX */ - - struct TimeStretchRequest { - boost::shared_ptr region; - float fraction; /* session: read ; GUI: write */ - float progress; /* session: write ; GUI: read */ - bool running; /* read/write */ - bool quick_seek; /* GUI: write */ - bool antialias; /* GUI: write */ - - TimeStretchRequest () {} - }; - - boost::shared_ptr tempoize_region (TimeStretchRequest&); - /* disk, buffer loads */ uint32_t playback_load (); @@ -949,7 +952,7 @@ class Session : public PBD::StatefulDestructible void update_latency_compensation (bool, bool); private: - int create (bool& new_session, string* mix_template, nframes_t initial_length); + int create (bool& new_session, const string& mix_template, nframes_t initial_length); void destroy (); nframes_t compute_initial_length (); @@ -973,33 +976,35 @@ class Session : public PBD::StatefulDestructible typedef void (Session::*process_function_type)(nframes_t); - AudioEngine &_engine; - mutable gint processing_prohibited; + AudioEngine& _engine; + mutable gint processing_prohibited; process_function_type process_function; process_function_type last_process_function; bool waiting_for_sync_offset; - nframes_t _base_frame_rate; - nframes_t _current_frame_rate; //this includes video pullup offset + nframes_t _base_frame_rate; + nframes_t _current_frame_rate; //this includes video pullup offset int transport_sub_state; - mutable gint _record_status; - nframes_t _transport_frame; + mutable gint _record_status; + volatile nframes_t _transport_frame; Location* end_location; Location* start_location; - Slave *_slave; + Slave* _slave; + bool _silent; volatile float _transport_speed; volatile float _desired_transport_speed; float _last_transport_speed; bool auto_play_legal; - nframes_t _last_slave_transport_frame; - nframes_t maximum_output_latency; - nframes_t last_stop_frame; + nframes_t _last_slave_transport_frame; + nframes_t maximum_output_latency; + nframes_t last_stop_frame; + volatile nframes64_t _requested_return_frame; vector _passthru_buffers; vector _silent_buffers; vector _send_buffers; - nframes_t current_block_size; - nframes_t _worst_output_latency; - nframes_t _worst_input_latency; - nframes_t _worst_track_latency; + nframes_t current_block_size; + nframes_t _worst_output_latency; + nframes_t _worst_input_latency; + nframes_t _worst_track_latency; bool _have_captured; float _meter_hold; float _meter_falloff; @@ -1439,7 +1444,7 @@ class Session : public PBD::StatefulDestructible SerializedRCUManager routes; - void add_routes (RouteList&, bool save = true); + void add_routes (RouteList&, bool save); uint32_t destructive_index; int load_routes (const XMLNode&); @@ -1693,10 +1698,8 @@ class Session : public PBD::StatefulDestructible based on max (requested,available) */ - uint32_t n_physical_outputs; - uint32_t n_physical_inputs; - - void remove_pending_capture_state (); + uint32_t n_physical_audio_outputs; + uint32_t n_physical_audio_inputs; int find_all_sources (std::string path, std::set& result); int find_all_sources_across_snapshots (std::set& result, bool exclude_this_snapshot); @@ -1716,6 +1719,10 @@ class Session : public PBD::StatefulDestructible XMLNode& get_control_protocol_state (); + void set_history_depth (uint32_t depth); + void sync_order_keys (); + + static bool _disable_all_loaded_plugins; }; } // namespace ARDOUR