diff --git a/src/modules/Makefile_music_control.am b/src/modules/Makefile_music_control.am index 38ba74c90..90e60ddf6 100644 --- a/src/modules/Makefile_music_control.am +++ b/src/modules/Makefile_music_control.am @@ -13,4 +13,8 @@ music_control_module_la_LIBADD = @MUSIC_CONTROL_LIBS@ music_control_module_la_SOURCES = music-control/e_mod_main.h \ music-control/e_mod_main.c \ music-control/private.h \ - music-control/ui.c + music-control/ui.c \ + music-control/gen/edbus_media_player2_player.c \ + music-control/gen/edbus_media_player2_player.h \ + music-control/gen/edbus_mpris_media_player2.c \ + music-control/gen/edbus_mpris_media_player2.h diff --git a/src/modules/music-control/gen/edbus_media_player2_player.c b/src/modules/music-control/gen/edbus_media_player2_player.c new file mode 100644 index 000000000..1e472fe00 --- /dev/null +++ b/src/modules/music-control/gen/edbus_media_player2_player.c @@ -0,0 +1,923 @@ +#include "edbus_media_player2_player.h" + +static int _log_main = -1; +#undef ERR +#define ERR(...) EINA_LOG_DOM_ERR(_log_main, __VA_ARGS__); +int MEDIA_PLAYER2_PLAYER_SEEKED_EVENT; + +void +media_player2_player_next_call(EDBus_Proxy *proxy) +{ + EDBus_Message *msg; + EINA_SAFETY_ON_NULL_RETURN(proxy); + msg = edbus_proxy_method_call_new(proxy, "Next"); + if (!edbus_message_arguments_append(msg, "")) + { + ERR("Error: Filling message."); + return; + } + edbus_proxy_send(proxy, msg, NULL, NULL, -1); +} + +void +media_player2_player_open_uri_call(EDBus_Proxy *proxy, const char *arg0) +{ + EDBus_Message *msg; + EINA_SAFETY_ON_NULL_RETURN(proxy); + msg = edbus_proxy_method_call_new(proxy, "OpenUri"); + if (!edbus_message_arguments_append(msg, "s", arg0)) + { + ERR("Error: Filling message."); + return; + } + edbus_proxy_send(proxy, msg, NULL, NULL, -1); +} + +void +media_player2_player_pause_call(EDBus_Proxy *proxy) +{ + EDBus_Message *msg; + EINA_SAFETY_ON_NULL_RETURN(proxy); + msg = edbus_proxy_method_call_new(proxy, "Pause"); + if (!edbus_message_arguments_append(msg, "")) + { + ERR("Error: Filling message."); + return; + } + edbus_proxy_send(proxy, msg, NULL, NULL, -1); +} + +void +media_player2_player_play_call(EDBus_Proxy *proxy) +{ + EDBus_Message *msg; + EINA_SAFETY_ON_NULL_RETURN(proxy); + msg = edbus_proxy_method_call_new(proxy, "Play"); + if (!edbus_message_arguments_append(msg, "")) + { + ERR("Error: Filling message."); + return; + } + edbus_proxy_send(proxy, msg, NULL, NULL, -1); +} + +void +media_player2_player_play_pause_call(EDBus_Proxy *proxy) +{ + EDBus_Message *msg; + EINA_SAFETY_ON_NULL_RETURN(proxy); + msg = edbus_proxy_method_call_new(proxy, "PlayPause"); + if (!edbus_message_arguments_append(msg, "")) + { + ERR("Error: Filling message."); + return; + } + edbus_proxy_send(proxy, msg, NULL, NULL, -1); +} + +void +media_player2_player_previous_call(EDBus_Proxy *proxy) +{ + EDBus_Message *msg; + EINA_SAFETY_ON_NULL_RETURN(proxy); + msg = edbus_proxy_method_call_new(proxy, "Previous"); + if (!edbus_message_arguments_append(msg, "")) + { + ERR("Error: Filling message."); + return; + } + edbus_proxy_send(proxy, msg, NULL, NULL, -1); +} + +void +media_player2_player_seek_call(EDBus_Proxy *proxy, int64_t arg0) +{ + EDBus_Message *msg; + EINA_SAFETY_ON_NULL_RETURN(proxy); + msg = edbus_proxy_method_call_new(proxy, "Seek"); + if (!edbus_message_arguments_append(msg, "x", arg0)) + { + ERR("Error: Filling message."); + return; + } + edbus_proxy_send(proxy, msg, NULL, NULL, -1); +} + +void +media_player2_player_set_position_call(EDBus_Proxy *proxy, const char *arg0, int64_t arg1) +{ + EDBus_Message *msg; + EINA_SAFETY_ON_NULL_RETURN(proxy); + msg = edbus_proxy_method_call_new(proxy, "SetPosition"); + if (!edbus_message_arguments_append(msg, "ox", arg0, arg1)) + { + ERR("Error: Filling message."); + return; + } + edbus_proxy_send(proxy, msg, NULL, NULL, -1); +} + +void +media_player2_player_stop_call(EDBus_Proxy *proxy) +{ + EDBus_Message *msg; + EINA_SAFETY_ON_NULL_RETURN(proxy); + msg = edbus_proxy_method_call_new(proxy, "Stop"); + if (!edbus_message_arguments_append(msg, "")) + { + ERR("Error: Filling message."); + return; + } + edbus_proxy_send(proxy, msg, NULL, NULL, -1); +} + +static void +media_player2_player_seeked_data_free(void *user_data, void *func_data) +{ + Media_Player2_Player_Seeked_Data *s_data = user_data; + free(s_data); +} + +static void +on_media_player2_player_seeked(void *data, const EDBus_Message *msg) +{ + EDBus_Proxy *proxy = data; + Media_Player2_Player_Seeked_Data *s_data = calloc(1, sizeof(Media_Player2_Player_Seeked_Data)); + s_data->proxy = proxy; + if (!edbus_message_arguments_get(msg, "x", &s_data->arg0)) + { + ERR("Error: Getting arguments from message."); + return; + } + ecore_event_add(MEDIA_PLAYER2_PLAYER_SEEKED_EVENT, s_data, media_player2_player_seeked_data_free, NULL); +} + +static void +cb_media_player2_player_can_control(void *data, const EDBus_Message *msg, EDBus_Pending *pending) +{ + void *user_data = edbus_pending_data_del(pending, "__user_data"); + const char *error, *error_msg; + EDBus_Codegen_Property_Bool_Get_Cb cb = data; + EDBus_Proxy *proxy = edbus_pending_data_del(pending, "__proxy"); + EDBus_Message_Iter *variant; + Eina_Bool v; + if (edbus_message_error_get(msg, &error, &error_msg)) + { + EDBus_Error_Info error_info = {error, error_msg}; + cb(user_data, pending, "CanControl", proxy, &error_info, 0); + return; + } + if (!edbus_message_arguments_get(msg, "v", &variant)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "CanControl", proxy, &error_info, 0); + return; + } + if (!edbus_message_iter_arguments_get(variant, "b", &v)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "CanControl", proxy, &error_info, 0); + return; + } + cb(user_data, pending, "CanControl", proxy, NULL, v); +} + +EDBus_Pending * +media_player2_player_can_control_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Bool_Get_Cb cb, const void *data) +{ + EDBus_Pending *p; + EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL); + p = edbus_proxy_property_get(proxy, "CanControl", cb_media_player2_player_can_control, cb); + if (data) + edbus_pending_data_set(p, "__user_data", data); + edbus_pending_data_set(p, "__proxy", proxy); + return p; +} + +static void +cb_media_player2_player_can_go_next(void *data, const EDBus_Message *msg, EDBus_Pending *pending) +{ + void *user_data = edbus_pending_data_del(pending, "__user_data"); + const char *error, *error_msg; + EDBus_Codegen_Property_Bool_Get_Cb cb = data; + EDBus_Proxy *proxy = edbus_pending_data_del(pending, "__proxy"); + EDBus_Message_Iter *variant; + Eina_Bool v; + if (edbus_message_error_get(msg, &error, &error_msg)) + { + EDBus_Error_Info error_info = {error, error_msg}; + cb(user_data, pending, "CanGoNext", proxy, &error_info, 0); + return; + } + if (!edbus_message_arguments_get(msg, "v", &variant)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "CanGoNext", proxy, &error_info, 0); + return; + } + if (!edbus_message_iter_arguments_get(variant, "b", &v)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "CanGoNext", proxy, &error_info, 0); + return; + } + cb(user_data, pending, "CanGoNext", proxy, NULL, v); +} + +EDBus_Pending * +media_player2_player_can_go_next_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Bool_Get_Cb cb, const void *data) +{ + EDBus_Pending *p; + EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL); + p = edbus_proxy_property_get(proxy, "CanGoNext", cb_media_player2_player_can_go_next, cb); + if (data) + edbus_pending_data_set(p, "__user_data", data); + edbus_pending_data_set(p, "__proxy", proxy); + return p; +} + +static void +cb_media_player2_player_can_go_previous(void *data, const EDBus_Message *msg, EDBus_Pending *pending) +{ + void *user_data = edbus_pending_data_del(pending, "__user_data"); + const char *error, *error_msg; + EDBus_Codegen_Property_Bool_Get_Cb cb = data; + EDBus_Proxy *proxy = edbus_pending_data_del(pending, "__proxy"); + EDBus_Message_Iter *variant; + Eina_Bool v; + if (edbus_message_error_get(msg, &error, &error_msg)) + { + EDBus_Error_Info error_info = {error, error_msg}; + cb(user_data, pending, "CanGoPrevious", proxy, &error_info, 0); + return; + } + if (!edbus_message_arguments_get(msg, "v", &variant)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "CanGoPrevious", proxy, &error_info, 0); + return; + } + if (!edbus_message_iter_arguments_get(variant, "b", &v)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "CanGoPrevious", proxy, &error_info, 0); + return; + } + cb(user_data, pending, "CanGoPrevious", proxy, NULL, v); +} + +EDBus_Pending * +media_player2_player_can_go_previous_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Bool_Get_Cb cb, const void *data) +{ + EDBus_Pending *p; + EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL); + p = edbus_proxy_property_get(proxy, "CanGoPrevious", cb_media_player2_player_can_go_previous, cb); + if (data) + edbus_pending_data_set(p, "__user_data", data); + edbus_pending_data_set(p, "__proxy", proxy); + return p; +} + +static void +cb_media_player2_player_can_pause(void *data, const EDBus_Message *msg, EDBus_Pending *pending) +{ + void *user_data = edbus_pending_data_del(pending, "__user_data"); + const char *error, *error_msg; + EDBus_Codegen_Property_Bool_Get_Cb cb = data; + EDBus_Proxy *proxy = edbus_pending_data_del(pending, "__proxy"); + EDBus_Message_Iter *variant; + Eina_Bool v; + if (edbus_message_error_get(msg, &error, &error_msg)) + { + EDBus_Error_Info error_info = {error, error_msg}; + cb(user_data, pending, "CanPause", proxy, &error_info, 0); + return; + } + if (!edbus_message_arguments_get(msg, "v", &variant)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "CanPause", proxy, &error_info, 0); + return; + } + if (!edbus_message_iter_arguments_get(variant, "b", &v)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "CanPause", proxy, &error_info, 0); + return; + } + cb(user_data, pending, "CanPause", proxy, NULL, v); +} + +EDBus_Pending * +media_player2_player_can_pause_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Bool_Get_Cb cb, const void *data) +{ + EDBus_Pending *p; + EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL); + p = edbus_proxy_property_get(proxy, "CanPause", cb_media_player2_player_can_pause, cb); + if (data) + edbus_pending_data_set(p, "__user_data", data); + edbus_pending_data_set(p, "__proxy", proxy); + return p; +} + +static void +cb_media_player2_player_can_play(void *data, const EDBus_Message *msg, EDBus_Pending *pending) +{ + void *user_data = edbus_pending_data_del(pending, "__user_data"); + const char *error, *error_msg; + EDBus_Codegen_Property_Bool_Get_Cb cb = data; + EDBus_Proxy *proxy = edbus_pending_data_del(pending, "__proxy"); + EDBus_Message_Iter *variant; + Eina_Bool v; + if (edbus_message_error_get(msg, &error, &error_msg)) + { + EDBus_Error_Info error_info = {error, error_msg}; + cb(user_data, pending, "CanPlay", proxy, &error_info, 0); + return; + } + if (!edbus_message_arguments_get(msg, "v", &variant)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "CanPlay", proxy, &error_info, 0); + return; + } + if (!edbus_message_iter_arguments_get(variant, "b", &v)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "CanPlay", proxy, &error_info, 0); + return; + } + cb(user_data, pending, "CanPlay", proxy, NULL, v); +} + +EDBus_Pending * +media_player2_player_can_play_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Bool_Get_Cb cb, const void *data) +{ + EDBus_Pending *p; + EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL); + p = edbus_proxy_property_get(proxy, "CanPlay", cb_media_player2_player_can_play, cb); + if (data) + edbus_pending_data_set(p, "__user_data", data); + edbus_pending_data_set(p, "__proxy", proxy); + return p; +} + +static void +cb_media_player2_player_can_seek(void *data, const EDBus_Message *msg, EDBus_Pending *pending) +{ + void *user_data = edbus_pending_data_del(pending, "__user_data"); + const char *error, *error_msg; + EDBus_Codegen_Property_Bool_Get_Cb cb = data; + EDBus_Proxy *proxy = edbus_pending_data_del(pending, "__proxy"); + EDBus_Message_Iter *variant; + Eina_Bool v; + if (edbus_message_error_get(msg, &error, &error_msg)) + { + EDBus_Error_Info error_info = {error, error_msg}; + cb(user_data, pending, "CanSeek", proxy, &error_info, 0); + return; + } + if (!edbus_message_arguments_get(msg, "v", &variant)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "CanSeek", proxy, &error_info, 0); + return; + } + if (!edbus_message_iter_arguments_get(variant, "b", &v)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "CanSeek", proxy, &error_info, 0); + return; + } + cb(user_data, pending, "CanSeek", proxy, NULL, v); +} + +EDBus_Pending * +media_player2_player_can_seek_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Bool_Get_Cb cb, const void *data) +{ + EDBus_Pending *p; + EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL); + p = edbus_proxy_property_get(proxy, "CanSeek", cb_media_player2_player_can_seek, cb); + if (data) + edbus_pending_data_set(p, "__user_data", data); + edbus_pending_data_set(p, "__proxy", proxy); + return p; +} + +static void +cb_media_player2_player_loop_status(void *data, const EDBus_Message *msg, EDBus_Pending *pending) +{ + void *user_data = edbus_pending_data_del(pending, "__user_data"); + const char *error, *error_msg; + EDBus_Codegen_Property_String_Get_Cb cb = data; + EDBus_Proxy *proxy = edbus_pending_data_del(pending, "__proxy"); + EDBus_Message_Iter *variant; + const char *v; + if (edbus_message_error_get(msg, &error, &error_msg)) + { + EDBus_Error_Info error_info = {error, error_msg}; + cb(user_data, pending, "LoopStatus", proxy, &error_info, NULL); + return; + } + if (!edbus_message_arguments_get(msg, "v", &variant)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "LoopStatus", proxy, &error_info, NULL); + return; + } + if (!edbus_message_iter_arguments_get(variant, "s", &v)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "LoopStatus", proxy, &error_info, NULL); + return; + } + cb(user_data, pending, "LoopStatus", proxy, NULL, v); +} + +EDBus_Pending * +media_player2_player_loop_status_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_String_Get_Cb cb, const void *data) +{ + EDBus_Pending *p; + EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL); + p = edbus_proxy_property_get(proxy, "LoopStatus", cb_media_player2_player_loop_status, cb); + if (data) + edbus_pending_data_set(p, "__user_data", data); + edbus_pending_data_set(p, "__proxy", proxy); + return p; +} + +static void +cb_media_player2_player_loop_status_set(void *data, const EDBus_Message *msg, EDBus_Pending *pending) +{ + const char *error, *error_msg; + void *user_data = edbus_pending_data_del(pending, "__user_data"); + EDBus_Proxy *proxy = edbus_pending_data_del(pending, "__proxy"); + EDBus_Codegen_Property_Set_Cb cb = data; + if (edbus_message_error_get(msg, &error, &error_msg)) { + EDBus_Error_Info error_info = {error, error_msg}; + + cb(user_data, "LoopStatus", proxy, pending, &error_info); + return; + } + cb(user_data, "LoopStatus", proxy, pending, NULL); +} + +EDBus_Pending * +media_player2_player_loop_status_propset(EDBus_Proxy *proxy, EDBus_Codegen_Property_Set_Cb cb, const void *data, const void *value) +{ + EDBus_Pending *p; + EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL); + EINA_SAFETY_ON_NULL_RETURN_VAL(value, NULL); + p = edbus_proxy_property_set(proxy, "LoopStatus", "s", value, cb_media_player2_player_loop_status_set, data); + edbus_pending_data_set(p, "__user_data", data); + edbus_pending_data_set(p, "__proxy", proxy); + return p; +} + +static void +cb_media_player2_player_maximum_rate(void *data, const EDBus_Message *msg, EDBus_Pending *pending) +{ + void *user_data = edbus_pending_data_del(pending, "__user_data"); + const char *error, *error_msg; + EDBus_Codegen_Property_Double_Get_Cb cb = data; + EDBus_Proxy *proxy = edbus_pending_data_del(pending, "__proxy"); + EDBus_Message_Iter *variant; + double v; + if (edbus_message_error_get(msg, &error, &error_msg)) + { + EDBus_Error_Info error_info = {error, error_msg}; + cb(user_data, pending, "MaximumRate", proxy, &error_info, 0); + return; + } + if (!edbus_message_arguments_get(msg, "v", &variant)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "MaximumRate", proxy, &error_info, 0); + return; + } + if (!edbus_message_iter_arguments_get(variant, "d", &v)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "MaximumRate", proxy, &error_info, 0); + return; + } + cb(user_data, pending, "MaximumRate", proxy, NULL, v); +} + +EDBus_Pending * +media_player2_player_maximum_rate_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Double_Get_Cb cb, const void *data) +{ + EDBus_Pending *p; + EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL); + p = edbus_proxy_property_get(proxy, "MaximumRate", cb_media_player2_player_maximum_rate, cb); + if (data) + edbus_pending_data_set(p, "__user_data", data); + edbus_pending_data_set(p, "__proxy", proxy); + return p; +} + +static void +cb_media_player2_player_metadata(void *data, const EDBus_Message *msg, EDBus_Pending *pending) +{ + void *user_data = edbus_pending_data_del(pending, "__user_data"); + const char *error, *error_msg; + EDBus_Codegen_Property_Complex_Get_Cb cb = data; + EDBus_Proxy *proxy = edbus_pending_data_del(pending, "__proxy"); + EDBus_Message_Iter *variant; + Eina_Value *v, stack_value; + if (edbus_message_error_get(msg, &error, &error_msg)) + { + EDBus_Error_Info error_info = {error, error_msg}; + cb(user_data, pending, "Metadata", proxy, &error_info, NULL); + return; + } + if (!edbus_message_arguments_get(msg, "v", &variant)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "Metadata", proxy, &error_info, NULL); + return; + } + v = edbus_message_iter_struct_like_to_eina_value(variant); + eina_value_struct_value_get(v, "arg0", &stack_value); + cb(user_data, pending, "Metadata", proxy, NULL, &stack_value); + eina_value_flush(&stack_value); + eina_value_free(v); +} + +EDBus_Pending * +media_player2_player_metadata_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Complex_Get_Cb cb, const void *data) +{ + EDBus_Pending *p; + EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL); + p = edbus_proxy_property_get(proxy, "Metadata", cb_media_player2_player_metadata, cb); + if (data) + edbus_pending_data_set(p, "__user_data", data); + edbus_pending_data_set(p, "__proxy", proxy); + return p; +} + +static void +cb_media_player2_player_minimum_rate(void *data, const EDBus_Message *msg, EDBus_Pending *pending) +{ + void *user_data = edbus_pending_data_del(pending, "__user_data"); + const char *error, *error_msg; + EDBus_Codegen_Property_Double_Get_Cb cb = data; + EDBus_Proxy *proxy = edbus_pending_data_del(pending, "__proxy"); + EDBus_Message_Iter *variant; + double v; + if (edbus_message_error_get(msg, &error, &error_msg)) + { + EDBus_Error_Info error_info = {error, error_msg}; + cb(user_data, pending, "MinimumRate", proxy, &error_info, 0); + return; + } + if (!edbus_message_arguments_get(msg, "v", &variant)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "MinimumRate", proxy, &error_info, 0); + return; + } + if (!edbus_message_iter_arguments_get(variant, "d", &v)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "MinimumRate", proxy, &error_info, 0); + return; + } + cb(user_data, pending, "MinimumRate", proxy, NULL, v); +} + +EDBus_Pending * +media_player2_player_minimum_rate_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Double_Get_Cb cb, const void *data) +{ + EDBus_Pending *p; + EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL); + p = edbus_proxy_property_get(proxy, "MinimumRate", cb_media_player2_player_minimum_rate, cb); + if (data) + edbus_pending_data_set(p, "__user_data", data); + edbus_pending_data_set(p, "__proxy", proxy); + return p; +} + +static void +cb_media_player2_player_playback_status(void *data, const EDBus_Message *msg, EDBus_Pending *pending) +{ + void *user_data = edbus_pending_data_del(pending, "__user_data"); + const char *error, *error_msg; + EDBus_Codegen_Property_String_Get_Cb cb = data; + EDBus_Proxy *proxy = edbus_pending_data_del(pending, "__proxy"); + EDBus_Message_Iter *variant; + const char *v; + if (edbus_message_error_get(msg, &error, &error_msg)) + { + EDBus_Error_Info error_info = {error, error_msg}; + cb(user_data, pending, "PlaybackStatus", proxy, &error_info, NULL); + return; + } + if (!edbus_message_arguments_get(msg, "v", &variant)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "PlaybackStatus", proxy, &error_info, NULL); + return; + } + if (!edbus_message_iter_arguments_get(variant, "s", &v)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "PlaybackStatus", proxy, &error_info, NULL); + return; + } + cb(user_data, pending, "PlaybackStatus", proxy, NULL, v); +} + +EDBus_Pending * +media_player2_player_playback_status_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_String_Get_Cb cb, const void *data) +{ + EDBus_Pending *p; + EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL); + p = edbus_proxy_property_get(proxy, "PlaybackStatus", cb_media_player2_player_playback_status, cb); + if (data) + edbus_pending_data_set(p, "__user_data", data); + edbus_pending_data_set(p, "__proxy", proxy); + return p; +} + +static void +cb_media_player2_player_position(void *data, const EDBus_Message *msg, EDBus_Pending *pending) +{ + void *user_data = edbus_pending_data_del(pending, "__user_data"); + const char *error, *error_msg; + EDBus_Codegen_Property_Int64_Get_Cb cb = data; + EDBus_Proxy *proxy = edbus_pending_data_del(pending, "__proxy"); + EDBus_Message_Iter *variant; + int64_t v; + if (edbus_message_error_get(msg, &error, &error_msg)) + { + EDBus_Error_Info error_info = {error, error_msg}; + cb(user_data, pending, "Position", proxy, &error_info, 0); + return; + } + if (!edbus_message_arguments_get(msg, "v", &variant)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "Position", proxy, &error_info, 0); + return; + } + if (!edbus_message_iter_arguments_get(variant, "x", &v)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "Position", proxy, &error_info, 0); + return; + } + cb(user_data, pending, "Position", proxy, NULL, v); +} + +EDBus_Pending * +media_player2_player_position_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Int64_Get_Cb cb, const void *data) +{ + EDBus_Pending *p; + EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL); + p = edbus_proxy_property_get(proxy, "Position", cb_media_player2_player_position, cb); + if (data) + edbus_pending_data_set(p, "__user_data", data); + edbus_pending_data_set(p, "__proxy", proxy); + return p; +} + +static void +cb_media_player2_player_rate(void *data, const EDBus_Message *msg, EDBus_Pending *pending) +{ + void *user_data = edbus_pending_data_del(pending, "__user_data"); + const char *error, *error_msg; + EDBus_Codegen_Property_Double_Get_Cb cb = data; + EDBus_Proxy *proxy = edbus_pending_data_del(pending, "__proxy"); + EDBus_Message_Iter *variant; + double v; + if (edbus_message_error_get(msg, &error, &error_msg)) + { + EDBus_Error_Info error_info = {error, error_msg}; + cb(user_data, pending, "Rate", proxy, &error_info, 0); + return; + } + if (!edbus_message_arguments_get(msg, "v", &variant)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "Rate", proxy, &error_info, 0); + return; + } + if (!edbus_message_iter_arguments_get(variant, "d", &v)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "Rate", proxy, &error_info, 0); + return; + } + cb(user_data, pending, "Rate", proxy, NULL, v); +} + +EDBus_Pending * +media_player2_player_rate_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Double_Get_Cb cb, const void *data) +{ + EDBus_Pending *p; + EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL); + p = edbus_proxy_property_get(proxy, "Rate", cb_media_player2_player_rate, cb); + if (data) + edbus_pending_data_set(p, "__user_data", data); + edbus_pending_data_set(p, "__proxy", proxy); + return p; +} + +static void +cb_media_player2_player_rate_set(void *data, const EDBus_Message *msg, EDBus_Pending *pending) +{ + const char *error, *error_msg; + void *user_data = edbus_pending_data_del(pending, "__user_data"); + EDBus_Proxy *proxy = edbus_pending_data_del(pending, "__proxy"); + EDBus_Codegen_Property_Set_Cb cb = data; + if (edbus_message_error_get(msg, &error, &error_msg)) { + EDBus_Error_Info error_info = {error, error_msg}; + + cb(user_data, "Rate", proxy, pending, &error_info); + return; + } + cb(user_data, "Rate", proxy, pending, NULL); +} + +EDBus_Pending * +media_player2_player_rate_propset(EDBus_Proxy *proxy, EDBus_Codegen_Property_Set_Cb cb, const void *data, const void *value) +{ + EDBus_Pending *p; + EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL); + EINA_SAFETY_ON_NULL_RETURN_VAL(value, NULL); + p = edbus_proxy_property_set(proxy, "Rate", "d", value, cb_media_player2_player_rate_set, data); + edbus_pending_data_set(p, "__user_data", data); + edbus_pending_data_set(p, "__proxy", proxy); + return p; +} + +static void +cb_media_player2_player_shuffle(void *data, const EDBus_Message *msg, EDBus_Pending *pending) +{ + void *user_data = edbus_pending_data_del(pending, "__user_data"); + const char *error, *error_msg; + EDBus_Codegen_Property_Bool_Get_Cb cb = data; + EDBus_Proxy *proxy = edbus_pending_data_del(pending, "__proxy"); + EDBus_Message_Iter *variant; + Eina_Bool v; + if (edbus_message_error_get(msg, &error, &error_msg)) + { + EDBus_Error_Info error_info = {error, error_msg}; + cb(user_data, pending, "Shuffle", proxy, &error_info, 0); + return; + } + if (!edbus_message_arguments_get(msg, "v", &variant)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "Shuffle", proxy, &error_info, 0); + return; + } + if (!edbus_message_iter_arguments_get(variant, "b", &v)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "Shuffle", proxy, &error_info, 0); + return; + } + cb(user_data, pending, "Shuffle", proxy, NULL, v); +} + +EDBus_Pending * +media_player2_player_shuffle_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Bool_Get_Cb cb, const void *data) +{ + EDBus_Pending *p; + EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL); + p = edbus_proxy_property_get(proxy, "Shuffle", cb_media_player2_player_shuffle, cb); + if (data) + edbus_pending_data_set(p, "__user_data", data); + edbus_pending_data_set(p, "__proxy", proxy); + return p; +} + +static void +cb_media_player2_player_shuffle_set(void *data, const EDBus_Message *msg, EDBus_Pending *pending) +{ + const char *error, *error_msg; + void *user_data = edbus_pending_data_del(pending, "__user_data"); + EDBus_Proxy *proxy = edbus_pending_data_del(pending, "__proxy"); + EDBus_Codegen_Property_Set_Cb cb = data; + if (edbus_message_error_get(msg, &error, &error_msg)) { + EDBus_Error_Info error_info = {error, error_msg}; + + cb(user_data, "Shuffle", proxy, pending, &error_info); + return; + } + cb(user_data, "Shuffle", proxy, pending, NULL); +} + +EDBus_Pending * +media_player2_player_shuffle_propset(EDBus_Proxy *proxy, EDBus_Codegen_Property_Set_Cb cb, const void *data, const void *value) +{ + EDBus_Pending *p; + EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL); + EINA_SAFETY_ON_NULL_RETURN_VAL(value, NULL); + p = edbus_proxy_property_set(proxy, "Shuffle", "b", value, cb_media_player2_player_shuffle_set, data); + edbus_pending_data_set(p, "__user_data", data); + edbus_pending_data_set(p, "__proxy", proxy); + return p; +} + +static void +cb_media_player2_player_volume(void *data, const EDBus_Message *msg, EDBus_Pending *pending) +{ + void *user_data = edbus_pending_data_del(pending, "__user_data"); + const char *error, *error_msg; + EDBus_Codegen_Property_Double_Get_Cb cb = data; + EDBus_Proxy *proxy = edbus_pending_data_del(pending, "__proxy"); + EDBus_Message_Iter *variant; + double v; + if (edbus_message_error_get(msg, &error, &error_msg)) + { + EDBus_Error_Info error_info = {error, error_msg}; + cb(user_data, pending, "Volume", proxy, &error_info, 0); + return; + } + if (!edbus_message_arguments_get(msg, "v", &variant)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "Volume", proxy, &error_info, 0); + return; + } + if (!edbus_message_iter_arguments_get(variant, "d", &v)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "Volume", proxy, &error_info, 0); + return; + } + cb(user_data, pending, "Volume", proxy, NULL, v); +} + +EDBus_Pending * +media_player2_player_volume_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Double_Get_Cb cb, const void *data) +{ + EDBus_Pending *p; + EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL); + p = edbus_proxy_property_get(proxy, "Volume", cb_media_player2_player_volume, cb); + if (data) + edbus_pending_data_set(p, "__user_data", data); + edbus_pending_data_set(p, "__proxy", proxy); + return p; +} + +static void +cb_media_player2_player_volume_set(void *data, const EDBus_Message *msg, EDBus_Pending *pending) +{ + const char *error, *error_msg; + void *user_data = edbus_pending_data_del(pending, "__user_data"); + EDBus_Proxy *proxy = edbus_pending_data_del(pending, "__proxy"); + EDBus_Codegen_Property_Set_Cb cb = data; + if (edbus_message_error_get(msg, &error, &error_msg)) { + EDBus_Error_Info error_info = {error, error_msg}; + + cb(user_data, "Volume", proxy, pending, &error_info); + return; + } + cb(user_data, "Volume", proxy, pending, NULL); +} + +EDBus_Pending * +media_player2_player_volume_propset(EDBus_Proxy *proxy, EDBus_Codegen_Property_Set_Cb cb, const void *data, const void *value) +{ + EDBus_Pending *p; + EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL); + EINA_SAFETY_ON_NULL_RETURN_VAL(value, NULL); + p = edbus_proxy_property_set(proxy, "Volume", "d", value, cb_media_player2_player_volume_set, data); + edbus_pending_data_set(p, "__user_data", data); + edbus_pending_data_set(p, "__proxy", proxy); + return p; +} + +void +media_player2_player_log_domain_set(int id) +{ + _log_main = id; +} + +void +media_player2_player_proxy_unref(EDBus_Proxy *proxy) +{ + EDBus_Object *obj = edbus_proxy_object_get(proxy); + edbus_proxy_unref(proxy); + edbus_object_unref(obj); +} + +EDBus_Proxy * +media_player2_player_proxy_get(EDBus_Connection *conn, const char *bus, const char *path) +{ + EDBus_Object *obj; + EDBus_Proxy *proxy; + EINA_SAFETY_ON_NULL_RETURN_VAL(conn, NULL); + EINA_SAFETY_ON_NULL_RETURN_VAL(bus, NULL); + if (!path) path = "/org/mpris/MediaPlayer2"; + obj = edbus_object_get(conn, bus, path); + proxy = edbus_proxy_get(obj, "org.mpris.MediaPlayer2.Player"); + edbus_proxy_signal_handler_add(proxy, "Seeked", on_media_player2_player_seeked, proxy); + if (!MEDIA_PLAYER2_PLAYER_SEEKED_EVENT) + MEDIA_PLAYER2_PLAYER_SEEKED_EVENT = ecore_event_type_new(); + return proxy; +} diff --git a/src/modules/music-control/gen/edbus_media_player2_player.h b/src/modules/music-control/gen/edbus_media_player2_player.h new file mode 100644 index 000000000..5f824b7e4 --- /dev/null +++ b/src/modules/music-control/gen/edbus_media_player2_player.h @@ -0,0 +1,47 @@ +#ifndef EDBUS_MEDIA_PLAYER2_PLAYER_H +#define EDBUS_MEDIA_PLAYER2_PLAYER_H + +#include +#include +#include +#include "edbus_utils.h" + +EDBus_Proxy *media_player2_player_proxy_get(EDBus_Connection *conn, const char *bus, const char *path); +void media_player2_player_proxy_unref(EDBus_Proxy *proxy); +void media_player2_player_log_domain_set(int id); +void media_player2_player_next_call(EDBus_Proxy *proxy); +void media_player2_player_open_uri_call(EDBus_Proxy *proxy, const char *arg0); +void media_player2_player_pause_call(EDBus_Proxy *proxy); +void media_player2_player_play_call(EDBus_Proxy *proxy); +void media_player2_player_play_pause_call(EDBus_Proxy *proxy); +void media_player2_player_previous_call(EDBus_Proxy *proxy); +void media_player2_player_seek_call(EDBus_Proxy *proxy, int64_t arg0); +void media_player2_player_set_position_call(EDBus_Proxy *proxy, const char *arg0, int64_t arg1); +void media_player2_player_stop_call(EDBus_Proxy *proxy); +extern int MEDIA_PLAYER2_PLAYER_SEEKED_EVENT; +typedef struct _Media_Player2_Player_Seeked_Data +{ + EDBus_Proxy *proxy; + int64_t arg0; +} Media_Player2_Player_Seeked_Data; +EDBus_Pending *media_player2_player_can_control_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Bool_Get_Cb cb, const void *data); +EDBus_Pending *media_player2_player_can_go_next_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Bool_Get_Cb cb, const void *data); +EDBus_Pending *media_player2_player_can_go_previous_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Bool_Get_Cb cb, const void *data); +EDBus_Pending *media_player2_player_can_pause_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Bool_Get_Cb cb, const void *data); +EDBus_Pending *media_player2_player_can_play_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Bool_Get_Cb cb, const void *data); +EDBus_Pending *media_player2_player_can_seek_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Bool_Get_Cb cb, const void *data); +EDBus_Pending *media_player2_player_loop_status_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_String_Get_Cb cb, const void *data); +EDBus_Pending *media_player2_player_loop_status_propset(EDBus_Proxy *proxy, EDBus_Codegen_Property_Set_Cb cb, const void *data, const void *value); +EDBus_Pending *media_player2_player_maximum_rate_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Double_Get_Cb cb, const void *data); +EDBus_Pending *media_player2_player_metadata_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Complex_Get_Cb cb, const void *data); +EDBus_Pending *media_player2_player_minimum_rate_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Double_Get_Cb cb, const void *data); +EDBus_Pending *media_player2_player_playback_status_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_String_Get_Cb cb, const void *data); +EDBus_Pending *media_player2_player_position_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Int64_Get_Cb cb, const void *data); +EDBus_Pending *media_player2_player_rate_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Double_Get_Cb cb, const void *data); +EDBus_Pending *media_player2_player_rate_propset(EDBus_Proxy *proxy, EDBus_Codegen_Property_Set_Cb cb, const void *data, const void *value); +EDBus_Pending *media_player2_player_shuffle_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Bool_Get_Cb cb, const void *data); +EDBus_Pending *media_player2_player_shuffle_propset(EDBus_Proxy *proxy, EDBus_Codegen_Property_Set_Cb cb, const void *data, const void *value); +EDBus_Pending *media_player2_player_volume_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Double_Get_Cb cb, const void *data); +EDBus_Pending *media_player2_player_volume_propset(EDBus_Proxy *proxy, EDBus_Codegen_Property_Set_Cb cb, const void *data, const void *value); + +#endif \ No newline at end of file diff --git a/src/modules/music-control/gen/edbus_mpris_media_player2.c b/src/modules/music-control/gen/edbus_mpris_media_player2.c new file mode 100644 index 000000000..791252453 --- /dev/null +++ b/src/modules/music-control/gen/edbus_mpris_media_player2.c @@ -0,0 +1,350 @@ +#include "edbus_mpris_media_player2.h" + +static int _log_main = -1; +#undef ERR +#define ERR(...) EINA_LOG_DOM_ERR(_log_main, __VA_ARGS__); + +void +mpris_media_player2_quit_call(EDBus_Proxy *proxy) +{ + EDBus_Message *msg; + EINA_SAFETY_ON_NULL_RETURN(proxy); + msg = edbus_proxy_method_call_new(proxy, "Quit"); + if (!edbus_message_arguments_append(msg, "")) + { + ERR("Error: Filling message."); + return; + } + edbus_proxy_send(proxy, msg, NULL, NULL, -1); +} + +void +mpris_media_player2_raise_call(EDBus_Proxy *proxy) +{ + EDBus_Message *msg; + EINA_SAFETY_ON_NULL_RETURN(proxy); + msg = edbus_proxy_method_call_new(proxy, "Raise"); + if (!edbus_message_arguments_append(msg, "")) + { + ERR("Error: Filling message."); + return; + } + edbus_proxy_send(proxy, msg, NULL, NULL, -1); +} + +static void +cb_mpris_media_player2_can_quit(void *data, const EDBus_Message *msg, EDBus_Pending *pending) +{ + void *user_data = edbus_pending_data_del(pending, "__user_data"); + const char *error, *error_msg; + EDBus_Codegen_Property_Bool_Get_Cb cb = data; + EDBus_Proxy *proxy = edbus_pending_data_del(pending, "__proxy"); + EDBus_Message_Iter *variant; + Eina_Bool v; + if (edbus_message_error_get(msg, &error, &error_msg)) + { + EDBus_Error_Info error_info = {error, error_msg}; + cb(user_data, pending, "CanQuit", proxy, &error_info, 0); + return; + } + if (!edbus_message_arguments_get(msg, "v", &variant)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "CanQuit", proxy, &error_info, 0); + return; + } + if (!edbus_message_iter_arguments_get(variant, "b", &v)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "CanQuit", proxy, &error_info, 0); + return; + } + cb(user_data, pending, "CanQuit", proxy, NULL, v); +} + +EDBus_Pending * +mpris_media_player2_can_quit_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Bool_Get_Cb cb, const void *data) +{ + EDBus_Pending *p; + EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL); + p = edbus_proxy_property_get(proxy, "CanQuit", cb_mpris_media_player2_can_quit, cb); + if (data) + edbus_pending_data_set(p, "__user_data", data); + edbus_pending_data_set(p, "__proxy", proxy); + return p; +} + +static void +cb_mpris_media_player2_can_raise(void *data, const EDBus_Message *msg, EDBus_Pending *pending) +{ + void *user_data = edbus_pending_data_del(pending, "__user_data"); + const char *error, *error_msg; + EDBus_Codegen_Property_Bool_Get_Cb cb = data; + EDBus_Proxy *proxy = edbus_pending_data_del(pending, "__proxy"); + EDBus_Message_Iter *variant; + Eina_Bool v; + if (edbus_message_error_get(msg, &error, &error_msg)) + { + EDBus_Error_Info error_info = {error, error_msg}; + cb(user_data, pending, "CanRaise", proxy, &error_info, 0); + return; + } + if (!edbus_message_arguments_get(msg, "v", &variant)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "CanRaise", proxy, &error_info, 0); + return; + } + if (!edbus_message_iter_arguments_get(variant, "b", &v)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "CanRaise", proxy, &error_info, 0); + return; + } + cb(user_data, pending, "CanRaise", proxy, NULL, v); +} + +EDBus_Pending * +mpris_media_player2_can_raise_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Bool_Get_Cb cb, const void *data) +{ + EDBus_Pending *p; + EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL); + p = edbus_proxy_property_get(proxy, "CanRaise", cb_mpris_media_player2_can_raise, cb); + if (data) + edbus_pending_data_set(p, "__user_data", data); + edbus_pending_data_set(p, "__proxy", proxy); + return p; +} + +static void +cb_mpris_media_player2_desktop_entry(void *data, const EDBus_Message *msg, EDBus_Pending *pending) +{ + void *user_data = edbus_pending_data_del(pending, "__user_data"); + const char *error, *error_msg; + EDBus_Codegen_Property_String_Get_Cb cb = data; + EDBus_Proxy *proxy = edbus_pending_data_del(pending, "__proxy"); + EDBus_Message_Iter *variant; + const char *v; + if (edbus_message_error_get(msg, &error, &error_msg)) + { + EDBus_Error_Info error_info = {error, error_msg}; + cb(user_data, pending, "DesktopEntry", proxy, &error_info, NULL); + return; + } + if (!edbus_message_arguments_get(msg, "v", &variant)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "DesktopEntry", proxy, &error_info, NULL); + return; + } + if (!edbus_message_iter_arguments_get(variant, "s", &v)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "DesktopEntry", proxy, &error_info, NULL); + return; + } + cb(user_data, pending, "DesktopEntry", proxy, NULL, v); +} + +EDBus_Pending * +mpris_media_player2_desktop_entry_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_String_Get_Cb cb, const void *data) +{ + EDBus_Pending *p; + EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL); + p = edbus_proxy_property_get(proxy, "DesktopEntry", cb_mpris_media_player2_desktop_entry, cb); + if (data) + edbus_pending_data_set(p, "__user_data", data); + edbus_pending_data_set(p, "__proxy", proxy); + return p; +} + +static void +cb_mpris_media_player2_has_track_list(void *data, const EDBus_Message *msg, EDBus_Pending *pending) +{ + void *user_data = edbus_pending_data_del(pending, "__user_data"); + const char *error, *error_msg; + EDBus_Codegen_Property_Bool_Get_Cb cb = data; + EDBus_Proxy *proxy = edbus_pending_data_del(pending, "__proxy"); + EDBus_Message_Iter *variant; + Eina_Bool v; + if (edbus_message_error_get(msg, &error, &error_msg)) + { + EDBus_Error_Info error_info = {error, error_msg}; + cb(user_data, pending, "HasTrackList", proxy, &error_info, 0); + return; + } + if (!edbus_message_arguments_get(msg, "v", &variant)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "HasTrackList", proxy, &error_info, 0); + return; + } + if (!edbus_message_iter_arguments_get(variant, "b", &v)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "HasTrackList", proxy, &error_info, 0); + return; + } + cb(user_data, pending, "HasTrackList", proxy, NULL, v); +} + +EDBus_Pending * +mpris_media_player2_has_track_list_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Bool_Get_Cb cb, const void *data) +{ + EDBus_Pending *p; + EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL); + p = edbus_proxy_property_get(proxy, "HasTrackList", cb_mpris_media_player2_has_track_list, cb); + if (data) + edbus_pending_data_set(p, "__user_data", data); + edbus_pending_data_set(p, "__proxy", proxy); + return p; +} + +static void +cb_mpris_media_player2_identity(void *data, const EDBus_Message *msg, EDBus_Pending *pending) +{ + void *user_data = edbus_pending_data_del(pending, "__user_data"); + const char *error, *error_msg; + EDBus_Codegen_Property_String_Get_Cb cb = data; + EDBus_Proxy *proxy = edbus_pending_data_del(pending, "__proxy"); + EDBus_Message_Iter *variant; + const char *v; + if (edbus_message_error_get(msg, &error, &error_msg)) + { + EDBus_Error_Info error_info = {error, error_msg}; + cb(user_data, pending, "Identity", proxy, &error_info, NULL); + return; + } + if (!edbus_message_arguments_get(msg, "v", &variant)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "Identity", proxy, &error_info, NULL); + return; + } + if (!edbus_message_iter_arguments_get(variant, "s", &v)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "Identity", proxy, &error_info, NULL); + return; + } + cb(user_data, pending, "Identity", proxy, NULL, v); +} + +EDBus_Pending * +mpris_media_player2_identity_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_String_Get_Cb cb, const void *data) +{ + EDBus_Pending *p; + EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL); + p = edbus_proxy_property_get(proxy, "Identity", cb_mpris_media_player2_identity, cb); + if (data) + edbus_pending_data_set(p, "__user_data", data); + edbus_pending_data_set(p, "__proxy", proxy); + return p; +} + +static void +cb_mpris_media_player2_supported_mime_types(void *data, const EDBus_Message *msg, EDBus_Pending *pending) +{ + void *user_data = edbus_pending_data_del(pending, "__user_data"); + const char *error, *error_msg; + EDBus_Codegen_Property_Complex_Get_Cb cb = data; + EDBus_Proxy *proxy = edbus_pending_data_del(pending, "__proxy"); + EDBus_Message_Iter *variant; + Eina_Value *v, stack_value; + if (edbus_message_error_get(msg, &error, &error_msg)) + { + EDBus_Error_Info error_info = {error, error_msg}; + cb(user_data, pending, "SupportedMimeTypes", proxy, &error_info, NULL); + return; + } + if (!edbus_message_arguments_get(msg, "v", &variant)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "SupportedMimeTypes", proxy, &error_info, NULL); + return; + } + v = edbus_message_iter_struct_like_to_eina_value(variant); + eina_value_struct_value_get(v, "arg0", &stack_value); + cb(user_data, pending, "SupportedMimeTypes", proxy, NULL, &stack_value); + eina_value_flush(&stack_value); + eina_value_free(v); +} + +EDBus_Pending * +mpris_media_player2_supported_mime_types_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Complex_Get_Cb cb, const void *data) +{ + EDBus_Pending *p; + EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL); + p = edbus_proxy_property_get(proxy, "SupportedMimeTypes", cb_mpris_media_player2_supported_mime_types, cb); + if (data) + edbus_pending_data_set(p, "__user_data", data); + edbus_pending_data_set(p, "__proxy", proxy); + return p; +} + +static void +cb_mpris_media_player2_supported_uri_schemes(void *data, const EDBus_Message *msg, EDBus_Pending *pending) +{ + void *user_data = edbus_pending_data_del(pending, "__user_data"); + const char *error, *error_msg; + EDBus_Codegen_Property_Complex_Get_Cb cb = data; + EDBus_Proxy *proxy = edbus_pending_data_del(pending, "__proxy"); + EDBus_Message_Iter *variant; + Eina_Value *v, stack_value; + if (edbus_message_error_get(msg, &error, &error_msg)) + { + EDBus_Error_Info error_info = {error, error_msg}; + cb(user_data, pending, "SupportedUriSchemes", proxy, &error_info, NULL); + return; + } + if (!edbus_message_arguments_get(msg, "v", &variant)) + { + EDBus_Error_Info error_info = {"", ""}; + cb(user_data, pending, "SupportedUriSchemes", proxy, &error_info, NULL); + return; + } + v = edbus_message_iter_struct_like_to_eina_value(variant); + eina_value_struct_value_get(v, "arg0", &stack_value); + cb(user_data, pending, "SupportedUriSchemes", proxy, NULL, &stack_value); + eina_value_flush(&stack_value); + eina_value_free(v); +} + +EDBus_Pending * +mpris_media_player2_supported_uri_schemes_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Complex_Get_Cb cb, const void *data) +{ + EDBus_Pending *p; + EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL); + p = edbus_proxy_property_get(proxy, "SupportedUriSchemes", cb_mpris_media_player2_supported_uri_schemes, cb); + if (data) + edbus_pending_data_set(p, "__user_data", data); + edbus_pending_data_set(p, "__proxy", proxy); + return p; +} + +void +mpris_media_player2_log_domain_set(int id) +{ + _log_main = id; +} + +void +mpris_media_player2_proxy_unref(EDBus_Proxy *proxy) +{ + EDBus_Object *obj = edbus_proxy_object_get(proxy); + edbus_proxy_unref(proxy); + edbus_object_unref(obj); +} + +EDBus_Proxy * +mpris_media_player2_proxy_get(EDBus_Connection *conn, const char *bus, const char *path) +{ + EDBus_Object *obj; + EDBus_Proxy *proxy; + EINA_SAFETY_ON_NULL_RETURN_VAL(conn, NULL); + EINA_SAFETY_ON_NULL_RETURN_VAL(bus, NULL); + if (!path) path = "/org/mpris/MediaPlayer2"; + obj = edbus_object_get(conn, bus, path); + proxy = edbus_proxy_get(obj, "org.mpris.MediaPlayer2"); + return proxy; +} diff --git a/src/modules/music-control/gen/edbus_mpris_media_player2.h b/src/modules/music-control/gen/edbus_mpris_media_player2.h new file mode 100644 index 000000000..e953a7dbe --- /dev/null +++ b/src/modules/music-control/gen/edbus_mpris_media_player2.h @@ -0,0 +1,22 @@ +#ifndef EDBUS_MPRIS_MEDIA_PLAYER2_H +#define EDBUS_MPRIS_MEDIA_PLAYER2_H + +#include +#include +#include +#include "edbus_utils.h" + +EDBus_Proxy *mpris_media_player2_proxy_get(EDBus_Connection *conn, const char *bus, const char *path); +void mpris_media_player2_proxy_unref(EDBus_Proxy *proxy); +void mpris_media_player2_log_domain_set(int id); +void mpris_media_player2_quit_call(EDBus_Proxy *proxy); +void mpris_media_player2_raise_call(EDBus_Proxy *proxy); +EDBus_Pending *mpris_media_player2_can_quit_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Bool_Get_Cb cb, const void *data); +EDBus_Pending *mpris_media_player2_can_raise_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Bool_Get_Cb cb, const void *data); +EDBus_Pending *mpris_media_player2_desktop_entry_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_String_Get_Cb cb, const void *data); +EDBus_Pending *mpris_media_player2_has_track_list_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Bool_Get_Cb cb, const void *data); +EDBus_Pending *mpris_media_player2_identity_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_String_Get_Cb cb, const void *data); +EDBus_Pending *mpris_media_player2_supported_mime_types_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Complex_Get_Cb cb, const void *data); +EDBus_Pending *mpris_media_player2_supported_uri_schemes_propget(EDBus_Proxy *proxy, EDBus_Codegen_Property_Complex_Get_Cb cb, const void *data); + +#endif \ No newline at end of file diff --git a/src/modules/music-control/gen/edbus_utils.h b/src/modules/music-control/gen/edbus_utils.h new file mode 100644 index 000000000..e3df56156 --- /dev/null +++ b/src/modules/music-control/gen/edbus_utils.h @@ -0,0 +1,24 @@ +#ifndef EDBUS_UTILS_H +#define EDBUS_UTILS_H 1 + +typedef struct _EDBus_Error_Info +{ + const char *error; + const char *message; +} EDBus_Error_Info; + +typedef void (*EDBus_Codegen_Property_Set_Cb)(void *data, const char *propname, EDBus_Proxy *proxy, EDBus_Pending *p, EDBus_Error_Info *error_info); + +typedef void (*EDBus_Codegen_Property_String_Get_Cb)(void *data, EDBus_Pending *p, const char *propname, EDBus_Proxy *proxy, EDBus_Error_Info *error_info, const char *value); +typedef void (*EDBus_Codegen_Property_Int32_Get_Cb)(void *data, EDBus_Pending *p, const char *propname, EDBus_Proxy *proxy, EDBus_Error_Info *error_info, int value); +typedef void (*EDBus_Codegen_Property_Byte_Get_Cb)(void *data, EDBus_Pending *p, const char *propname, EDBus_Proxy *proxy, EDBus_Error_Info *error_info, unsigned char value); +typedef void (*EDBus_Codegen_Property_Bool_Get_Cb)(void *data, EDBus_Pending *p, const char *propname, EDBus_Proxy *proxy, EDBus_Error_Info *error_info, Eina_Bool value); +typedef void (*EDBus_Codegen_Property_Int16_Get_Cb)(void *data, EDBus_Pending *p, const char *propname, EDBus_Proxy *proxy, EDBus_Error_Info *error_info, short int value); +typedef void (*EDBus_Codegen_Property_Uint16_Get_Cb)(void *data, EDBus_Pending *p, const char *propname, EDBus_Proxy *proxy, EDBus_Error_Info *error_info, unsigned short int value); +typedef void (*EDBus_Codegen_Property_Uint32_Get_Cb)(void *data, EDBus_Pending *p, const char *propname, EDBus_Proxy *proxy, EDBus_Error_Info *error_info, unsigned int value); +typedef void (*EDBus_Codegen_Property_Double_Get_Cb)(void *data, EDBus_Pending *p, const char *propname, EDBus_Proxy *proxy, EDBus_Error_Info *error_info, double value); +typedef void (*EDBus_Codegen_Property_Int64_Get_Cb)(void *data, EDBus_Pending *p, const char *propname, EDBus_Proxy *proxy, EDBus_Error_Info *error_info, int64_t value); +typedef void (*EDBus_Codegen_Property_Uint64_Get_Cb)(void *data, EDBus_Pending *p, const char *propname, EDBus_Proxy *proxy, EDBus_Error_Info *error_info, uint64_t value); +typedef void (*EDBus_Codegen_Property_Complex_Get_Cb)(void *data, EDBus_Pending *p, const char *propname, EDBus_Proxy *proxy, EDBus_Error_Info *error_info, Eina_Value *value); + +#endif \ No newline at end of file diff --git a/src/modules/music-control/gen/introspect.xml b/src/modules/music-control/gen/introspect.xml new file mode 100644 index 000000000..7a12476a5 --- /dev/null +++ b/src/modules/music-control/gen/introspect.xml @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +