Home | History | Annotate | Download | only in src
      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