bool EMInputRepository :: SetAsActiveMIDIInput(int32 p_vInputID, int32 p_vOutputID) { LockContainer(); try { Rewind(); while(Current() != NULL) { EMRealtimeInputDescriptor* opInput = Current(); if((opInput -> GetType() & EM_TYPE_MIDI) > 0) { EMRealtimeMIDIInputDescriptor* opMIDIInput = static_cast<EMRealtimeMIDIInputDescriptor*>(opInput); if(opMIDIInput -> GetID() == p_vInputID) opMIDIInput -> SetActive(true, p_vOutputID); else opMIDIInput -> SetActive(false, 0); } Next(); } } catch(...) { EMDebugger("ERROR! Exception while setting active MIDI track!"); } UnlockContainer(); return true; }
bool EMMediaTransitionTrackRepository::SaveData(EMProjectDataSaver* p_opSaver) { p_opSaver -> SaveString("EMMediaTransitionTrackRepository - Begin"); LockContainer(); uint32 vCount = 0; Rewind(); while(Current() != NULL) { if(! Current() -> IsObjectDeleted()) vCount++; Next(); } p_opSaver -> SaveUInt32(vCount); Rewind(); while(Current() != NULL) { if(! Current() -> IsObjectDeleted()) Current() -> SaveData(p_opSaver); Next(); } UnlockContainer(); p_opSaver -> SaveString("EMMediaTransitionTrackRepository - End"); return true; }
int64 EMMediaClipRepository::CountClipsForTrack(const EMMediaTrack* p_opTrack, EMMediaType p_eSpecType) { int64 vCount = 0; LockContainer(); try { Rewind(); while(Current() != NULL) { if(Current() -> GetTrack() -> GetID() == p_opTrack -> GetID() && ! Current() -> IsObjectDeleted() && (p_eSpecType & Current() -> GetType()) != 0) vCount++; if(Current() -> GetTrack() == NULL) EMDebugger("ERROR! NULL as track owner!"); Next(); } } catch(...) { EMDebugger("ERROR! Exception in EMMediaClipRepository::CountClipsForTrack"); } UnlockContainer(); return vCount; }
void EMPluginRepository::ResetEntries() { LockContainer(); Rewind(); while(Current() != NULL) { Current() -> Reset(); Next(); } UnlockContainer(); }
bool EMMediaTransitionTrackRepository::RestoreAfterLoad() { LockContainer(); Rewind(); while(Current() != NULL) { Current() -> RestoreAfterLoad(); Next(); } UnlockContainer(); return true; }
// --- HRESULT CPragueIServer::LoadInterfaceTree( CNodeUID &rcUID, BOOL bLockOnLoad, ItType eIType, DWORD *pdwSize, BYTE **ppInterface) { HRESULT hError = E_INVALIDARG; if ( pdwSize && ppInterface ) { HDATA hRootData = NULL; for( uint i=0,c=m_iface_cache.Count(); !hRootData && i<c; ++i ) { HDATA curr = m_iface_cache[i]; CNodeUID rcCurrUID; if ( ::GetNodeUID(curr, rcCurrUID) && ::CompareNodesUID(rcUID, rcCurrUID) ) hRootData = curr; } if ( hRootData ) hError = S_OK; else { CAliasContainer rcAliases; rcAliases.Add( rcUID ); hError = PISRV_E_INTNOTFOUND; for (int i=0; i<3 && hError == PISRV_E_INTNOTFOUND; i++) { CPathStr rcStartingFolder = *m_StartingFolders[i/*FOLDER_INDEX(eIType)*/]; hError = EnumFoldersForInterfacesAliases( rcStartingFolder, eIType, &hRootData, rcAliases ); if ( FAILED(hError) ) m_rcLastErrorStr = rcUID; else if ( !hRootData ) { m_rcLastErrorStr = rcUID; hError = PISRV_E_INTNOTFOUND; } else m_iface_cache.Add( hRootData ); } } if ( SUCCEEDED(hError) && hRootData ) { CAPointer<TCHAR> pContainerName; HPROP hNameProp = ::DATA_Find_Prop( hRootData, NULL, VE_PID_IF_CONTAINERNAME ); if ( hNameProp ) pContainerName = ::DTUT_GetPropValueAsString( hNameProp, NULL ); hError = LockContainer( (BYTE *)(LPCTSTR(pContainerName)), bLockOnLoad ); } if ( SUCCEEDED(hError) ) *ppInterface = (BYTE *)::SerializeDTree( hRootData, *pdwSize ); } return hError; }
bool EMInputRepository :: LoadData(EMProjectDataLoader* p_opLoader) { LockContainer(); try { Rewind(); while(Current() != NULL) { Current() -> LoadData(p_opLoader); Next(); } } catch(...) { } UnlockContainer(); return true; }
bool EMMediaClipRepository::ClearData() { LockContainer(); try { while(Size() > 0) { Rewind(); EMMediaClip* opClip = Remove(Current()); delete opClip; } } catch(...) { EMDebugger("ERROR! Exception in EMMediaClipRepository::ClearData()"); } UnlockContainer(); return true; }
bool EMInputRepository :: StopPreviewE() { LockContainer(); try { Rewind(); while(Current() != NULL) { Current() -> StopPreviewE(); Next(); } } catch(...) { } UnlockContainer(); return true; }
// --- HRESULT CPragueIServer::LoadContainerInterfacesTree(LPCTSTR pContainerName, BOOL bLockOnLoad, ItType eIType, DWORD *pdwSize, BYTE **ppInterfaces) { HRESULT hError = E_INVALIDARG; if ( pdwSize && ppInterfaces ) { HDATA hRootData = NULL; hError = LoadContainerInterfacesTree(pContainerName, bLockOnLoad, eIType, &hRootData ); if ( SUCCEEDED(hError) ) hError = LockContainer( (BYTE *)pContainerName, bLockOnLoad ); if ( SUCCEEDED(hError) ) *ppInterfaces = (BYTE *)::SerializeDTree( hRootData, *pdwSize ); ::DATA_Remove( hRootData, NULL ); } return hError; }
bool EMInputRepository :: ClearData() { m_vIsInitialized = false; LockContainer(); try { Rewind(); while(Current() != NULL) { Current() -> ClearData(); Next(); } } catch(...) { } UnlockContainer(); return true; }
bool EMInputRepository :: StartE() { LockContainer(); try { Rewind(); while(Current() != NULL) { Current() -> PrepareToPlayE(); Current() -> StartE(); Next(); } } catch(...) { } UnlockContainer(); return true; }
int64 EMMediaClipRepository::CountActiveClips() { int64 vCount = 0; LockContainer(); try { Rewind(); while(Current() != NULL) { if(! Current() -> IsObjectDeleted()) vCount++; Next(); } } catch(...) { EMDebugger("ERROR! Exception in EMMediaClipRepository::CountActiveClips"); } UnlockContainer(); return vCount; }
list<EMRecording*>* EMInputRepository :: GetLastRecordings() { m_oRecordings.clear(); LockContainer(); try { Rewind(); while(Current() != NULL) { // Current() -> StopE(); if(Current() -> GetLastRecording() != NULL) m_oRecordings.push_back(Current() -> GetLastRecording()); Next(); } } catch(...) { } UnlockContainer(); return &m_oRecordings; }
int32 EMInputRepository :: FindName(string p_oName) { LockContainer(); try { Rewind(); while(Current() != NULL) { if(Current() -> GetName() == p_oName) { int32 vID = Current() -> GetID(); UnlockContainer(); return vID; } Next(); } } catch(...) { } UnlockContainer(); return -1; }
void EMRecordingMIDITrackRepository::AddTrack(EMMediaMIDITrack* p_opTrack) { LockContainer(); Add(p_opTrack); UnlockContainer(); }
void EMRecordingMIDITrackRepository::RemoveTrack(EMMediaMIDITrack* p_opTrack) { LockContainer(); Remove(p_opTrack); UnlockContainer(); }
bool EMInputRepository :: InitCheckE() { float vAudioFrameRate = 0; int64 vAudioBufferSize = 0; int64 vNum = 0; list<EMRealtimeInputDescriptor*>* list1 = NULL; list<EMRealtimeInputDescriptor*>* list2 = NULL; list<EMRealtimeInputDescriptor*>* list3 = NULL; if(! m_vIsInitialized) { LockContainer(); vAudioFrameRate = (float) *(static_cast<int32*>(EMMediaEngine::Instance() -> GetSettingsRepository() -> GetSetting(SETTING_AUDIO_FRAMERATE))); vAudioBufferSize = (int64) *(static_cast<int32*>(EMMediaEngine::Instance() -> GetSettingsRepository() -> GetSetting(SETTING_AUDIO_BUFFER_SIZE))); vNum = static_cast<int64>(EM_AUDIO_READAHEAD * ((vAudioFrameRate) / (vAudioBufferSize / (EM_AUDIO_NUM_CHANNELS * EM_AUDIO_SAMPLESIZE)))); #ifdef PLATFORM_BEOS ((EMBeBufferRepository*) EMBufferRepository::Instance()) -> InitializeAudioE(vAudioBufferSize, vNum); //Deleted by MediaEngine #endif try { list1 = EMMediaSystemInspector::GetInstance() -> GetRealtimeAudioInputs(); while(list1 -> size() > 0) { this -> Add(list1 -> front()); list1 -> pop_front(); } delete list1; } catch(...) { // MessageBox(NULL, "Unknown error while incorporating audio input devices.\nAttempting to continue anyway...", "Error!", MB_OK | MB_ICONWARNING); delete list1; } try { list2 = EMMediaSystemInspector::GetInstance() -> GetRealtimeVideoInputs(); while(list2 -> size() > 0) { this -> Add(list2 -> front()); list2 -> pop_front(); } delete list2; } catch(...) { // MessageBox(NULL, "Unknown error while incorporating video input devices.\nAttempting to continue anyway...", "Error!", MB_OK | MB_ICONWARNING); delete list2; } try { list3 = EMMediaSystemInspector::GetInstance() -> GetRealtimeMIDIInputs(); while(list3 -> size() > 0) { this -> Add(list3 -> front()); list3 -> pop_front(); } delete list3; } catch(...) { // MessageBox(NULL, "Unknown error while incorporating MIDI input devices.\nAttempting to continue anyway...", "Error!", MB_OK | MB_ICONWARNING); delete list3; } m_vIsInitialized = true; UnlockContainer(); } return true; }