From cccbe1188021ac4f7cbba7ee26d297448f29bbf3 Mon Sep 17 00:00:00 2001 From: Matt Ranostay Date: Tue, 16 May 2017 16:14:30 -0400 Subject: binding: add initial media binding Add initial media binding that populates playlist on media insertion Bug-AGL: SPEC-610 Change-Id: I24227f7c718606191ae3de72bd692e747353c919 Signed-off-by: Matt Ranostay --- mediaplayer-manager.h | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 mediaplayer-manager.h (limited to 'mediaplayer-manager.h') diff --git a/mediaplayer-manager.h b/mediaplayer-manager.h new file mode 100644 index 0000000..94f3d8f --- /dev/null +++ b/mediaplayer-manager.h @@ -0,0 +1,106 @@ +/* + * Copyright 2017 Konsulko Group + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef MEDIAPLAYER_MANAGER_H +#define MEDIAPLAYER_MANAGER_H + +#include +#include +#include + +#include "lightmediascanner_interface.h" +#include "udisks_interface.h" + + /* Debug Trace Level */ +#define DT_LEVEL_ERROR (1 << 1) +#define DT_LEVEL_WARNING (1 << 2) +#define DT_LEVEL_NOTICE (1 << 3) +#define DT_LEVEL_INFO (1 << 4) +#define DT_LEVEL_DEBUG (1 << 5) +//#define _DEBUG + +#define LOGE(fmt, args...) \ + DebugTraceSendMsg(DT_LEVEL_ERROR, g_strdup_printf("[%d:%s]" fmt, __LINE__, __FUNCTION__, ## args)) +#define LOGW(fmt, args...) \ + DebugTraceSendMsg(DT_LEVEL_WARNING, g_strdup_printf("[%d:%s]" fmt, __LINE__, __FUNCTION__, ## args)) +#define LOGN(fmt, args...) \ + DebugTraceSendMsg(DT_LEVEL_NOTICE, g_strdup_printf("[%d:%s]" fmt, __LINE__, __FUNCTION__, ## args)) +#define LOGI(fmt, args...) \ + DebugTraceSendMsg(DT_LEVEL_INFO, g_strdup_printf("[%d:%s]" fmt, __LINE__, __FUNCTION__, ## args)) +#define LOGD(fmt, args...) \ + DebugTraceSendMsg(DT_LEVEL_DEBUG, g_strdup_printf("[%d:%s]" fmt, __LINE__, __FUNCTION__, ## args)) + +#ifdef _DEBUG + #define _DEBUG_PRINT_DBUS + #define LOCAL_PRINT_DEBUG +#endif + +#ifdef LOCAL_PRINT_DEBUG +#define D_PRINTF(fmt, args...) \ + g_print("[DEBUG][%d:%s]"fmt, __LINE__, __FUNCTION__, ## args) +#define D_PRINTF_RAW(fmt, args...) \ + g_print(""fmt, ## args) +#else +#define D_PRINTF(fmt, args...) +#define D_PRINTF_RAW(fmt, args...) +#endif /* ifdef _DEBUG */ + +void DebugTraceSendMsg(int level, gchar* message); + +//service +#define AGENT_SERVICE "org.agent" + +//remote service +#define LIGHTMEDIASCANNER_SERVICE "org.lightmediascanner" +#define UDISKS_SERVICE "org.freedesktop.UDisks" + +//object path +#define LIGHTMEDIASCANNER_PATH "/org/lightmediascanner/Scanner1" +#define UDISKS_PATH "/org/freedesktop/UDisks" + +//interface +#define LIGHTMEDIASCANNER_INTERFACE "org.lightmediascanner.Scanner1" +#define UDISKS_INTERFACE "org.freedesktop.UDisks" +#define FREEDESKTOP_PROPERTIES "org.freedesktop.DBus.Properties" + +//sqlite +#define SQL_QUERY "SELECT files.path FROM files LEFT JOIN audios " \ + "WHERE audios.id = files.id ORDER BY " \ + "audios.artist_id, audios.album_id, audios.trackno" + +typedef struct { + GList *list; + GMutex m; + Scanner1 *lms_proxy; + OrgFreedesktopUDisks *udisks_proxy; +} stMediaPlayerManage; + +typedef struct tagBinding_RegisterCallback +{ + void (*binding_device_added)(GList *list); + void (*binding_device_removed)(const char *obj_path); +} Binding_RegisterCallback_t; + +/* ------ PUBLIC PLUGIN FUNCTIONS --------- */ +void BindingAPIRegister(const Binding_RegisterCallback_t* pstRegisterCallback); +int MediaPlayerManagerInit(void); + +void ListLock(); +void ListUnlock(); + +GList* media_lightmediascanner_scan(void); + +#endif -- cgit 1.2.3-korg