2 * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 #ifndef MEDIACONTROLLER_MEDIACONTROLLER_SERVER_H_
18 #define MEDIACONTROLLER_MEDIACONTROLLER_SERVER_H_
20 #include <media_controller_server.h>
23 #include "common/platform_result.h"
24 #include "mediacontroller/mediacontroller_utils.h"
27 namespace mediacontroller {
29 class MediaControllerServer {
31 MediaControllerServer();
32 virtual ~MediaControllerServer();
34 common::PlatformResult Init();
35 common::PlatformResult SetPlaybackState(const std::string& state);
36 common::PlatformResult SetPlaybackPosition(double position);
37 common::PlatformResult SetContentAgeRating(const std::string& rating);
38 common::PlatformResult SetContentType(const std::string& content_type);
39 common::PlatformResult SetShuffleMode(bool mode);
40 common::PlatformResult SetRepeatMode(bool mode);
41 common::PlatformResult SetRepeatState(const std::string& state);
42 common::PlatformResult SetMetadata(const picojson::object& metadata);
44 common::PlatformResult SetChangeRequestPlaybackInfoListener(const JsonCallback& callback);
45 common::PlatformResult UnsetChangeRequestPlaybackInfoListener();
47 common::PlatformResult SetSearchRequestListener(const JsonCallback& callback);
48 common::PlatformResult UnsetSearchRequestListener();
50 common::PlatformResult CommandReply(const std::string& client_name, const std::string& request_id,
51 int code, const picojson::value& data);
53 common::PlatformResult SetCommandListener(const JsonCallback& callback);
54 common::PlatformResult UnsetCommandListener();
56 common::PlatformResult CreatePlaylist(const std::string& name, picojson::value* playlist_info);
57 common::PlatformResult SavePlaylist(const std::string& name);
58 common::PlatformResult DeletePlaylist(const std::string& name);
59 common::PlatformResult UpdatePlaybackItem(const std::string& name, const std::string& index);
61 common::PlatformResult MediaControllerPlaylistAddItem(const std::string& name,
62 const std::string& index,
63 const picojson::object& metadata);
64 common::PlatformResult MediaControllerPlaylistGetItems(const std::string& name,
65 picojson::array* items);
66 common::PlatformResult UpdateIconURI(const char* icon_uri);
67 common::PlatformResult SetPlaybackAbility(const std::string& action,
68 const std::string& support_str, bool* is_changed);
69 common::PlatformResult SavePlaybackAbilities(const picojson::value& abilities);
70 common::PlatformResult SetDisplayModeAbility(const std::string& mode,
71 const std::string& support_str);
72 common::PlatformResult SetDisplayRotationAbility(std::string& display_rotation_ability,
73 const std::string& support_str);
74 common::PlatformResult SetSimpleAbility(const std::string& ability_type,
75 const std::string& support_str);
77 common::PlatformResult GetAllClientsInfo(picojson::array* clientsInfo);
79 common::PlatformResult UpdateSubtitlesEnabled(bool enabled);
80 common::PlatformResult SetSubtitlesChangeRequestListener(const JsonCallback& callback);
81 common::PlatformResult UnsetSubtitlesChangeRequestListener();
83 common::PlatformResult UpdateMode360Enabled(bool enabled);
84 common::PlatformResult SetMode360ChangeRequestListener(const JsonCallback& callback);
85 common::PlatformResult UnsetMode360ChangeRequestListener();
87 common::PlatformResult UpdateDisplayModeType(const std::string& type);
88 common::PlatformResult SetDisplayModeChangeRequestListener(const JsonCallback& callback);
89 common::PlatformResult UnsetDisplayModeChangeRequestListener();
91 common::PlatformResult UpdateDisplayRotation(const std::string& display_rotation);
92 common::PlatformResult SetDisplayRotationChangeRequestListener(const JsonCallback& callback);
93 common::PlatformResult UnsetDisplayRotationChangeRequestListener();
95 common::PlatformResult SendEvent(const char* event_name, const picojson::value& event_data,
96 const char* client_name, const JsonCallback& reply_cb,
102 JsonCallback change_request_playback_info_listener_;
103 JsonCallback event_reply_callback_;
104 JsonCallback command_listener_;
105 JsonCallback search_request_listener_;
106 JsonCallback subtitles_change_request_listener_;
107 JsonCallback mode360_change_request_listener_;
108 JsonCallback display_mode_change_request_listener_;
109 JsonCallback display_rotation_change_request_listener_;
111 mc_playback_states_e playback_state_;
112 unsigned long long position_;
113 mc_content_age_rating_e age_rating_;
114 mc_content_type_e content_type_;
115 mc_shuffle_mode_e shuffle_mode_;
116 mc_repeat_mode_e repeat_mode_;
117 bool is_shuffle_mode_set_;
118 bool is_repeat_mode_set_;
119 std::map<std::string, mc_ability_support_e> abilities_;
121 std::map<std::string, mc_playlist_h> playlist_handle_map_;
123 static void OnPlaybackActionCommand(const char* client_name, const char* request_id,
124 mc_playback_action_e action, void* user_data);
125 static void OnPlaybackPositionCommand(const char* client_name, const char* request_id,
126 unsigned long long position, void* user_data);
127 static void OnShuffleModeCommand(const char* client_name, const char* request_id,
128 mc_shuffle_mode_e mode, void* user_data);
129 static void OnRepeatModeCommand(const char* client_name, const char* request_id,
130 mc_repeat_mode_e mode, void* user_data);
131 static void OnPlaybackItemCommand(const char* client_name, const char* request_id,
132 const char* playlist_name, const char* index,
133 mc_playback_action_e action, unsigned long long position,
135 static void OnEventReply(const char* client_name, const char* request_id, int result_code,
136 bundle* data, void* user_data);
137 static void OnSearchRequestReceived(const char* client_name, const char* request_id,
138 mc_search_h request, void* user_data);
139 static void OnCommandReceived(const char* client_name, const char* request_id,
140 const char* command, bundle* data, void* user_data);
141 static void OnSubtitlesChangeCommand(const char* client_name, const char* request_id,
142 bool enabled, void* user_data);
143 static void OnMode360ChangeCommand(const char* client_name, const char* request_id, bool enabled,
146 static void OnDisplayModeChangeCommand(const char* client_name, const char* request_id,
147 mc_display_mode_e type, void* user_data);
149 static void OnDisplayRotationChangeCommand(const char* client_name, const char* request_id,
150 mc_display_rotation_e type, void* user_data);
153 } // namespace mediacontroller
154 } // namespace extension
156 #endif // MEDIACONTROLLER_MEDIACONTROLLER_SERVER_H_