1 /* ------------------------------------------------------------------ 2 * Copyright (C) 1998-2009 PacketVideo 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 13 * express or implied. 14 * See the License for the specific language governing permissions 15 * and limitations under the License. 16 * ------------------------------------------------------------------- 17 */ 18 /** 19 * @file pvmf_fileoutput_factory.cpp 20 * @brief Singleton factory for PVMFFileOutputNode 21 */ 22 23 #include "oscl_base.h" 24 25 #include "pvmf_fileoutput_node.h" 26 27 #include "pvmf_fileoutput_factory.h" 28 29 #include "pvmf_fileoutput_inport.h" 30 31 #include "oscl_error_codes.h" 32 33 #include "oscl_exception.h" 34 35 #include "oscl_dll.h" 36 37 // Define entry point for this DLL 38 OSCL_DLL_ENTRY_POINT_DEFAULT() 39 40 //////////////////////////////////////////////////////////////////////////// 41 OSCL_EXPORT_REF PVMFNodeInterface* PVFileOutputNodeFactory::CreateFileOutput(int32 aPriority) 42 { 43 PVMFNodeInterface* node = NULL; 44 node = OSCL_NEW(PVMFFileOutputNode, (aPriority)); 45 if (node == NULL) 46 { 47 OSCL_LEAVE(OsclErrNoMemory); 48 } 49 return node; 50 } 51 52 //////////////////////////////////////////////////////////////////////////// 53 OSCL_EXPORT_REF PVMFNodeInterface* PVFileOutputNodeFactory::CreateFileOutput(OSCL_wString &aFileName, PVMFFormatType aFormat, int32 aPriority) 54 { 55 PVMFNodeInterface* node = NULL; 56 node = OSCL_NEW(PVMFFileOutputNode, (aPriority)); 57 if (node == NULL) 58 { 59 OSCL_LEAVE(OsclErrNoMemory); 60 } 61 ((PVMFFileOutputNode *)node)->iFormat = aFormat; 62 ((PVMFFileOutputNode *)node)->iOutputFileName = aFileName.get_cstr(); 63 return node; 64 } 65 66 //////////////////////////////////////////////////////////////////////////// 67 OSCL_EXPORT_REF bool PVFileOutputNodeFactory::DeleteFileOutput(PVMFNodeInterface* aNode) 68 { 69 if (aNode) 70 { 71 OSCL_DELETE(aNode); 72 return true; 73 } 74 75 return false; 76 } 77 78