summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorGravatar Alexey Yakovenko <wakeroid@gmail.com>2010-03-27 12:57:47 +0100
committerGravatar Alexey Yakovenko <wakeroid@gmail.com>2010-03-27 12:57:47 +0100
commitd6b3275ebf1240c8c626c98eb72ca03bdc06155a (patch)
treef17b08d467d60bd2801adeb542038266ad653ff9 /plugins
parent1cb26a729dab5ec1c35b7e78e4f52069b917ad73 (diff)
taglib plugin prototype
Diffstat (limited to 'plugins')
-rw-r--r--plugins/taglib/Makefile.am8
-rw-r--r--plugins/taglib/taglib.c53
-rw-r--r--plugins/taglib/taglib.h43
3 files changed, 104 insertions, 0 deletions
diff --git a/plugins/taglib/Makefile.am b/plugins/taglib/Makefile.am
new file mode 100644
index 00000000..76485739
--- /dev/null
+++ b/plugins/taglib/Makefile.am
@@ -0,0 +1,8 @@
+taglibdir = $(libdir)/$(PACKAGE)
+pkglib_LTLIBRARIES = taglib.la
+taglib_la_SOURCES = taglib.c
+
+taglib_la_LDFLAGS = -module
+
+taglib_la_LIBADD = $(LDADD) $(TAGLIB_DEPS_LIBS)
+AM_CFLAGS = -std=c99 $(TAGLIB_DEPS_CFLAGS)
diff --git a/plugins/taglib/taglib.c b/plugins/taglib/taglib.c
new file mode 100644
index 00000000..b260ad2d
--- /dev/null
+++ b/plugins/taglib/taglib.c
@@ -0,0 +1,53 @@
+/*
+ DeaDBeeF - ultimate music player for GNU/Linux systems with X11
+ Copyright (C) 2009-2010 Alexey Yakovenko <waker@users.sourceforge.net>
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+#include <tag_c.h>
+#include "../../deadbeef.h"
+#include "taglib.h"
+
+DB_functions_t *deadbeef;
+
+int
+taglib_plugin_start (void) {
+ return 0;
+}
+
+int
+taglib_plugin_stop (void) {
+ return 0;
+}
+
+static DB_taglib_t plugin = {
+ .misc.plugin.api_vmajor = DB_API_VERSION_MAJOR,
+ .misc.plugin.api_vminor = DB_API_VERSION_MINOR,
+ .misc.plugin.type = DB_PLUGIN_MISC,
+ .misc.plugin.id = "taglib",
+ .misc.plugin.name = "Taglib tag writer",
+ .misc.plugin.descr = "Tag writing plugin based on Taglib",
+ .misc.plugin.author = "Alexey Yakovenko",
+ .misc.plugin.email = "waker@users.sourceforge.net",
+ .misc.plugin.website = "http://deadbeef.sf.net",
+ .misc.plugin.start = taglib_plugin_start,
+ .misc.plugin.stop = taglib_plugin_stop,
+};
+
+DB_plugin_t *
+taglib_load (DB_functions_t *api) {
+ deadbeef = api;
+ return DB_PLUGIN (&plugin);
+}
diff --git a/plugins/taglib/taglib.h b/plugins/taglib/taglib.h
new file mode 100644
index 00000000..f887ec64
--- /dev/null
+++ b/plugins/taglib/taglib.h
@@ -0,0 +1,43 @@
+/*
+ DeaDBeeF - ultimate music player for GNU/Linux systems with X11
+ Copyright (C) 2009-2010 Alexey Yakovenko <waker@users.sourceforge.net>
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+#ifndef __TAGLIB_H
+#define __TAGLIB_H
+
+typedef void * DB_taglib_file_t;
+
+typedef struct DB_taglib_s {
+ DB_misc_t misc;
+ DB_taglib_file_t (*open) (const char *fname);
+ int (*write) (DB_taglib_file_t file);
+ void (*close) (DB_taglib_file_t file);
+ void (*set_artist) (DB_taglib_file_t file);
+ void (*set_album_artist) (DB_taglib_file_t file);
+ void (*set_title) (DB_taglib_file_t file);
+ void (*set_track_number) (DB_taglib_file_t file);
+ void (*set_album) (DB_taglib_file_t file);
+ void (*set_genre) (DB_taglib_file_t file);
+ void (*set_date) (DB_taglib_file_t file);
+ void (*set_performer) (DB_taglib_file_t file);
+ void (*set_composer) (DB_taglib_file_t file);
+ void (*set_total_tracks) (DB_taglib_file_t file);
+ void (*set_disc_number) (DB_taglib_file_t file);
+ void (*set_comment) (DB_taglib_file_t file);
+} DB_taglib_t;
+
+#endif