[version] 2.44
[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, picojson::object& out);
46   void MediaControllerServerUpdateMetadata(const picojson::value& args, picojson::object& out);
47   void MediaControllerServerAddChangeRequestPlaybackInfoListener(const picojson::value& args,
48                                                                  picojson::object& out);
49   void MediaControllerServerRemoveChangeRequestPlaybackInfoListener(const picojson::value& args,
50                                                                     picojson::object& out);
51   void MediaControllerServerAddCommandListener(const picojson::value& args, picojson::object& out);
52   void MediaControllerServerReplyCommand(const picojson::value& args, picojson::object& out);
53   void MediaControllerServerRemoveCommandListener(const picojson::value& args,
54                                                   picojson::object& out);
55   void MediaControllerServerCreatePlaylist(const picojson::value& args, picojson::object& out);
56   void MediaControllerServerSavePlaylist(const picojson::value& args, picojson::object& out);
57   void MediaControllerServerDeletePlaylist(const picojson::value& args, picojson::object& out);
58   void MediaControllerServerUpdatePlaybackItem(const picojson::value& args, picojson::object& out);
59   void MediaControllerServerGetAllPlaylists(const picojson::value& args, picojson::object& out);
60
61   // client
62   void MediaControllerManagerGetClient(const picojson::value& args, picojson::object& out);
63   void MediaControllerClientFindServers(const picojson::value& args, picojson::object& out);
64   void MediaControllerClientGetLatestServerInfo(const picojson::value& args, picojson::object& out);
65   void MediaControllerClientGetPlaybackInfo(const picojson::value& args, picojson::object& out);
66   void MediaControllerServerInfoSendPlaybackState(const picojson::value& args,
67                                                   picojson::object& out);
68   void MediaControllerServerInfoSendPlaybackPosition(const picojson::value& args,
69                                                      picojson::object& out);
70   void MediaControllerServerInfoSendRepeatMode(const picojson::value& args, picojson::object& out);
71   void MediaControllerServerInfoSendRepeatState(const picojson::value& args, picojson::object& out);
72   void MediaControllerServerInfoSendShuffleMode(const picojson::value& args, picojson::object& out);
73   void MediaControllerServerInfoSendCommand(const picojson::value& args, picojson::object& out);
74   void MediaControllerServerInfoAddServerStatusChangeListener(const picojson::value& args,
75                                                               picojson::object& out);
76   void MediaControllerServerInfoRemoveServerStatusChangeListener(const picojson::value& args,
77                                                                  picojson::object& out);
78   void MediaControllerServerInfoAddPlaybackInfoChangeListener(const picojson::value& args,
79                                                               picojson::object& out);
80   void MediaControllerServerInfoRemovePlaybackInfoChangeListener(const picojson::value& args,
81                                                                  picojson::object& out);
82   void MediaControllerServerInfoSendPlaybackItem(const picojson::value& args,
83                                                  picojson::object& out);
84   void MediaControllerServerInfoAddPlaylistUpdateListener(const picojson::value& args,
85                                                           picojson::object& out);
86   void MediaControllerServerInfoRemovePlaylistUpdateListener(const picojson::value& args,
87                                                              picojson::object& out);
88   void MediaControllerServerInfoGetAllPlaylists(const picojson::value& args, picojson::object& out);
89
90   // playlist
91   void MediaControllerPlaylistAddItem(const picojson::value& args, picojson::object& out);
92   void MediaControllerPlaylistGetItems(const picojson::value& args, picojson::object& out);
93
94   std::shared_ptr<MediaControllerClient> client_;
95   std::shared_ptr<MediaControllerServer> server_;
96 };
97
98 }  // namespace mediacontroller
99 }  // namespace extension
100
101 #endif  // MEDIACONTROLLER_MEDIACONTROLLER_INSTANCE_H_