tizen beta release
[framework/web/wrt-plugins-common.git] / src / modules / tizen / Profile / Ringtone.h
1 /*
2  * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
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  * @author       Zbigniew Kostrzewa (z.kostrzewa@samsung.com)
18  */
19
20 #ifndef WRTDEVICEAPIS_PROFILE_RINGTONE_H_
21 #define WRTDEVICEAPIS_PROFILE_RINGTONE_H_
22
23 #include <API/Profile/Enums.h>
24 #include <API/Profile/IRingtone.h>
25 #include <VConf/Key.h>
26 #include <API/Haptics/Types.h>
27
28 namespace WrtDeviceApis {
29 namespace Profile {
30 class Manager;
31
32 class Ringtone : public Profile::Api::IRingtone
33 {
34     friend class Manager;
35
36   public:
37     /**
38      * @see WrtPlugins::IRingtone::Api::getVolume()
39      */
40     Profile::Api::Volume getVolume() const;
41
42     /**
43      * @see WrtPlugins::IRingtone::Api::setVolume()
44      */
45     void setVolume(Profile::Api::Volume level);
46
47     /**
48      * @see WrtPlugins::IRingtone::Api::getAudio()
49      */
50     Filesystem::Api::IPathPtr getAudio() const;
51
52     /**
53      * @see WrtPlugins::IRingtone::Api::setAudio()
54      */
55     void setAudio(const Filesystem::Api::IPathPtr& path);
56
57     /**
58      * @see WrtPlugins::IRingtone::Api::getHaptics()
59      */
60     Haptics::Api::Feedback getHaptics() const;
61
62     /**
63      * @see WrtPlugins::IRingtone::Api::setHaptics()
64      */
65     void setHaptics(Haptics::Api::Feedback level);
66
67   private:
68     explicit Ringtone(Profile::Api::RingtoneScope scope);
69
70   private:
71     Profile::Api::RingtoneScope m_scope;
72     VConf::Key m_volumeKey;
73     VConf::Key m_hapticsKey;
74     VConf::Key m_audioKey;
75 };
76 } // Profile
77 } // WrtDeviceApis
78
79 #endif // WRTDEVICEAPIS_PROFILE_RINGTONE_H_