• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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          **/
~PVPlayerDataSink()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