diff options
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/taglib/Makefile.am | 8 | ||||
-rw-r--r-- | plugins/taglib/taglib.c | 53 | ||||
-rw-r--r-- | plugins/taglib/taglib.h | 43 |
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 |