summaryrefslogtreecommitdiffstats
path: root/binding/mediaplayer-manager.h
diff options
context:
space:
mode:
authorMatt Ranostay <matt.ranostay@konsulko.com>2017-05-16 16:14:30 -0400
committerMatt Ranostay <matt.ranostay@konsulko.com>2017-06-02 22:28:18 -0700
commitb0f682b1579e520896ccd5492d6666d962a0c226 (patch)
tree159147561c294cd52de6d6c3b6e81c3186fedef6 /binding/mediaplayer-manager.h
parent535f2d051f965e9ee4a9c1eed13a8d0e997463e8 (diff)
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 <matt.ranostay@konsulko.com>
Diffstat (limited to 'binding/mediaplayer-manager.h')
-rw-r--r--binding/mediaplayer-manager.h106
1 files changed, 106 insertions, 0 deletions
diff --git a/binding/mediaplayer-manager.h b/binding/mediaplayer-manager.h
new file mode 100644
index 0000000..94f3d8f
--- /dev/null
+++ b/binding/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 <glib.h>
+#include <gio/gio.h>
+#include <glib-object.h>
+
+#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