Add : AlbumArtist and RecordedDate information for content
[platform/framework/native/content.git] / src / inc / FCnt_AudioContentInfoImpl.h
1 //
2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
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 express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 //
16 /**
17  * @file                        FCnt_AudioContentInfoImpl.h
18  * @brief               This is the header file for the %_AudioContentInfoImpl class.
19  *
20  * This header file contains the declarations of the %_AudioContentInfoImpl class.
21  */
22
23 #ifndef _FCNT_INTERNAL_AUDIO_CONTENT_INFO_IMPL_H_
24 #define _FCNT_INTERNAL_AUDIO_CONTENT_INFO_IMPL_H_
25
26 #include <FCntContentInfo.h>
27 #include <FCntAudioContentInfo.h>
28 #include "FCnt_ContentInfoImpl.h"
29
30 namespace Tizen { namespace Content
31 {
32
33 class _OSP_EXPORT_ _AudioContentInfoImpl
34         : public Tizen::Content::_ContentInfoImpl
35 {
36 public:
37
38         _AudioContentInfoImpl(void);
39
40         virtual ~_AudioContentInfoImpl(void);
41
42         result Construct(const Tizen::Base::String* pContentPath);
43
44         virtual result Construct(const Tizen::Base::String& contentPath, const Tizen::Base::String& thumbnailPath = L"", bool setGps = false);
45
46         Tizen::Base::String GetGenre(void) const;
47
48         Tizen::Base::String GetArtist(void) const;
49
50         Tizen::Base::String GetAlbumArtist(void) const;
51
52         Tizen::Base::String GetComposer(void) const;
53
54         Tizen::Base::String GetAlbumName(void) const;
55
56         int GetReleaseYear(void) const;
57
58         int GetBitrate(void) const;
59
60         Tizen::Base::String GetTitle(void) const;
61
62         Tizen::Base::String GetCopyright(void) const;
63
64         Tizen::Base::String GetTrackInfo(void) const;
65
66         long GetDuration(void) const;
67
68         void SetGenre(const Tizen::Base::String& genre);
69
70         void SetArtist(const Tizen::Base::String& artist);
71
72         void SetAlbumArtist(const Tizen::Base::String& albumArtist);
73
74         void SetComposer(const Tizen::Base::String& composer);
75
76         void SetAlbumName(const Tizen::Base::String& albumName);
77
78         void SetReleaseYear(int releaseYear);
79
80         void SetBitrate(int bitrate);
81
82         void SetTitle(const Tizen::Base::String& title);
83
84         void SetCopyright(const Tizen::Base::String& copyright);
85
86         void SetTrackInfo(const Tizen::Base::String& trackInfo);
87
88         void SetDuration(long duration);
89
90         static _AudioContentInfoImpl* GetInstance(AudioContentInfo& audioContentInfo);
91
92         static const _AudioContentInfoImpl* GetInstance(const AudioContentInfo& audioContentInfo);
93
94 private:
95         _AudioContentInfoImpl(const _AudioContentInfoImpl& rhs);
96
97         _AudioContentInfoImpl& operator =(const _AudioContentInfoImpl& rhs);
98
99         int __bitrate;
100         int __releaseYear;
101         long __duration;
102         Tizen::Base::String __title;
103         Tizen::Base::String __albumName;
104         Tizen::Base::String __artist;
105         Tizen::Base::String __albumArtist;
106         Tizen::Base::String __composer;
107         Tizen::Base::String __genre;
108         Tizen::Base::String __copyright;
109         Tizen::Base::String __trackInfo;
110
111 };  // _AudioContentInfoImpl
112
113 }}  // Tizen::Content
114
115 #endif  // _FCNT_INTERNAL_AUDIO_CONTENT_INFO_IMPL_H_