summaryrefslogtreecommitdiffstats
path: root/binding/afm-common.c
diff options
context:
space:
mode:
Diffstat (limited to 'binding/afm-common.c')
-rw-r--r--binding/afm-common.c80
1 files changed, 80 insertions, 0 deletions
diff --git a/binding/afm-common.c b/binding/afm-common.c
new file mode 100644
index 0000000..3f0f38e
--- /dev/null
+++ b/binding/afm-common.c
@@ -0,0 +1,80 @@
+/*
+ * Copyright (C) 2017 Konsulko Group
+ * Author: Matt Ranostay <matt.ranostay@konsulko.com>
+ *
+ * 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.
+ */
+
+#define _GNU_SOURCE
+
+#include "afm-common.h"
+
+const char *control_commands[] = {
+ "play",
+ "pause",
+ "previous",
+ "next",
+ "seek",
+ "fast-forward",
+ "rewind",
+ "pick-track",
+ "volume",
+};
+
+int get_command_index(const char *name)
+{
+ int i;
+
+ if (name == NULL)
+ return -EINVAL;
+
+ for (i = 0; i < NUM_CMDS; i++) {
+ if (!strcasecmp(control_commands[i], name))
+ return i;
+ }
+
+ return -EINVAL;
+}
+
+GList *find_media_index(GList *list, long int index)
+{
+ struct playlist_item *item;
+ GList *l;
+
+ for (l = list; l; l = l->next) {
+ item = l->data;
+
+ if (!item)
+ continue;
+
+ if (item->id == index)
+ return l;
+ }
+
+ return NULL;
+}
+
+void g_free_playlist_item(void *ptr)
+{
+ struct playlist_item *item = ptr;
+
+ if (ptr == NULL)
+ return;
+
+ g_free(item->title);
+ g_free(item->album);
+ g_free(item->artist);
+ g_free(item->genre);
+ g_free(item->media_path);
+ g_free(item);
+}