d41ae51d5c05812641ea5190cf05ca80911b915d
[platform/core/api/webapi-plugins.git] / src / mediacontroller / mediacontroller_instance.h
1 /*
2  * Copyright (c) 2015 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 #ifndef MEDIACONTROLLER_MEDIACONTROLLER_INSTANCE_H_
18 #define MEDIACONTROLLER_MEDIACONTROLLER_INSTANCE_H_
19
20 #include <memory>
21
22 #include "common/extension.h"
23 #include "mediacontroller/mediacontroller_client.h"
24 #include "mediacontroller/mediacontroller_server.h"
25
26 namespace extension {
27 namespace mediacontroller {
28
29 class MediaControllerInstance : public common::ParsedInstance {
30  public:
31   MediaControllerInstance();
32   virtual ~MediaControllerInstance();
33
34  private:
35   // server
36   void MediaControllerManagerCreateServer(const picojson::value& args, picojson::object& out);
37   void MediaControllerServerUpdatePlaybackState(const picojson::value& args, picojson::object& out);
38   void MediaControllerServerUpdatePlaybackPosition(const picojson::value& args,
39                                                    picojson::object& out);
40   void MediaControllerServerUpdatePlaybackAgeRating(const picojson::value& args,
41                                                     picojson::object& out);
42   void MediaControllerServerUpdateRepeatMode(const picojson::value& args, picojson::object& out);
43   void MediaControllerServerUpdateRepeatState(const picojson::value& args, picojson::object& out);
44   void MediaControllerServerUpdateShuffleMode(const picojson::value& args, picojson::object& out);
45   void MediaControllerServerUpdatePlaybackContentType(const picojson::value& args,
46                                                       picojson::object& out);
47   void MediaControllerServerUpdateMetadata(const picojson::value& args, picojson::object& out);
48   void MediaControllerServerAddChangeRequestPlaybackInfoListener(const picojson::value& args,
49                                                                  picojson::object& out);
50   void MediaControllerServerRemoveChangeRequestPlaybackInfoListener(const picojson::value& args,
51                                                                     picojson::object& out);
52
53   void MediaControllerServerAddSearchRequestListener(const picojson::value& args,
54                                                      picojson::object& out);
55   void MediaControllerServerRemoveSearchRequestListener(const picojson::value& args,
56                                                         picojson::object& out);
57
58   void MediaControllerServerReplyCommand(const picojson::value& args, picojson::object& out);
59   void MediaControllerServerAddCommandListener(const picojson::value& args, picojson::object& out);
60   void MediaControllerServerRemoveCommandListener(const picojson::value& args,
61                                                   picojson::object& out);
62   void MediaControllerServerCreatePlaylist(const picojson::value& args, picojson::object& out);
63   void MediaControllerServerSavePlaylist(const picojson::value& args, picojson::object& out);
64   void MediaControllerServerDeletePlaylist(const picojson::value& args, picojson::object& out);
65   void MediaControllerServerUpdatePlaybackItem(const picojson::value& args, picojson::object& out);
66   void MediaControllerServerGetAllPlaylists(const picojson::value& args, picojson::object& out);
67   void MediaControllerServerUpdateIconURI(const picojson::value& args, picojson::object& out);
68   void MediaControllerServerSavePlaybackAbilities(const picojson::value& args,
69                                                   picojson::object& out);
70   void MediaControllerServerSetDisplayModeAbility(const picojson::value& args,
71                                                   picojson::object& out);
72   void MediaControllerServerSetDisplayRotationAbility(const picojson::value& args,
73                                                       picojson::object& out);
74   void MediaControllerServerSetSimpleAbility(const picojson::value& args, picojson::object& out);
75   void MediaControllerServerGetAllClientsInfo(const picojson::value& args, picojson::object& out);
76
77   // client info
78   void MediaControllerClientInfoSendEvent(const picojson::value& args, picojson::object& out);
79
80   // client
81   void MediaControllerManagerGetClient(const picojson::value& args, picojson::object& out);
82   void MediaControllerClientFindServers(const picojson::value& args, picojson::object& out);
83   void MediaControllerClientGetLatestServerInfo(const picojson::value& args, picojson::object& out);
84   void MediaControllerClientGetPlaybackInfo(const picojson::value& args, picojson::object& out);
85   void MediaControllerClientGetPlaybackAbility(const picojson::value& args, picojson::object& out);
86   void MediaControllerClientGetDisplayModeAbility(const picojson::value& args,
87                                                   picojson::object& out);
88   void MediaControllerClientGetDisplayRotationAbility(const picojson::value& args,
89                                                       picojson::object& out);
90   void MediaControllerClientGetSimpleAbility(const picojson::value& args, picojson::object& out);
91   void MediaControllerClientAddAbilityChangeListener(const picojson::value& args,
92                                                      picojson::object& out);
93   void MediaControllerClientRemoveAbilityChangeListener(const picojson::value& args,
94                                                         picojson::object& out);
95   void MediaControllerClientFindSubscribedServers(const picojson::value& args,
96                                                   picojson::object& out);
97   void MediaControllerClientSetCustomEventListener(const picojson::value& args,
98                                                    picojson::object& out);
99   void MediaControllerClientUnsetCustomEventListener(const picojson::value& args,
100                                                      picojson::object& out);
101   void MediaControllerClientSendEventReply(const picojson::value& args, picojson::object& out);
102
103   // serverInfo
104   void MediaControllerServerInfoSendPlaybackState(const picojson::value& args,
105                                                   picojson::object& out);
106   void MediaControllerServerInfoSendPlaybackPosition(const picojson::value& args,
107                                                      picojson::object& out);
108   void MediaControllerServerInfoSendRepeatMode(const picojson::value& args, picojson::object& out);
109   void MediaControllerServerInfoSendRepeatState(const picojson::value& args, picojson::object& out);
110   void MediaControllerServerInfoSendShuffleMode(const picojson::value& args, picojson::object& out);
111   void MediaControllerServerInfoSendSearchRequest(const picojson::value& args,
112                                                   picojson::object& out);
113   void MediaControllerServerInfoSendCommand(const picojson::value& args, picojson::object& out);
114   void MediaControllerServerInfoAddServerStatusChangeListener(const picojson::value& args,
115                                                               picojson::object& out);
116   void MediaControllerServerInfoRemoveServerStatusChangeListener(const picojson::value& args,
117                                                                  picojson::object& out);
118   void MediaControllerServerInfoAddPlaybackInfoChangeListener(const picojson::value& args,
119                                                               picojson::object& out);
120   void MediaControllerServerInfoRemovePlaybackInfoChangeListener(const picojson::value& args,
121                                                                  picojson::object& out);
122   void MediaControllerServerInfoSendPlaybackItem(const picojson::value& args,
123                                                  picojson::object& out);
124   void MediaControllerServerInfoAddPlaylistUpdatedListener(const picojson::value& args,
125                                                            picojson::object& out);
126   void MediaControllerServerInfoRemovePlaylistUpdatedListener(const picojson::value& args,
127                                                               picojson::object& out);
128   void MediaControllerServerInfoGetAllPlaylists(const picojson::value& args, picojson::object& out);
129   void MediaControllerServerInfoGetIconURI(const picojson::value& args, picojson::object& out);
130   void MediaControllerServerInfoPlaybackInfoSendPlaybackAction(const picojson::value& args,
131                                                                picojson::object& out);
132   void MediaControllerServerInfoPlaybackInfoSendPlaybackPosition(const picojson::value& args,
133                                                                  picojson::object& out);
134   void MediaControllerServerInfoPlaybackInfoSendShuffleMode(const picojson::value& args,
135                                                             picojson::object& out);
136   void MediaControllerServerInfoPlaybackInfoSendRepeatState(const picojson::value& args,
137                                                             picojson::object& out);
138
139   // abilities_info
140   void MediaControllerAbilitiesInfoSubscribe(const picojson::value& args, picojson::object& out);
141   void MediaControllerAbilitiesInfoUnsubscribe(const picojson::value& args, picojson::object& out);
142
143   // playlist
144   void MediaControllerPlaylistAddItem(const picojson::value& args, picojson::object& out);
145   void MediaControllerPlaylistGetItems(const picojson::value& args, picojson::object& out);
146
147   // subtitles
148   void MediaControllerSubtitlesUpdateEnabled(const picojson::value& args, picojson::object& out);
149   void MediaControllerSubtitlesAddChangeRequestListener(const picojson::value& args,
150                                                         picojson::object& out);
151   void MediaControllerSubtitlesRemoveChangeRequestListener(const picojson::value& args,
152                                                            picojson::object& out);
153   void MediaControllerSubtitlesInfoGetEnabled(const picojson::value& args, picojson::object& out);
154   void MediaControllerSubtitlesInfoSendRequest(const picojson::value& args, picojson::object& out);
155   void MediaControllerSubtitlesInfoAddModeChangeListener(const picojson::value& args,
156                                                          picojson::object& out);
157   void MediaControllerSubtitlesInfoRemoveModeChangeListener(const picojson::value& args,
158                                                             picojson::object& out);
159
160   // mode360
161   void MediaControllerMode360UpdateEnabled(const picojson::value& args, picojson::object& out);
162   void MediaControllerMode360AddChangeRequestListener(const picojson::value& args,
163                                                       picojson::object& out);
164   void MediaControllerMode360RemoveChangeRequestListener(const picojson::value& args,
165                                                          picojson::object& out);
166   void MediaControllerMode360InfoGetEnabled(const picojson::value& args, picojson::object& out);
167   void MediaControllerMode360InfoSendRequest(const picojson::value& args, picojson::object& out);
168   void MediaControllerMode360InfoAddModeChangeListener(const picojson::value& args,
169                                                        picojson::object& out);
170   void MediaControllerMode360InfoRemoveModeChangeListener(const picojson::value& args,
171                                                           picojson::object& out);
172
173   // displayMode
174   void MediaControllerDisplayModeUpdateType(const picojson::value& args, picojson::object& out);
175   void MediaControllerDisplayModeAddChangeRequestListener(const picojson::value& args,
176                                                           picojson::object& out);
177   void MediaControllerDisplayModeRemoveChangeRequestListener(const picojson::value& args,
178                                                              picojson::object& out);
179   void MediaControllerDisplayModeInfoGetType(const picojson::value& args, picojson::object& out);
180   void MediaControllerDisplayModeInfoSendType(const picojson::value& args, picojson::object& out);
181   void MediaControllerDisplayModeInfoAddModeChangeListener(const picojson::value& args,
182                                                            picojson::object& out);
183   void MediaControllerDisplayModeInfoRemoveModeChangeListener(const picojson::value& args,
184                                                               picojson::object& out);
185
186   // displayRotation
187   void MediaControllerDisplayRotationUpdate(const picojson::value& args, picojson::object& out);
188   void MediaControllerDisplayRotationAddChangeRequestListener(const picojson::value& args,
189                                                               picojson::object& out);
190   void MediaControllerDisplayRotationRemoveChangeRequestListener(const picojson::value& args,
191                                                                  picojson::object& out);
192   void MediaControllerDisplayRotationInfoGet(const picojson::value& args, picojson::object& out);
193   void MediaControllerDisplayRotationInfoSend(const picojson::value& args, picojson::object& out);
194   void MediaControllerDisplayRotationInfoAddChangeListener(const picojson::value& args,
195                                                            picojson::object& out);
196   void MediaControllerDisplayRotationInfoRemoveChangeListener(const picojson::value& args,
197                                                               picojson::object& out);
198
199   // playlists
200   void MediaControllerPlaylistsGetPlaylist(const picojson::value& args, picojson::object& out);
201
202   // playlists_info
203   void MediaControllerPlaylistsInfoSendPlaybackItem(const picojson::value& args,
204                                                     picojson::object& out);
205   void MediaControllerPlaylistsInfoGetPlaylist(const picojson::value& args, picojson::object& out);
206
207   std::shared_ptr<MediaControllerClient> client_;
208   std::shared_ptr<MediaControllerServer> server_;
209   std::map<std::string, PlaylistHandleMap> server_playlist_map_;
210 };
211
212 }  // namespace mediacontroller
213 }  // namespace extension
214
215 #endif  // MEDIACONTROLLER_MEDIACONTROLLER_INSTANCE_H_