Tizen 2.0 Release
[framework/osp/media.git] / src / FMedia_AudioDecoderImpl.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //     http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17
18 /**
19  *  @file   FMedia_AudioDecoderImpl.h
20  *  @brief  This is the header file for _AudioDecoderImpl class.
21  *
22  *  This header file contains the declarations of _AudioDecoderImpl class.
23  */
24 #ifndef _FMEDIA_INTERNAL_AUDIODECODER_IMPL_H_
25 #define _FMEDIA_INTERNAL_AUDIODECODER_IMPL_H_
26
27 namespace Tizen { namespace Media
28 {
29
30 class _AudioDecoderImpl
31         : public Tizen::Base::Object
32 {
33 public:
34         /**
35          * @see AudioDecoder
36          */
37         _AudioDecoderImpl(void);
38
39         /**
40          * @see AudioDecoder
41          */
42         virtual ~_AudioDecoderImpl(void);
43
44         /**
45          * @see AudioDecoder::Construct()
46          */
47         result Construct(CodecType type, const Tizen::Base::Collection::HashMap* pOption = null);
48
49 public:
50         /**
51          * @see AudioDecoder::Probe()
52          */
53         result Probe(const Tizen::Base::ByteBuffer& srcBuf,
54                                  AudioSampleType& sampleType, AudioChannelType& channelType, int& sampleRate);
55
56         /**
57          * @see AudioDecoder::Decode()
58          */
59         result Decode(Tizen::Base::ByteBuffer& srcBuf, Tizen::Base::ByteBuffer& dstBuf);
60
61         /**
62          * @see AudioDecoder::Reset()
63          */
64         result Reset(void);
65
66         /**
67          * @see AudioDecoder::GetValud()
68          */
69         result GetValue(MediaPropertyType key, int& value) const;
70
71         /**
72          * @see AudioDecoder::GetSupportedPropertyListN()
73          */
74         Tizen::Base::Collection::IListT<MediaPropertyType>* GetSupportedPropertyListN(void) const;
75
76         /**
77          * @see AudioDecoder::IsPropertySupported()
78          */
79         bool IsPropertySupported(MediaPropertyType key) const;
80
81         /**
82          * @see AudioDecoder::GetSupportedCodecListN()
83          */
84         static Tizen::Base::Collection::IListT<CodecType>* GetSupportedCodecListN(void);
85
86 private:
87         _AudioDecoderImpl(const _AudioDecoderImpl& rhs);
88         _AudioDecoderImpl& operator =(const _AudioDecoderImpl& rhs);
89
90         class _IAudioDecoder* __pDec;
91 };
92
93 } } // Tizen::Media
94
95 #endif // _FMEDIA_INTERNAL_AUDIODECODER_IMPL_H_