monster commit: transport mgmt changes from 2.X (omnibus edition); make slave use...
[ardour.git] / libs / ardour / session_state.cc
index a19201371762291d999c3fa3c96eeb9aa5995e9c..1a4758186eac9aee5c99545ee9f7e49f14d4c557 100644 (file)
@@ -71,6 +71,7 @@
 #include "ardour/audioregion.h"
 #include "ardour/auditioner.h"
 #include "ardour/buffer.h"
+#include "ardour/butler.h"
 #include "ardour/configuration.h"
 #include "ardour/control_protocol_manager.h"
 #include "ardour/crossfade.h"
@@ -173,6 +174,7 @@ Session::first_stage_init (string fullpath, string snapshot_name)
        auto_play_legal = false;
        transport_sub_state = 0;
        _transport_frame = 0;
+       _requested_return_frame = -1;
        end_location = new Location (0, 0, _("end"), Location::Flags ((Location::IsMark|Location::IsEnd)));
        start_location = new Location (0, 0, _("start"), Location::Flags ((Location::IsMark|Location::IsStart)));
        g_atomic_int_set (&_record_status, Disabled);
@@ -184,25 +186,21 @@ Session::first_stage_init (string fullpath, string snapshot_name)
        pending_locate_frame = 0;
        pending_locate_roll = false;
        pending_locate_flush = false;
-       audio_dstream_buffer_size = 0;
-       midi_dstream_buffer_size = 0;
        state_was_pending = false;
        set_next_event ();
-       outbound_mtc_smpte_frame = 0;
+       outbound_mtc_timecode_frame = 0;
        next_quarter_frame_to_send = -1;
        current_block_size = 0;
        solo_update_disabled = false;
        _have_captured = false;
        _worst_output_latency = 0;
        _worst_input_latency = 0;
-       _worst_track_latency = 0;
+       _worst_track_latency = 0;
        _state_of_the_state = StateOfTheState(CannotSave|InitialConnecting|Loading);
-
+       _was_seamless = Config->get_seamless_loop ();
        _slave = 0;
        session_send_mmc = false;
        session_send_mtc = false;
-       post_transport_work = PostTransportWork (0);
-       g_atomic_int_set (&butler_should_do_transport_work, 0);
        g_atomic_int_set (&_playback_load, 100);
        g_atomic_int_set (&_capture_load, 100);
        g_atomic_int_set (&_playback_load_min, 100);
@@ -217,7 +215,6 @@ Session::first_stage_init (string fullpath, string snapshot_name)
        destructive_index = 0;
        first_file_data_format_reset = true;
        first_file_header_format_reset = true;
-       butler_thread = (pthread_t) 0;
        //midi_thread = (pthread_t) 0;
 
        AudioDiskstream::allocate_working_buffers();
@@ -247,10 +244,10 @@ Session::first_stage_init (string fullpath, string snapshot_name)
                waiting_for_sync_offset = false;
        }
 
-       last_smpte_when = 0;
-       _smpte_offset = 0;
-       _smpte_offset_negative = true;
-       last_smpte_valid = false;
+       last_timecode_when = 0;
+       _timecode_offset = 0;
+       _timecode_offset_negative = true;
+       last_timecode_valid = false;
 
        sync_time_vars ();
 
@@ -299,7 +296,7 @@ Session::second_stage_init (bool new_session)
                remove_empty_sounds ();
        }
 
-       if (start_butler_thread()) {
+       if (_butler->start_thread()) {
                return -1;
        }
 
@@ -2439,7 +2436,7 @@ struct RegionCounter {
 };
 
 int
-Session::cleanup_sources (Session::cleanup_report& rep)
+Session::cleanup_sources (CleanupReport& rep)
 {
        // FIXME: needs adaptation to midi
 
@@ -2506,7 +2503,7 @@ Session::cleanup_sources (Session::cleanup_report& rep)
                   capture files.
                */
 
-               if (!i->second->used() && i->second->length(i->second->timeline_position()) > 0) {
+               if (!source_use_count(i->second) && i->second->length(i->second->timeline_position()) > 0) {
                        dead_sources.push_back (i->second);
                        i->second->GoingAway();
                }
@@ -2702,7 +2699,7 @@ Session::cleanup_sources (Session::cleanup_report& rep)
 }
 
 int
-Session::cleanup_trash_sources (Session::cleanup_report& rep)
+Session::cleanup_trash_sources (CleanupReport& rep)
 {
        // FIXME: needs adaptation for MIDI
 
@@ -3106,7 +3103,7 @@ Session::config_changed (std::string p, bool ours)
 
                setup_raid_path (config.get_raid_path());
 
-       } else if (p == "smpte-format") {
+       } else if (p == "timecode-format") {
 
                sync_time_vars ();