Skip to content

Commit

Permalink
Returning also the real time from a scheduler unit
Browse files Browse the repository at this point in the history
  • Loading branch information
theod committed Oct 3, 2013
1 parent fbb1cec commit d08037e
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 12 deletions.
17 changes: 13 additions & 4 deletions Modular/extensions/Max/source/Max.cpp
Expand Up @@ -63,13 +63,18 @@ TTErr Max::Go()

mRunning = NO;
mProgression = 0.;
(mCallback)(mBaton, mProgression);
mRealTime = 0.;
(mCallback)(mBaton, mProgression, mRealTime);

// notify each running attribute observers
runningAttribute->sendNotification(kTTSym_notify, mRunning); // we use kTTSym_notify because we know that observers are TTCallback

// notify each progression attribute observers
progressionAttribute->sendNotification(kTTSym_notify, mProgression); // we use kTTSym_notify because we know that observers are TTCallback

// notify each elapsed time attribute observers
realTimeAttribute->sendNotification(kTTSym_notify, mRealTime); // we use kTTSym_notify because we know that observers are TTCallback

}
else {

Expand All @@ -79,14 +84,18 @@ TTErr Max::Go()

mRunning = YES;
mProgression = 0.;
(mCallback)(mBaton, mProgression);
mRealTime = 0.;
(mCallback)(mBaton, mProgression, mRealTime);

// notify each running attribute observers
runningAttribute->sendNotification(kTTSym_notify, mRunning); // we use kTTSym_notify because we know that observers are TTCallback

// notify each progression attribute observers
progressionAttribute->sendNotification(kTTSym_notify, mProgression); // we use kTTSym_notify because we know that observers are TTCallback

// notify each elapsed time attribute observers
realTimeAttribute->sendNotification(kTTSym_notify, mRealTime); // we use kTTSym_notify because we know that observers are TTCallback

// schedule first tick
setclock_fdelay(NULL, clock, mGranularity);
}
Expand Down Expand Up @@ -133,7 +142,7 @@ TTErr Max::Tick()
mProgression = 1.0;
mRealTime = mDuration;

(mCallback)(mBaton, mProgression);
(mCallback)(mBaton, mProgression, mRealTime);

// notify each running attribute observers
runningAttribute->sendNotification(kTTSym_notify, mRunning); // we use kTTSym_notify because we know that observers are TTCallback
Expand All @@ -149,7 +158,7 @@ TTErr Max::Tick()
mProgression += stepSize;
mRealTime = mDuration * mProgression;

(mCallback)(mBaton, mProgression);
(mCallback)(mBaton, mProgression, mRealTime);

// notify each progression attribute observers
progressionAttribute->sendNotification(kTTSym_notify, mProgression); // we use kTTSym_notify because we know that observers are TTCallback
Expand Down
6 changes: 3 additions & 3 deletions Modular/extensions/System/source/System.cpp
Expand Up @@ -70,7 +70,7 @@ TTErr System::Go()
mProgression = 0.;
mRealTime = 0.;

(mCallback)(mBaton, mProgression);
(mCallback)(mBaton, mProgression, mRealTime);

// notify each running attribute observers
runningAttribute->sendNotification(kTTSym_notify, mRunning); // we use kTTSym_notify because we know that observers are TTCallback
Expand Down Expand Up @@ -120,7 +120,7 @@ TTErr System::Tick()

if (mProgression < 1.) {

(mCallback)(mBaton, mProgression);
(mCallback)(mBaton, mProgression, mRealTime);

// notify each progression attribute observers
progressionAttribute->sendNotification(kTTSym_notify, mProgression); // we use kTTSym_notify because we know that observers are TTCallback
Expand All @@ -135,7 +135,7 @@ TTErr System::Tick()
// forcing progression to 1. to allow filtering
mProgression = 1.;

(mCallback)(mBaton, mProgression);
(mCallback)(mBaton, mProgression, mRealTime);

// notify each progression attribute observers
progressionAttribute->sendNotification(kTTSym_notify, mProgression); // we use kTTSym_notify because we know that observers are TTCallback
Expand Down
4 changes: 2 additions & 2 deletions Modular/library/PeerObject/TTRamp.cpp
Expand Up @@ -200,7 +200,7 @@ TTErr TTRamp::Slide(const TTValue& inputValue, TTValue& outputValue)

if (inputValue[0].type() == kTypeFloat64) {

TTRampSchedulerCallback(TTPtr(this), inputValue[0]);
TTRampSchedulerCallback(TTPtr(this), inputValue[0], 0.);
return kTTErrNone;
}
}
Expand Down Expand Up @@ -238,7 +238,7 @@ TTErr TTRamp::getFunctionParameterValue(TTSymbol ParameterName, TTValue& value)
return kTTErrNone;
}
#endif
void TTRampSchedulerCallback(TTPtr object, TTFloat64 progression)
void TTRampSchedulerCallback(TTPtr object, TTFloat64 progression, TTFloat64 realTime)
{
TTRampPtr aRamp = (TTRampPtr)object;
TTUInt32 i;
Expand Down
4 changes: 2 additions & 2 deletions Modular/library/PeerObject/TTRamp.h
Expand Up @@ -81,14 +81,14 @@ class TTMODULAR_EXPORT TTRamp : public TTDataObjectBase {
TTErr setFunctionParameterValue(TTSymbol ParameterName, TTValue& newValue);
TTErr getFunctionParameterValue(TTSymbol ParameterName, TTValue& value);
#endif
friend void TTMODULAR_EXPORT TTRampSchedulerCallback(TTPtr object, TTFloat64 progression);
friend void TTMODULAR_EXPORT TTRampSchedulerCallback(TTPtr object, TTFloat64 progression, TTFloat64 realTime);
};
typedef TTRamp* TTRampPtr;

/**
@param baton ..
@param data ..
@return an error code */
void TTMODULAR_EXPORT TTRampSchedulerCallback(TTPtr object, TTFloat64 progression);
void TTMODULAR_EXPORT TTRampSchedulerCallback(TTPtr object, TTFloat64 progression, TTFloat64 realTime);

#endif // __TT_RAMP_H__
2 changes: 1 addition & 1 deletion Modular/library/SchedulerLib/Scheduler.h
Expand Up @@ -34,7 +34,7 @@ mStretchable = TTSymbol(thisSchedulerStretchable); \
registerAttribute(TTSymbol("ParameterNames"), kTypeLocalValue, NULL, (TTGetterMethod)& thisTTClass::getParameterNames); \
/*addAttributeProperty(ParameterNames, readOnly, YES); \ */

typedef void (*SchedulerProgressionCallback)(TTPtr, TTFloat64);
typedef void (*SchedulerProgressionCallback)(TTPtr, TTFloat64, TTFloat64);

/****************************************************************************************************/
// Class Specification
Expand Down

0 comments on commit d08037e

Please sign in to comment.