Browse Source

Move GetCurrentTransportFrame code from JackClient to JackTransportEngine.

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@2795 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/1.90
sletz 16 years ago
parent
commit
90aacb3b21
4 changed files with 22 additions and 10 deletions
  1. +4
    -0
      ChangeLog
  2. +1
    -10
      common/JackClient.cpp
  3. +15
    -0
      common/JackTransportEngine.cpp
  4. +2
    -0
      common/JackTransportEngine.h

+ 4
- 0
ChangeLog View File

@@ -22,6 +22,10 @@ Florian Faber
Jackdmp changes log
---------------------------

2008-08-22 Stephane Letz <letz@grame.fr>
* Move GetCurrentTransportFrame code from JackClient to JackTransportEngine.

2008-08-03 Stephane Letz <letz@grame.fr>
* Fix JackFrameTimer::Time2Frames and JackTimer::Frames2Time, jack_cpu compiled again.


+ 1
- 10
common/JackClient.cpp View File

@@ -669,16 +669,7 @@ jack_transport_state_t JackClient::TransportQuery(jack_position_t* pos)

jack_nframes_t JackClient::GetCurrentTransportFrame()
{
jack_position_t pos;
jack_transport_state_t state = TransportQuery(&pos);

if (state == JackTransportRolling) {
float usecs = GetMicroSeconds() - pos.usecs;
jack_nframes_t elapsed = (jack_nframes_t)floor((((float) pos.frame_rate) / 1000000.0f) * usecs);
return pos.frame + elapsed;
} else {
return pos.frame;
}
return GetEngineControl()->fTransport.GetCurrentFrame();
}

// Must be RT safe: directly write in the transport shared mem


+ 15
- 0
common/JackTransportEngine.cpp View File

@@ -28,6 +28,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "JackError.h"
#include "JackTime.h"
#include <assert.h>
#include <math.h>
#include <stdlib.h>

using namespace std;
@@ -262,6 +263,20 @@ jack_transport_state_t JackTransportEngine::Query(jack_position_t* pos)
return GetState();
}

jack_nframes_t JackTransportEngine::GetCurrentFrame()
{
jack_position_t pos;
ReadCurrentPos(&pos);

if (fTransportState == JackTransportRolling) {
float usecs = GetMicroSeconds() - pos.usecs;
jack_nframes_t elapsed = (jack_nframes_t)floor((((float) pos.frame_rate) / 1000000.0f) * usecs);
return pos.frame + elapsed;
} else {
return pos.frame;
}
}

// RT, client
void JackTransportEngine::CopyPosition(jack_position_t* from, jack_position_t* to)
{


+ 2
- 0
common/JackTransportEngine.h View File

@@ -170,6 +170,8 @@ class EXPORT JackTransportEngine : public JackAtomicArrayState<jack_position_t>
void RequestNewPos(jack_position_t* pos);
jack_transport_state_t Query(jack_position_t* pos);
jack_nframes_t GetCurrentFrame();

static void CopyPosition(jack_position_t* from, jack_position_t* to);



Loading…
Cancel
Save