Skip silent sources on session-archive -- fixes #7699
[ardour.git] / libs / backends / jack / jack_session.cc
index 60d11a8f0c1e7452f779082522a9241637c45c0f..778e23b7f65b9bdb323ff13cd9a6d829d4db6da4 100644 (file)
@@ -22,9 +22,6 @@
 
 #include <glibmm/miscutils.h>
 
-#include <jack/jack.h>
-#include <jack/transport.h>
-
 #include "pbd/localtime_r.h"
 
 #include "ardour/audioengine.h"
@@ -92,12 +89,12 @@ JACKSession::session_event (jack_session_event_t* event)
                 }
         }
 
-       /* this won't be called if the port engine in use is not JACK, so we do 
+       /* this won't be called if the port engine in use is not JACK, so we do
           not have to worry about the type of PortEngine::private_handle()
        */
 
        jack_client_t* jack_client = (jack_client_t*) AudioEngine::instance()->port_engine().private_handle();
-       
+
        if (jack_client) {
                jack_session_reply (jack_client, event);
        }
@@ -117,35 +114,35 @@ JACKSession::timebase_callback (jack_transport_state_t /*state*/,
 {
        Timecode::BBT_Time bbt;
        TempoMap& tempo_map (_session->tempo_map());
-       framepos_t tf = _session->transport_frame ();
+       samplepos_t tf = _session->transport_sample ();
 
        /* BBT info */
 
        TempoMetric metric (tempo_map.metric_at (tf));
-       
+
        try {
-               tempo_map.bbt_time_rt (tf, bbt);
-               
+               bbt = tempo_map.bbt_at_sample (tf);
+
                pos->bar = bbt.bars;
                pos->beat = bbt.beats;
                pos->tick = bbt.ticks;
-               
+
                // XXX still need to set bar_start_tick
-               
+
                pos->beats_per_bar = metric.meter().divisions_per_bar();
                pos->beat_type = metric.meter().note_divisor();
                pos->ticks_per_beat = Timecode::BBT_Time::ticks_per_beat;
-               pos->beats_per_minute = metric.tempo().beats_per_minute();
-               
+               pos->beats_per_minute = metric.tempo().note_types_per_minute();
+
                pos->valid = jack_position_bits_t (pos->valid | JackPositionBBT);
-               
+
        } catch (...) {
                /* no message */
        }
 
 #ifdef HAVE_JACK_VIDEO_SUPPORT
        //poke audio video ratio so Ardour can track Video Sync
-       pos->audio_frames_per_video_frame = _session->frame_rate() / _session->timecode_frames_per_second();
+       pos->audio_frames_per_video_frame = _session->sample_rate() / _session->timecode_frames_per_second();
        pos->valid = jack_position_bits_t (pos->valid | JackAudioVideoRatio);
 #endif