Mercurial > audlegacy-plugins
annotate src/wav/wav-sndfile.c @ 2284:d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
PLAYBACK. if somebody is more experienced with it and wants to restore
the other formats, go ahead (maybe change the name of the plugin too?).
author | mf0102 <0102@gmx.at> |
---|---|
date | Wed, 09 Jan 2008 15:41:22 +0100 |
parents | 2f2ffbc2d04d |
children | 0f8450380020 |
rev | line source |
---|---|
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
1 /* Audacious - Cross-platform multimedia player |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
2 * Copyright (C) 2005 Audacious development team. |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
3 * |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
4 * Based on the xmms_sndfile input plugin: |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
5 * Copyright (C) 2000, 2002 Erik de Castro Lopo |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
6 * |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
7 * This program is free software; you can redistribute it and/or modify |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
8 * it under the terms of the GNU General Public License as published by |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
9 * the Free Software Foundation; either version 2 of the License, or |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
10 * (at your option) any later version. |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
11 * |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
12 * This program is distributed in the hope that it will be useful, |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
15 * GNU General Public License for more details. |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
16 * |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
17 * You should have received a copy of the GNU General Public License |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
18 * along with this program; if not, write to the Free Software |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
20 */ |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
21 |
665 | 22 /* |
23 * Rewritten 17-Feb-2007 (nenolod): | |
24 * - now uses conditional variables to ensure that sndfile mutex is | |
25 * entirely protected. | |
26 * - pausing works now | |
27 * - fixed some potential race conditions when dealing with NFS. | |
28 * - TITLE_LEN removed | |
29 */ | |
30 | |
1768
e75a4add2e4b
wav: HAVE_CONFIG_H removal.
William Pitcock <nenolod@atheme.org>
parents:
1757
diff
changeset
|
31 #include "config.h" |
528 | 32 |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
33 #include <glib.h> |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
34 #include <string.h> |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
35 #include <math.h> |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
36 |
1950
2ebeb7816c5e
Change from "" to <>-style includes. With thanks to ccr for the correct sed voodoo.
chainsaw@localhost
parents:
1768
diff
changeset
|
37 #include <audacious/plugin.h> |
2ebeb7816c5e
Change from "" to <>-style includes. With thanks to ccr for the correct sed voodoo.
chainsaw@localhost
parents:
1768
diff
changeset
|
38 #include <audacious/util.h> |
1952
17a6441c71b6
Some missed #include "" to <> changes.
Matti Hamalainen <ccr@tnsp.org>
parents:
1950
diff
changeset
|
39 #include <audacious/i18n.h> |
1950
2ebeb7816c5e
Change from "" to <>-style includes. With thanks to ccr for the correct sed voodoo.
chainsaw@localhost
parents:
1768
diff
changeset
|
40 #include <audacious/main.h> |
2ebeb7816c5e
Change from "" to <>-style includes. With thanks to ccr for the correct sed voodoo.
chainsaw@localhost
parents:
1768
diff
changeset
|
41 #include <audacious/output.h> |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
42 #include "wav-sndfile.h" |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
43 |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
44 #include <sndfile.h> |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
45 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
46 static SNDFILE *sndfile = NULL; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
47 static SF_INFO sfinfo; |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
48 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
49 static int song_length; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
50 static int bit_rate = 0; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
51 static glong seek_time = -1; |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
52 |
665 | 53 static GThread *decode_thread; |
54 static GMutex *decode_mutex; | |
55 static GCond *decode_cond; | |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
56 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
57 |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
58 |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
59 static void |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
60 plugin_init (void) |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
61 { |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
62 seek_time = -1; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
63 |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
64 decode_mutex = g_mutex_new(); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
65 decode_cond = g_cond_new(); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
66 } |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
67 |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
68 static void |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
69 plugin_cleanup (void) |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
70 { |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
71 g_cond_free(decode_cond); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
72 g_mutex_free(decode_mutex); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
73 } |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
74 |
1470
429b29e8004c
Add actual codec information to wav-sndfile tuple. Untested.
Tony Vroon <chainsaw@gentoo.org>
parents:
1430
diff
changeset
|
75 static int |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
76 get_song_length (char *filename) |
665 | 77 { |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
78 SNDFILE *tmp_sndfile; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
79 SF_INFO tmp_sfinfo; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
80 gchar *realfn = NULL; |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
81 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
82 realfn = g_filename_from_uri(filename, NULL, NULL); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
83 tmp_sndfile = sf_open (realfn ? realfn : filename, SFM_READ, &tmp_sfinfo); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
84 g_free(realfn); realfn = NULL; |
1283
ef8c6b02bdf7
more adaptation for file:// scheme.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
1264
diff
changeset
|
85 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
86 if (!tmp_sndfile) { |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
87 return 0; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
88 } |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
89 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
90 sf_close (tmp_sndfile); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
91 tmp_sndfile = NULL; |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
92 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
93 if (tmp_sfinfo.samplerate <= 0) |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
94 return 0; |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
95 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
96 return (int) ceil (1000.0 * tmp_sfinfo.frames / tmp_sfinfo.samplerate); |
665 | 97 } |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
98 |
1470
429b29e8004c
Add actual codec information to wav-sndfile tuple. Untested.
Tony Vroon <chainsaw@gentoo.org>
parents:
1430
diff
changeset
|
99 static void |
429b29e8004c
Add actual codec information to wav-sndfile tuple. Untested.
Tony Vroon <chainsaw@gentoo.org>
parents:
1430
diff
changeset
|
100 fill_song_tuple (char *filename, Tuple *ti) |
429b29e8004c
Add actual codec information to wav-sndfile tuple. Untested.
Tony Vroon <chainsaw@gentoo.org>
parents:
1430
diff
changeset
|
101 { |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
102 SNDFILE *tmp_sndfile; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
103 SF_INFO tmp_sfinfo; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
104 unsigned int lossy = 0; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
105 gchar *realfn = NULL, *codec = NULL, *format, *subformat = NULL; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
106 GString *codec_gs = NULL; |
1470
429b29e8004c
Add actual codec information to wav-sndfile tuple. Untested.
Tony Vroon <chainsaw@gentoo.org>
parents:
1430
diff
changeset
|
107 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
108 realfn = g_filename_from_uri(filename, NULL, NULL); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
109 tmp_sndfile = sf_open (realfn ? realfn : filename, SFM_READ, &tmp_sfinfo); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
110 if ( sf_get_string(tmp_sndfile, SF_STR_TITLE) == NULL) |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
111 aud_tuple_associate_string(ti, FIELD_TITLE, NULL, g_path_get_basename(realfn ? realfn : filename)); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
112 else |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
113 aud_tuple_associate_string(ti, FIELD_TITLE, NULL, sf_get_string(tmp_sndfile, SF_STR_TITLE)); |
1519
9e7980b7abad
Actually read string-based metadata for tuplez.
Tony Vroon <chainsaw@gentoo.org>
parents:
1515
diff
changeset
|
114 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
115 aud_tuple_associate_string(ti, FIELD_ARTIST, NULL, sf_get_string(tmp_sndfile, SF_STR_ARTIST)); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
116 aud_tuple_associate_string(ti, FIELD_COMMENT, NULL, sf_get_string(tmp_sndfile, SF_STR_COMMENT)); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
117 aud_tuple_associate_string(ti, FIELD_DATE, NULL, sf_get_string(tmp_sndfile, SF_STR_DATE)); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
118 aud_tuple_associate_string(ti, -1, "software", sf_get_string(tmp_sndfile, SF_STR_SOFTWARE)); |
1519
9e7980b7abad
Actually read string-based metadata for tuplez.
Tony Vroon <chainsaw@gentoo.org>
parents:
1515
diff
changeset
|
119 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
120 g_free(realfn); realfn = NULL; |
1470
429b29e8004c
Add actual codec information to wav-sndfile tuple. Untested.
Tony Vroon <chainsaw@gentoo.org>
parents:
1430
diff
changeset
|
121 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
122 if (!tmp_sndfile) |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
123 return; |
1470
429b29e8004c
Add actual codec information to wav-sndfile tuple. Untested.
Tony Vroon <chainsaw@gentoo.org>
parents:
1430
diff
changeset
|
124 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
125 sf_close (tmp_sndfile); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
126 tmp_sndfile = NULL; |
1470
429b29e8004c
Add actual codec information to wav-sndfile tuple. Untested.
Tony Vroon <chainsaw@gentoo.org>
parents:
1430
diff
changeset
|
127 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
128 if (tmp_sfinfo.samplerate > 0) |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
129 aud_tuple_associate_int(ti, FIELD_LENGTH, NULL, (int) ceil (1000.0 * tmp_sfinfo.frames / tmp_sfinfo.samplerate)); |
1470
429b29e8004c
Add actual codec information to wav-sndfile tuple. Untested.
Tony Vroon <chainsaw@gentoo.org>
parents:
1430
diff
changeset
|
130 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
131 switch (tmp_sfinfo.format & SF_FORMAT_TYPEMASK) |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
132 { |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
133 case SF_FORMAT_WAV: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
134 case SF_FORMAT_WAVEX: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
135 format = "Microsoft WAV"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
136 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
137 case SF_FORMAT_AIFF: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
138 format = "Apple/SGI AIFF"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
139 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
140 case SF_FORMAT_AU: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
141 format = "Sun/NeXT AU"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
142 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
143 case SF_FORMAT_RAW: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
144 format = "Raw PCM data"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
145 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
146 case SF_FORMAT_PAF: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
147 format = "Ensoniq PARIS"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
148 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
149 case SF_FORMAT_SVX: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
150 format = "Amiga IFF / SVX8 / SV16"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
151 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
152 case SF_FORMAT_NIST: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
153 format = "Sphere NIST"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
154 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
155 case SF_FORMAT_VOC: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
156 format = "Creative VOC"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
157 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
158 case SF_FORMAT_IRCAM: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
159 format = "Berkeley/IRCAM/CARL"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
160 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
161 case SF_FORMAT_W64: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
162 format = "Sonic Foundry's 64 bit RIFF/WAV"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
163 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
164 case SF_FORMAT_MAT4: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
165 format = "Matlab (tm) V4.2 / GNU Octave 2.0"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
166 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
167 case SF_FORMAT_MAT5: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
168 format = "Matlab (tm) V5.0 / GNU Octave 2.1"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
169 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
170 case SF_FORMAT_PVF: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
171 format = "Portable Voice Format"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
172 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
173 case SF_FORMAT_XI: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
174 format = "Fasttracker 2 Extended Instrument"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
175 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
176 case SF_FORMAT_HTK: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
177 format = "HMM Tool Kit"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
178 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
179 case SF_FORMAT_SDS: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
180 format = "Midi Sample Dump Standard"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
181 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
182 case SF_FORMAT_AVR: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
183 format = "Audio Visual Research"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
184 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
185 case SF_FORMAT_SD2: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
186 format = "Sound Designer 2"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
187 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
188 case SF_FORMAT_FLAC: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
189 format = "Free Lossless Audio Codec"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
190 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
191 case SF_FORMAT_CAF: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
192 format = "Core Audio File"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
193 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
194 default: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
195 format = "unknown sndfile"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
196 } |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
197 switch (tmp_sfinfo.format & SF_FORMAT_SUBMASK) |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
198 { |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
199 case SF_FORMAT_PCM_S8: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
200 subformat = "signed 8 bit"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
201 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
202 case SF_FORMAT_PCM_16: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
203 subformat = "signed 16 bit"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
204 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
205 case SF_FORMAT_PCM_24: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
206 subformat = "signed 24 bit"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
207 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
208 case SF_FORMAT_PCM_32: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
209 subformat = "signed 32 bit"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
210 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
211 case SF_FORMAT_PCM_U8: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
212 subformat = "unsigned 8 bit"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
213 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
214 case SF_FORMAT_FLOAT: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
215 subformat = "32 bit float"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
216 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
217 case SF_FORMAT_DOUBLE: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
218 subformat = "64 bit float"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
219 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
220 case SF_FORMAT_ULAW: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
221 subformat = "U-Law"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
222 lossy = 1; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
223 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
224 case SF_FORMAT_ALAW: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
225 subformat = "A-Law"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
226 lossy = 1; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
227 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
228 case SF_FORMAT_IMA_ADPCM: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
229 subformat = "IMA ADPCM"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
230 lossy = 1; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
231 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
232 case SF_FORMAT_MS_ADPCM: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
233 subformat = "MS ADPCM"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
234 lossy = 1; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
235 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
236 case SF_FORMAT_GSM610: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
237 subformat = "GSM 6.10"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
238 lossy = 1; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
239 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
240 case SF_FORMAT_VOX_ADPCM: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
241 subformat = "Oki Dialogic ADPCM"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
242 lossy = 1; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
243 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
244 case SF_FORMAT_G721_32: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
245 subformat = "32kbs G721 ADPCM"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
246 lossy = 1; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
247 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
248 case SF_FORMAT_G723_24: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
249 subformat = "24kbs G723 ADPCM"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
250 lossy = 1; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
251 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
252 case SF_FORMAT_G723_40: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
253 subformat = "40kbs G723 ADPCM"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
254 lossy = 1; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
255 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
256 case SF_FORMAT_DWVW_12: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
257 subformat = "12 bit Delta Width Variable Word"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
258 lossy = 1; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
259 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
260 case SF_FORMAT_DWVW_16: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
261 subformat = "16 bit Delta Width Variable Word"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
262 lossy = 1; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
263 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
264 case SF_FORMAT_DWVW_24: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
265 subformat = "24 bit Delta Width Variable Word"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
266 lossy = 1; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
267 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
268 case SF_FORMAT_DWVW_N: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
269 subformat = "N bit Delta Width Variable Word"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
270 lossy = 1; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
271 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
272 case SF_FORMAT_DPCM_8: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
273 subformat = "8 bit differential PCM"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
274 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
275 case SF_FORMAT_DPCM_16: |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
276 subformat = "16 bit differential PCM"; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
277 } |
1504
47612fdac429
Replaced asprintf with gstring (which is probably more portable anyway).
Giacomo Lozito <james@develia.org>
parents:
1503
diff
changeset
|
278 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
279 codec_gs = g_string_new(""); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
280 if (subformat != NULL) |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
281 g_string_append_printf(codec_gs, "%s (%s)", format, subformat); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
282 else |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
283 g_string_append_printf(codec_gs, "%s", format); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
284 codec = g_strdup(codec_gs->str); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
285 g_string_free(codec_gs, TRUE); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
286 aud_tuple_associate_string(ti, FIELD_CODEC, NULL, codec); |
1504
47612fdac429
Replaced asprintf with gstring (which is probably more portable anyway).
Giacomo Lozito <james@develia.org>
parents:
1503
diff
changeset
|
287 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
288 if (lossy != 0) |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
289 aud_tuple_associate_string(ti, FIELD_QUALITY, NULL, "lossy"); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
290 else |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
291 aud_tuple_associate_string(ti, FIELD_QUALITY, NULL, "lossless"); |
1470
429b29e8004c
Add actual codec information to wav-sndfile tuple. Untested.
Tony Vroon <chainsaw@gentoo.org>
parents:
1430
diff
changeset
|
292 } |
429b29e8004c
Add actual codec information to wav-sndfile tuple. Untested.
Tony Vroon <chainsaw@gentoo.org>
parents:
1430
diff
changeset
|
293 |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
294 static gchar *get_title(char *filename) |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
295 { |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
296 Tuple *tuple; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
297 gchar *title; |
1515
fc1b025e6900
Report the title properly, as in all the other plugins in the tree. Poor ignored and unloved plugin...
Tony Vroon <chainsaw@gentoo.org>
parents:
1513
diff
changeset
|
298 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
299 tuple = aud_tuple_new_from_filename(filename); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
300 fill_song_tuple(filename, tuple); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
301 title = aud_tuple_formatter_make_title_string(tuple, aud_get_gentitle_format()); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
302 if (*title == '\0') |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
303 { |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
304 g_free(title); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
305 title = g_strdup(aud_tuple_get_string(tuple, FIELD_FILE_NAME, NULL)); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
306 } |
665 | 307 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
308 aud_tuple_free(tuple); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
309 return title; |
665 | 310 } |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
311 |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
312 static int |
1283
ef8c6b02bdf7
more adaptation for file:// scheme.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
1264
diff
changeset
|
313 is_our_file (char *filename) |
664
52b8efa55fcf
[svn] - wav-sndfile engine: correctly compute the bitrate
nenolod
parents:
565
diff
changeset
|
314 { |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
315 SNDFILE *tmp_sndfile; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
316 SF_INFO tmp_sfinfo; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
317 gchar *realfn = NULL; |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
318 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
319 realfn = g_filename_from_uri(filename, NULL, NULL); |
1263
458d46e65a86
wav-sndfile: in is_our_file, ensure that filename is not NULL before passing it to sf_open
Giacomo Lozito <james@develia.org>
parents:
1242
diff
changeset
|
320 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
321 /* Have to open the file to see if libsndfile can handle it. */ |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
322 tmp_sndfile = sf_open (realfn ? realfn : filename, SFM_READ, &tmp_sfinfo); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
323 g_free(realfn); realfn = NULL; |
1283
ef8c6b02bdf7
more adaptation for file:// scheme.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
1264
diff
changeset
|
324 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
325 if (!tmp_sndfile) { |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
326 return FALSE; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
327 } |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
328 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
329 /* It can so close file and return TRUE. */ |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
330 sf_close (tmp_sndfile); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
331 tmp_sndfile = NULL; |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
332 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
333 return TRUE; |
665 | 334 } |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
335 |
665 | 336 static gpointer |
337 play_loop (gpointer arg) | |
664
52b8efa55fcf
[svn] - wav-sndfile engine: correctly compute the bitrate
nenolod
parents:
565
diff
changeset
|
338 { |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
339 static short buffer [BUFFER_SIZE]; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
340 int samples; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
341 InputPlayback *playback = arg; |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
342 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
343 for (;;) |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
344 { |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
345 GTimeVal sleeptime; |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
346 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
347 /* sf_read_short will return 0 for all reads at EOF. */ |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
348 samples = sf_read_short (sndfile, buffer, BUFFER_SIZE); |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
349 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
350 if (samples > 0 && playback->playing == TRUE) { |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
351 while ((playback->output->buffer_free () < samples) && |
921
8b0850943335
[svn] - now wav plugin can handle remaining buffered data at the end of playing.
yaz
parents:
862
diff
changeset
|
352 playback->playing == TRUE) { |
8b0850943335
[svn] - now wav plugin can handle remaining buffered data at the end of playing.
yaz
parents:
862
diff
changeset
|
353 g_get_current_time(&sleeptime); |
8b0850943335
[svn] - now wav plugin can handle remaining buffered data at the end of playing.
yaz
parents:
862
diff
changeset
|
354 g_time_val_add(&sleeptime, 500000); |
8b0850943335
[svn] - now wav plugin can handle remaining buffered data at the end of playing.
yaz
parents:
862
diff
changeset
|
355 g_mutex_lock(decode_mutex); |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
356 g_cond_timed_wait(decode_cond, decode_mutex, &sleeptime); |
921
8b0850943335
[svn] - now wav plugin can handle remaining buffered data at the end of playing.
yaz
parents:
862
diff
changeset
|
357 g_mutex_unlock(decode_mutex); |
665 | 358 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
359 if (playback->playing == FALSE) |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
360 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
361 } |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
362 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
363 playback->pass_audio(playback, FMT_S16_NE, sfinfo.channels, |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
364 samples * sizeof (short), buffer, &playback->playing); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
365 } |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
366 else { |
921
8b0850943335
[svn] - now wav plugin can handle remaining buffered data at the end of playing.
yaz
parents:
862
diff
changeset
|
367 while(playback->output->buffer_playing()) { |
8b0850943335
[svn] - now wav plugin can handle remaining buffered data at the end of playing.
yaz
parents:
862
diff
changeset
|
368 g_get_current_time(&sleeptime); |
8b0850943335
[svn] - now wav plugin can handle remaining buffered data at the end of playing.
yaz
parents:
862
diff
changeset
|
369 g_time_val_add(&sleeptime, 500000); |
8b0850943335
[svn] - now wav plugin can handle remaining buffered data at the end of playing.
yaz
parents:
862
diff
changeset
|
370 g_mutex_lock(decode_mutex); |
8b0850943335
[svn] - now wav plugin can handle remaining buffered data at the end of playing.
yaz
parents:
862
diff
changeset
|
371 g_cond_timed_wait(decode_cond, decode_mutex, &sleeptime); |
8b0850943335
[svn] - now wav plugin can handle remaining buffered data at the end of playing.
yaz
parents:
862
diff
changeset
|
372 g_mutex_unlock(decode_mutex); |
665 | 373 |
921
8b0850943335
[svn] - now wav plugin can handle remaining buffered data at the end of playing.
yaz
parents:
862
diff
changeset
|
374 if(playback->playing == FALSE) |
8b0850943335
[svn] - now wav plugin can handle remaining buffered data at the end of playing.
yaz
parents:
862
diff
changeset
|
375 break; |
8b0850943335
[svn] - now wav plugin can handle remaining buffered data at the end of playing.
yaz
parents:
862
diff
changeset
|
376 } |
8b0850943335
[svn] - now wav plugin can handle remaining buffered data at the end of playing.
yaz
parents:
862
diff
changeset
|
377 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
378 playback->eof = TRUE; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
379 playback->playing = FALSE; |
665 | 380 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
381 g_mutex_unlock(decode_mutex); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
382 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
383 } |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
384 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
385 /* Do seek if seek_time is valid. */ |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
386 if (seek_time >= 0) { |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
387 sf_seek (sndfile, (sf_count_t)((gint64)seek_time * (gint64)sfinfo.samplerate / 1000L), |
862 | 388 SEEK_SET); |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
389 playback->output->flush (seek_time); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
390 seek_time = -1; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
391 } |
665 | 392 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
393 if (playback->playing == FALSE) |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
394 break; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
395 } |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
396 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
397 sf_close (sndfile); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
398 sndfile = NULL; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
399 seek_time = -1; |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
400 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
401 playback->output->close_audio(); |
666 | 402 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
403 return NULL; |
666 | 404 } |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
405 |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
406 static void |
561
914c96de3244
[svn] Convert plugins to use InputPlayback.output instead of InputPlugin.output
iabervon
parents:
528
diff
changeset
|
407 play_start (InputPlayback *playback) |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
408 { |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
409 gchar *realfn = NULL; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
410 int pcmbitwidth; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
411 gchar *song_title; |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
412 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
413 if (sndfile) /* already opened */ |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
414 return; |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
415 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
416 pcmbitwidth = 32; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
417 song_title = get_title(playback->filename); |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
418 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
419 realfn = g_filename_from_uri(playback->filename, NULL, NULL); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
420 sndfile = sf_open (realfn ? realfn : playback->filename, SFM_READ, &sfinfo); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
421 g_free(realfn); realfn = NULL; |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
422 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
423 if (!sndfile) |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
424 return; |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
425 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
426 bit_rate = sfinfo.samplerate * pcmbitwidth; |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
427 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
428 if (sfinfo.samplerate > 0) |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
429 song_length = (int) ceil (1000.0 * sfinfo.frames / sfinfo.samplerate); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
430 else |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
431 song_length = 0; |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
432 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
433 if (! playback->output->open_audio (FMT_S16_NE, sfinfo.samplerate, sfinfo.channels)) |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
434 { |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
435 sf_close (sndfile); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
436 sndfile = NULL; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
437 return; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
438 } |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
439 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
440 playback->set_params(playback, song_title, song_length, bit_rate, sfinfo.samplerate, sfinfo.channels); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
441 g_free (song_title); |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
442 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
443 playback->playing = TRUE; |
665 | 444 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
445 decode_thread = g_thread_self(); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
446 playback->set_pb_ready(playback); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
447 play_loop(playback); |
665 | 448 } |
449 | |
450 static void | |
451 play_pause (InputPlayback *playback, gshort p) | |
452 { | |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
453 playback->output->pause(p); |
665 | 454 } |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
455 |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
456 static void |
561
914c96de3244
[svn] Convert plugins to use InputPlayback.output instead of InputPlugin.output
iabervon
parents:
528
diff
changeset
|
457 play_stop (InputPlayback *playback) |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
458 { |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
459 if (decode_thread == NULL) |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
460 return; |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
461 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
462 g_mutex_lock(decode_mutex); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
463 playback->playing = FALSE; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
464 g_mutex_unlock(decode_mutex); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
465 g_cond_signal(decode_cond); |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
466 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
467 g_thread_join (decode_thread); |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
468 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
469 sndfile = NULL; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
470 decode_thread = NULL; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
471 seek_time = -1; |
665 | 472 } |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
473 |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
474 static void |
862 | 475 file_mseek (InputPlayback *playback, gulong millisecond) |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
476 { |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
477 if (! sfinfo.seekable) |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
478 return; |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
479 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
480 seek_time = (glong)millisecond; |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
481 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
482 while (seek_time != -1) |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
483 g_usleep (80000); |
665 | 484 } |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
485 |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
486 static void |
1954
6acf1bda788b
Removed some extraneous includes.
Matti Hamalainen <ccr@tnsp.org>
parents:
1952
diff
changeset
|
487 file_seek (InputPlayback *playback, gint time) |
862 | 488 { |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
489 gulong millisecond = time * 1000; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
490 file_mseek(playback, millisecond); |
862 | 491 } |
492 | |
493 static void | |
1954
6acf1bda788b
Removed some extraneous includes.
Matti Hamalainen <ccr@tnsp.org>
parents:
1952
diff
changeset
|
494 get_song_info (gchar *filename, gchar **title, gint *length) |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
495 { |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
496 (*length) = get_song_length(filename); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
497 (*title) = get_title(filename); |
665 | 498 } |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
499 |
1430
bf7d4c236d9f
Start using tuple_new_from_filename.
Tony Vroon <chainsaw@gentoo.org>
parents:
1413
diff
changeset
|
500 static Tuple* |
1412
6a424e6ff59c
playlist_get_songtime wanted a tuple, but was afraid to ask
Tony Vroon <chainsaw@gentoo.org>
parents:
1395
diff
changeset
|
501 get_song_tuple (gchar *filename) |
6a424e6ff59c
playlist_get_songtime wanted a tuple, but was afraid to ask
Tony Vroon <chainsaw@gentoo.org>
parents:
1395
diff
changeset
|
502 { |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
503 Tuple *ti = aud_tuple_new_from_filename(filename); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
504 fill_song_tuple(filename, ti); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
505 return ti; |
1412
6a424e6ff59c
playlist_get_songtime wanted a tuple, but was afraid to ask
Tony Vroon <chainsaw@gentoo.org>
parents:
1395
diff
changeset
|
506 } |
6a424e6ff59c
playlist_get_songtime wanted a tuple, but was afraid to ask
Tony Vroon <chainsaw@gentoo.org>
parents:
1395
diff
changeset
|
507 |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
508 static void wav_about(void) |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
509 { |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
510 static GtkWidget *box; |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
511 if (!box) |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
512 { |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
513 box = audacious_info_dialog(_("About sndfile WAV support"), |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
514 _("Adapted for Audacious usage by Tony Vroon <chainsaw@gentoo.org>\n" |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
515 "from the xmms_sndfile plugin which is:\n" |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
516 "Copyright (C) 2000, 2002 Erik de Castro Lopo\n\n" |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
517 "This program is free software ; you can redistribute it and/or modify \n" |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
518 "it under the terms of the GNU General Public License as published by \n" |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
519 "the Free Software Foundation ; either version 2 of the License, or \n" |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
520 "(at your option) any later version. \n \n" |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
521 "This program is distributed in the hope that it will be useful, \n" |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
522 "but WITHOUT ANY WARRANTY ; without even the implied warranty of \n" |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
523 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. \n" |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
524 "See the GNU General Public License for more details. \n\n" |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
525 "You should have received a copy of the GNU General Public \n" |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
526 "License along with this program ; if not, write to \n" |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
527 "the Free Software Foundation, Inc., \n" |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
528 "51 Franklin Street, Fifth Floor, \n" |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
529 "Boston, MA 02110-1301 USA"), |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
530 _("Ok"), FALSE, NULL, NULL); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
531 g_signal_connect(G_OBJECT(box), "destroy", |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
532 (GCallback)gtk_widget_destroyed, &box); |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
533 } |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
534 } |
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
535 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
536 static gchar *fmts[] = { "wav", NULL }; |
0
13389e613d67
[svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff
changeset
|
537 |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
538 InputPlugin wav_ip = { |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
539 .description = "sndfile WAV plugin", |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
540 .init = plugin_init, |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
541 .about = wav_about, |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
542 .is_our_file = is_our_file, |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
543 .play_file = play_start, |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
544 .stop = play_stop, |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
545 .pause = play_pause, |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
546 .seek = file_seek, |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
547 .cleanup = plugin_cleanup, |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
548 .get_song_info = get_song_info, |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
549 .get_song_tuple = get_song_tuple, |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
550 .vfs_extensions = fmts, |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
551 .mseek = file_mseek, |
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
552 }; |
1063 | 553 |
554 InputPlugin *wav_iplist[] = { &wav_ip, NULL }; | |
555 | |
2284
d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
mf0102 <0102@gmx.at>
parents:
2055
diff
changeset
|
556 SIMPLE_INPUT_PLUGIN(wav-sndfile, wav_iplist) |