Mercurial > audlegacy
annotate Plugins/Input/mpg123/id3_frame_url.c @ 228:08973a746a3e trunk
[svn] GCC2 fixes.
author | nenolod |
---|---|
date | Fri, 25 Nov 2005 23:14:41 -0800 |
parents | 539a0fa7f030 |
children | 18cb7405b5e9 |
rev | line source |
---|---|
61 | 1 /********************************************************************* |
2 * | |
3 * Copyright (C) 1999, 2001, 2002, | |
4 * Department of Computer Science, University of Tromsų | |
5 * | |
6 * Filename: id3_frame_url.c | |
7 * Description: Code for handling ID3 URL frames. | |
8 * Author: Espen Skoglund <espensk@stud.cs.uit.no> | |
9 * Created at: Tue Feb 9 21:10:45 1999 | |
10 * | |
11 * $Id: id3_frame_url.c,v 1.6 2004/07/20 21:47:22 descender Exp $ | |
12 * | |
13 * This program is free software; you can redistribute it and/or | |
14 * modify it under the terms of the GNU General Public License | |
15 * as published by the Free Software Foundation; either version 2 | |
16 * of the License, or (at your option) any later version. | |
17 * | |
18 * This program is distributed in the hope that it will be useful, | |
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
21 * GNU General Public License for more details. | |
22 * | |
23 * You should have received a copy of the GNU General Public License | |
24 * along with this program; if not, write to the Free Software | |
25 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
26 * | |
27 ********************************************************************/ | |
28 #include "config.h" | |
29 | |
30 #include "xmms-id3.h" | |
31 #include "id3_header.h" | |
32 | |
227
539a0fa7f030
[svn] Unicode support fixes, based on an XMMS patch written by Ilya Konstantinov. <ikonst@users.sourceforge.net>:
nenolod
parents:
61
diff
changeset
|
33 #include <string.h> |
61 | 34 |
35 /* | |
36 * Function id3_get_url (frame) | |
37 * | |
38 * Return URL of frame. | |
39 * | |
40 */ | |
41 char * | |
42 id3_get_url(struct id3_frame *frame) | |
43 { | |
44 /* Type check */ | |
227
539a0fa7f030
[svn] Unicode support fixes, based on an XMMS patch written by Ilya Konstantinov. <ikonst@users.sourceforge.net>:
nenolod
parents:
61
diff
changeset
|
45 if ( frame->fr_desc->fd_idstr[0] != 'W' ) |
539a0fa7f030
[svn] Unicode support fixes, based on an XMMS patch written by Ilya Konstantinov. <ikonst@users.sourceforge.net>:
nenolod
parents:
61
diff
changeset
|
46 return NULL; |
61 | 47 |
48 /* Check if frame is compressed */ | |
49 if (id3_decompress_frame(frame) == -1) | |
227
539a0fa7f030
[svn] Unicode support fixes, based on an XMMS patch written by Ilya Konstantinov. <ikonst@users.sourceforge.net>:
nenolod
parents:
61
diff
changeset
|
50 return NULL; |
539a0fa7f030
[svn] Unicode support fixes, based on an XMMS patch written by Ilya Konstantinov. <ikonst@users.sourceforge.net>:
nenolod
parents:
61
diff
changeset
|
51 |
539a0fa7f030
[svn] Unicode support fixes, based on an XMMS patch written by Ilya Konstantinov. <ikonst@users.sourceforge.net>:
nenolod
parents:
61
diff
changeset
|
52 ID3_FRAME_DEFINE_CURSOR(frame); |
539a0fa7f030
[svn] Unicode support fixes, based on an XMMS patch written by Ilya Konstantinov. <ikonst@users.sourceforge.net>:
nenolod
parents:
61
diff
changeset
|
53 |
539a0fa7f030
[svn] Unicode support fixes, based on an XMMS patch written by Ilya Konstantinov. <ikonst@users.sourceforge.net>:
nenolod
parents:
61
diff
changeset
|
54 if ( frame->fr_desc->fd_id == ID3_WXXX ) { |
539a0fa7f030
[svn] Unicode support fixes, based on an XMMS patch written by Ilya Konstantinov. <ikonst@users.sourceforge.net>:
nenolod
parents:
61
diff
changeset
|
55 /* |
539a0fa7f030
[svn] Unicode support fixes, based on an XMMS patch written by Ilya Konstantinov. <ikonst@users.sourceforge.net>:
nenolod
parents:
61
diff
changeset
|
56 * This is a user defined link frame. Skip the description. |
539a0fa7f030
[svn] Unicode support fixes, based on an XMMS patch written by Ilya Konstantinov. <ikonst@users.sourceforge.net>:
nenolod
parents:
61
diff
changeset
|
57 */ |
539a0fa7f030
[svn] Unicode support fixes, based on an XMMS patch written by Ilya Konstantinov. <ikonst@users.sourceforge.net>:
nenolod
parents:
61
diff
changeset
|
58 guint8 encoding; |
539a0fa7f030
[svn] Unicode support fixes, based on an XMMS patch written by Ilya Konstantinov. <ikonst@users.sourceforge.net>:
nenolod
parents:
61
diff
changeset
|
59 gsize description_size; |
539a0fa7f030
[svn] Unicode support fixes, based on an XMMS patch written by Ilya Konstantinov. <ikonst@users.sourceforge.net>:
nenolod
parents:
61
diff
changeset
|
60 |
539a0fa7f030
[svn] Unicode support fixes, based on an XMMS patch written by Ilya Konstantinov. <ikonst@users.sourceforge.net>:
nenolod
parents:
61
diff
changeset
|
61 ID3_FRAME_READ_OR_RETVAL(encoding, NULL); |
539a0fa7f030
[svn] Unicode support fixes, based on an XMMS patch written by Ilya Konstantinov. <ikonst@users.sourceforge.net>:
nenolod
parents:
61
diff
changeset
|
62 |
539a0fa7f030
[svn] Unicode support fixes, based on an XMMS patch written by Ilya Konstantinov. <ikonst@users.sourceforge.net>:
nenolod
parents:
61
diff
changeset
|
63 description_size = id3_string_size(encoding, cursor, length); |
539a0fa7f030
[svn] Unicode support fixes, based on an XMMS patch written by Ilya Konstantinov. <ikonst@users.sourceforge.net>:
nenolod
parents:
61
diff
changeset
|
64 if (description_size == 0) |
539a0fa7f030
[svn] Unicode support fixes, based on an XMMS patch written by Ilya Konstantinov. <ikonst@users.sourceforge.net>:
nenolod
parents:
61
diff
changeset
|
65 return NULL; |
539a0fa7f030
[svn] Unicode support fixes, based on an XMMS patch written by Ilya Konstantinov. <ikonst@users.sourceforge.net>:
nenolod
parents:
61
diff
changeset
|
66 cursor += description_size; |
539a0fa7f030
[svn] Unicode support fixes, based on an XMMS patch written by Ilya Konstantinov. <ikonst@users.sourceforge.net>:
nenolod
parents:
61
diff
changeset
|
67 length -= description_size; |
61 | 68 } |
227
539a0fa7f030
[svn] Unicode support fixes, based on an XMMS patch written by Ilya Konstantinov. <ikonst@users.sourceforge.net>:
nenolod
parents:
61
diff
changeset
|
69 |
539a0fa7f030
[svn] Unicode support fixes, based on an XMMS patch written by Ilya Konstantinov. <ikonst@users.sourceforge.net>:
nenolod
parents:
61
diff
changeset
|
70 return id3_string_decode(ID3_ENCODING_ISO_8859_1, cursor, length); |
61 | 71 } |
72 | |
73 /* | |
74 * Function id3_get_url_desc (frame) | |
75 * | |
76 * Get description of a URL. | |
77 * | |
78 */ | |
79 char * | |
80 id3_get_url_desc(struct id3_frame *frame) | |
81 { | |
228 | 82 guint8 encoding; |
83 | |
61 | 84 /* Type check */ |
227
539a0fa7f030
[svn] Unicode support fixes, based on an XMMS patch written by Ilya Konstantinov. <ikonst@users.sourceforge.net>:
nenolod
parents:
61
diff
changeset
|
85 if ( frame->fr_desc->fd_idstr[0] != 'W' ) |
539a0fa7f030
[svn] Unicode support fixes, based on an XMMS patch written by Ilya Konstantinov. <ikonst@users.sourceforge.net>:
nenolod
parents:
61
diff
changeset
|
86 return NULL; |
61 | 87 |
88 /* If predefined link frame, return description. */ | |
227
539a0fa7f030
[svn] Unicode support fixes, based on an XMMS patch written by Ilya Konstantinov. <ikonst@users.sourceforge.net>:
nenolod
parents:
61
diff
changeset
|
89 if ( frame->fr_desc->fd_id != ID3_WXXX ) |
539a0fa7f030
[svn] Unicode support fixes, based on an XMMS patch written by Ilya Konstantinov. <ikonst@users.sourceforge.net>:
nenolod
parents:
61
diff
changeset
|
90 return frame->fr_desc->fd_description; |
61 | 91 |
92 /* Check if frame is compressed */ | |
93 if (id3_decompress_frame(frame) == -1) | |
227
539a0fa7f030
[svn] Unicode support fixes, based on an XMMS patch written by Ilya Konstantinov. <ikonst@users.sourceforge.net>:
nenolod
parents:
61
diff
changeset
|
94 return NULL; |
539a0fa7f030
[svn] Unicode support fixes, based on an XMMS patch written by Ilya Konstantinov. <ikonst@users.sourceforge.net>:
nenolod
parents:
61
diff
changeset
|
95 |
539a0fa7f030
[svn] Unicode support fixes, based on an XMMS patch written by Ilya Konstantinov. <ikonst@users.sourceforge.net>:
nenolod
parents:
61
diff
changeset
|
96 ID3_FRAME_DEFINE_CURSOR(frame); |
539a0fa7f030
[svn] Unicode support fixes, based on an XMMS patch written by Ilya Konstantinov. <ikonst@users.sourceforge.net>:
nenolod
parents:
61
diff
changeset
|
97 ID3_FRAME_READ_OR_RETVAL(encoding, NULL); |
539a0fa7f030
[svn] Unicode support fixes, based on an XMMS patch written by Ilya Konstantinov. <ikonst@users.sourceforge.net>:
nenolod
parents:
61
diff
changeset
|
98 |
539a0fa7f030
[svn] Unicode support fixes, based on an XMMS patch written by Ilya Konstantinov. <ikonst@users.sourceforge.net>:
nenolod
parents:
61
diff
changeset
|
99 return id3_string_decode(encoding, cursor, length); |
61 | 100 } |