kfile_mp3 patch to support id3v2 tags

Malte Starostik malte at kde.org
Sun Oct 27 00:01:31 BST 2002


On Saturday 26 October 2002 12:37, Stefan Gehn wrote:
> Heya,
>
> On Freitag Oktober 25 2002 21:15, MadCoder wrote:
> > this use id3lib, thats why i needed to modify the Makefile.am
>
> It does not compile with any of debian-sid libid3-versions :(
>
> With both libid3-3.8.0 and libid3-3.7 I get the following and some more
> errors (probably because libid3 is still a POS and had its API changed
> 24385th time):
>
> kfile_mp3.cpp:180: no matching function for call to `ID3_Tag::Link
> (QString, ID3_TagType)'
> /usr/include/id3/tag.h:74: candidates are: size_t ID3_Tag::Link(const char
> *, short unsigned int = 65535)
Apparently you're compiling with stricter Qt flags than MadCoder. 
QString::operator const char*() only exists when compiling w/o 
-DQT_NO_CAST_ASCII. MadCoder, please don't use that operator (by passing a 
QString where a const char* is expected). To check so, add the above flag to 
your Makefile (makes me wonder, it should be there by default with KDE's 
build system).
There's also a more serious problem to this: what encoding is used by libid3? 
Is it UNICODE-clean? You'll have to use latin1() if it only works with latin1 
anyway, local8Bit() if it works only with 8bit strings but supports local 
charsets or utf8() if it supports UTF-8. Similarly for converting back from 
libid3's char* values to a QString. Otherwise your plugin will fail for 
non-latin1 users.

> With problems like this I'm against using libid3.
I can understand this feeling, but in this case it's not libid3's fault at 
all.
-Malte



More information about the kde-multimedia mailing list