#include "ordeviceTimeCode_device.h"
#include "ordeviceTimeCode_layout.h"
#define ORDEVICETIMECODE__LAYOUT ORDeviceTimeCodeLayout
ORDEVICETIMECODE__CLASSSTR,
bool ORDeviceTimeCodeLayout::FBCreate()
{
mDevice = ((ORDeviceTimeCode *)(FBDevice *)Device);
int lB = 10;
int lW = 120;
int lH = 18;
AddRegion( "TakeRecordingTest", "TakeRecordingTest",
SetControl( "TakeRecordingTest", mTakeRecordingTest );
AddRegion( "StoryRecordingTest", "StoryRecordingTest",
SetControl( "StoryRecordingTest", mStoryRecordingTest );
mTakeRecordingTest.OnClick.Add(
this, (
FBCallback) &ORDeviceTimeCodeLayout::EventTakeRecordingTestClick );
mTakeRecordingTest.Caption = "Take Recording test";
mStoryRecordingTest.OnClick.Add(
this, (
FBCallback) &ORDeviceTimeCodeLayout::EventStoryRecordingTestClick );
mStoryRecordingTest.Caption = "Story Recording test";
FBSystem().OnUIIdle.Add(
this,(
FBCallback)&ORDeviceTimeCodeLayout::EventUIIdle );
return true;
}
void ORDeviceTimeCodeLayout::FBDestroy()
{
FBSystem().OnUIIdle.Remove(
this,(
FBCallback)&ORDeviceTimeCodeLayout::EventUIIdle );
}
void ORDeviceTimeCodeLayout::RecordingTest(bool pTakeRecording)
{
mDevice->Online = true;
FBModel* lMarker = new FBModelMarker("MyMarker");
lMarker->Show = true;
lMarker->Selected = true;
mMarkerTCProp = (FBPropertyAnimatable*)lMarker->PropertyCreate(
"TimeCode",
kFBPT_TimeCode,
"TimeCode",
true,
true );
mMarkerTCProp->SetAnimated(true);
if(pTakeRecording)
{
mMarkerTCProp->GetAnimationNode()->RecordMode = true;
} else
{
lTrack->Details.Add(lMarker);
lTrack->RecordClipPath = FBSystem().TempPath;
lTrack->RecordTrack = true;
}
FBPlayerControl().Record();
FBPlayerControl().Play();
}
void ORDeviceTimeCodeLayout::EventTakeRecordingTestClick(
HISender pSender,
HKEvent pEvent )
{
RecordingTest(true);
}
void ORDeviceTimeCodeLayout::EventStoryRecordingTestClick(
HISender pSender,
HKEvent pEvent )
{
RecordingTest(false);
}
void ORDeviceTimeCodeLayout::EventUIIdle(
HISender pSender,
HKEvent pEvent )
{
if(mMarkerTCProp && !(bool)FBPlayerControl().IsRecording)
{
FBDisconnect(mDevice->mTimeCodeAnimNode,mMarkerTCProp->GetAnimationNode());
mMarkerTCProp->GetAnimationNode()->RecordMode = true;
}
}