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 * ============================================================================== 20 * Name : pv_player_datasink.h 21 * Part of : 22 * Interface : 23 * Description : Abstract base class for player engine data sink 24 * Version : (see RELEASE field in copyright header above) 25 * 26 * ============================================================================== 27 */ 28 29 #ifndef PV_PLAYER_DATASINK_H_INCLUDED 30 #define PV_PLAYER_DATASINK_H_INCLUDED 31 32 #ifndef OSCL_BASE_H_INCLUDED 33 #include "oscl_base.h" 34 #endif 35 36 #ifndef OSCL_STRING_H_INCLUDED 37 #include "oscl_string.h" 38 #endif 39 40 #ifndef PVMF_FORMAT_TYPE_H_INCLUDED 41 #include "pvmf_format_type.h" 42 #endif 43 44 class PVMFNodeInterface; 45 46 typedef enum 47 { 48 PVP_DATASINKTYPE_UNKNOWN, 49 PVP_DATASINKTYPE_FILENAME, 50 PVP_DATASINKTYPE_SINKNODE 51 } PVPDataSinkType; 52 53 54 // CLASS DECLARATION 55 /** 56 * PVPlayerDataSink is an abstract base class for player engine data sink. 57 * Player engine expects the data sink to be derived from PVPlayerDataSink. 58 **/ 59 class PVPlayerDataSink 60 { 61 public: 62 /** 63 * Object destructor function 64 **/ 65 virtual ~PVPlayerDataSink() {}; 66 67 /** 68 * Returns this instance's data sink type 69 * 70 * @returns The PVPlayer data sink type 71 **/ 72 virtual PVPDataSinkType GetDataSinkType() = 0; 73 74 /** 75 * Returns this data sink instance's format type 76 * 77 * @returns The format type 78 **/ 79 virtual PVMFFormatType GetDataSinkFormatType() = 0; 80 81 /** 82 * Returns the filename for the data sink 83 * 84 * @returns The filename as an OSCL_wString 85 **/ 86 virtual OSCL_wString& GetDataSinkFilename() = 0; 87 88 /** 89 * Returns the node interface for the data sink 90 * 91 * @returns The node interface pointer to the data sink 92 **/ 93 virtual PVMFNodeInterface* GetDataSinkNodeInterface() = 0; 94 }; 95 96 #endif // PV_PLAYER_DATASINK_H_INCLUDED 97 98