diff options
Diffstat (limited to 'libs/taglib/bindings/c/tag_c.cpp')
-rw-r--r-- | libs/taglib/bindings/c/tag_c.cpp | 277 |
1 files changed, 0 insertions, 277 deletions
diff --git a/libs/taglib/bindings/c/tag_c.cpp b/libs/taglib/bindings/c/tag_c.cpp deleted file mode 100644 index 377d92c733..0000000000 --- a/libs/taglib/bindings/c/tag_c.cpp +++ /dev/null @@ -1,277 +0,0 @@ -/*************************************************************************** - copyright : (C) 2003 by Scott Wheeler - email : wheeler@kde.org - ***************************************************************************/ - -/*************************************************************************** - * This library is free software; you can redistribute it and/or modify * - * it under the terms of the GNU Lesser General Public License version * - * 2.1 as published by the Free Software Foundation. * - * * - * This library 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 * - * Lesser General Public License for more details. * - * * - * You should have received a copy of the GNU Lesser General Public * - * License along with this library; if not, write to the Free Software * - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * - * USA * - ***************************************************************************/ - -#include "tag_c.h" - -#include <stdlib.h> -#include <fileref.h> -#include <tfile.h> -#include <vorbisfile.h> -#include <mpegfile.h> -#include <flacfile.h> -#include <oggflacfile.h> -#include <mpcfile.h> -#include <wavpackfile.h> -#include <speexfile.h> -#include <trueaudiofile.h> -#include <tag.h> -#include <string.h> -#include <id3v2framefactory.h> - -using namespace TagLib; - -static List<char *> strings; -static bool unicodeStrings = true; -static bool stringManagementEnabled = true; - -void taglib_set_strings_unicode(BOOL unicode) -{ - unicodeStrings = bool(unicode); -} - -void taglib_set_string_management_enabled(BOOL management) -{ - stringManagementEnabled = bool(management); -} - -//////////////////////////////////////////////////////////////////////////////// -// TagLib::File wrapper -//////////////////////////////////////////////////////////////////////////////// - -TagLib_File *taglib_file_new(const char *filename) -{ - return reinterpret_cast<TagLib_File *>(FileRef::create(filename)); -} - -TagLib_File *taglib_file_new_type(const char *filename, TagLib_File_Type type) -{ - switch(type) { - case TagLib_File_MPEG: - return reinterpret_cast<TagLib_File *>(new MPEG::File(filename)); - case TagLib_File_OggVorbis: - return reinterpret_cast<TagLib_File *>(new Ogg::Vorbis::File(filename)); - case TagLib_File_FLAC: - return reinterpret_cast<TagLib_File *>(new FLAC::File(filename)); - case TagLib_File_MPC: - return reinterpret_cast<TagLib_File *>(new MPC::File(filename)); - case TagLib_File_OggFlac: - return reinterpret_cast<TagLib_File *>(new Ogg::FLAC::File(filename)); - case TagLib_File_WavPack: - return reinterpret_cast<TagLib_File *>(new WavPack::File(filename)); - case TagLib_File_Speex: - return reinterpret_cast<TagLib_File *>(new Ogg::Speex::File(filename)); - case TagLib_File_TrueAudio: - return reinterpret_cast<TagLib_File *>(new TrueAudio::File(filename)); - } - - return 0; -} - -void taglib_file_free(TagLib_File *file) -{ - delete reinterpret_cast<File *>(file); -} - -BOOL taglib_file_is_valid(const TagLib_File *file) -{ - return reinterpret_cast<const File *>(file)->isValid(); -} - -TagLib_Tag *taglib_file_tag(const TagLib_File *file) -{ - const File *f = reinterpret_cast<const File *>(file); - return reinterpret_cast<TagLib_Tag *>(f->tag()); -} - -const TagLib_AudioProperties *taglib_file_audioproperties(const TagLib_File *file) -{ - const File *f = reinterpret_cast<const File *>(file); - return reinterpret_cast<const TagLib_AudioProperties *>(f->audioProperties()); -} - -BOOL taglib_file_save(TagLib_File *file) -{ - return reinterpret_cast<File *>(file)->save(); -} - -//////////////////////////////////////////////////////////////////////////////// -// TagLib::Tag wrapper -//////////////////////////////////////////////////////////////////////////////// - -char *taglib_tag_title(const TagLib_Tag *tag) -{ - const Tag *t = reinterpret_cast<const Tag *>(tag); - char *s = ::strdup(t->title().toCString(unicodeStrings)); - if(stringManagementEnabled) - strings.append(s); - return s; -} - -char *taglib_tag_artist(const TagLib_Tag *tag) -{ - const Tag *t = reinterpret_cast<const Tag *>(tag); - char *s = ::strdup(t->artist().toCString(unicodeStrings)); - if(stringManagementEnabled) - strings.append(s); - return s; -} - -char *taglib_tag_album(const TagLib_Tag *tag) -{ - const Tag *t = reinterpret_cast<const Tag *>(tag); - char *s = ::strdup(t->album().toCString(unicodeStrings)); - if(stringManagementEnabled) - strings.append(s); - return s; -} - -char *taglib_tag_comment(const TagLib_Tag *tag) -{ - const Tag *t = reinterpret_cast<const Tag *>(tag); - char *s = ::strdup(t->comment().toCString(unicodeStrings)); - if(stringManagementEnabled) - strings.append(s); - return s; -} - -char *taglib_tag_genre(const TagLib_Tag *tag) -{ - const Tag *t = reinterpret_cast<const Tag *>(tag); - char *s = ::strdup(t->genre().toCString(unicodeStrings)); - if(stringManagementEnabled) - strings.append(s); - return s; -} - -unsigned int taglib_tag_year(const TagLib_Tag *tag) -{ - const Tag *t = reinterpret_cast<const Tag *>(tag); - return t->year(); -} - -unsigned int taglib_tag_track(const TagLib_Tag *tag) -{ - const Tag *t = reinterpret_cast<const Tag *>(tag); - return t->track(); -} - -void taglib_tag_set_title(TagLib_Tag *tag, const char *title) -{ - Tag *t = reinterpret_cast<Tag *>(tag); - t->setTitle(String(title, unicodeStrings ? String::UTF8 : String::Latin1)); -} - -void taglib_tag_set_artist(TagLib_Tag *tag, const char *artist) -{ - Tag *t = reinterpret_cast<Tag *>(tag); - t->setArtist(String(artist, unicodeStrings ? String::UTF8 : String::Latin1)); -} - -void taglib_tag_set_album(TagLib_Tag *tag, const char *album) -{ - Tag *t = reinterpret_cast<Tag *>(tag); - t->setAlbum(String(album, unicodeStrings ? String::UTF8 : String::Latin1)); -} - -void taglib_tag_set_comment(TagLib_Tag *tag, const char *comment) -{ - Tag *t = reinterpret_cast<Tag *>(tag); - t->setComment(String(comment, unicodeStrings ? String::UTF8 : String::Latin1)); -} - -void taglib_tag_set_genre(TagLib_Tag *tag, const char *genre) -{ - Tag *t = reinterpret_cast<Tag *>(tag); - t->setGenre(String(genre, unicodeStrings ? String::UTF8 : String::Latin1)); -} - -void taglib_tag_set_year(TagLib_Tag *tag, unsigned int year) -{ - Tag *t = reinterpret_cast<Tag *>(tag); - t->setYear(year); -} - -void taglib_tag_set_track(TagLib_Tag *tag, unsigned int track) -{ - Tag *t = reinterpret_cast<Tag *>(tag); - t->setTrack(track); -} - -void taglib_tag_free_strings() -{ - if(!stringManagementEnabled) - return; - - for(List<char *>::Iterator it = strings.begin(); it != strings.end(); ++it) - free(*it); - strings.clear(); -} - -//////////////////////////////////////////////////////////////////////////////// -// TagLib::AudioProperties wrapper -//////////////////////////////////////////////////////////////////////////////// - -int taglib_audioproperties_length(const TagLib_AudioProperties *audioProperties) -{ - const AudioProperties *p = reinterpret_cast<const AudioProperties *>(audioProperties); - return p->length(); -} - -int taglib_audioproperties_bitrate(const TagLib_AudioProperties *audioProperties) -{ - const AudioProperties *p = reinterpret_cast<const AudioProperties *>(audioProperties); - return p->bitrate(); -} - -int taglib_audioproperties_samplerate(const TagLib_AudioProperties *audioProperties) -{ - const AudioProperties *p = reinterpret_cast<const AudioProperties *>(audioProperties); - return p->sampleRate(); -} - -int taglib_audioproperties_channels(const TagLib_AudioProperties *audioProperties) -{ - const AudioProperties *p = reinterpret_cast<const AudioProperties *>(audioProperties); - return p->channels(); -} - -void taglib_id3v2_set_default_text_encoding(TagLib_ID3v2_Encoding encoding) -{ - String::Type type = String::Latin1; - - switch(encoding) - { - case TagLib_ID3v2_Latin1: - type = String::Latin1; - break; - case TagLib_ID3v2_UTF16: - type = String::UTF16; - break; - case TagLib_ID3v2_UTF16BE: - type = String::UTF16BE; - break; - case TagLib_ID3v2_UTF8: - type = String::UTF8; - break; - } - - ID3v2::FrameFactory::instance()->setDefaultTextEncoding(type); -} |