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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
86570de2f4e6 [svn] Rewrote the entire plugin:
nenolod
parents: 664
diff changeset
22 /*
86570de2f4e6 [svn] Rewrote the entire plugin:
nenolod
parents: 664
diff changeset
23 * Rewritten 17-Feb-2007 (nenolod):
86570de2f4e6 [svn] Rewrote the entire plugin:
nenolod
parents: 664
diff changeset
24 * - now uses conditional variables to ensure that sndfile mutex is
86570de2f4e6 [svn] Rewrote the entire plugin:
nenolod
parents: 664
diff changeset
25 * entirely protected.
86570de2f4e6 [svn] Rewrote the entire plugin:
nenolod
parents: 664
diff changeset
26 * - pausing works now
86570de2f4e6 [svn] Rewrote the entire plugin:
nenolod
parents: 664
diff changeset
27 * - fixed some potential race conditions when dealing with NFS.
86570de2f4e6 [svn] Rewrote the entire plugin:
nenolod
parents: 664
diff changeset
28 * - TITLE_LEN removed
86570de2f4e6 [svn] Rewrote the entire plugin:
nenolod
parents: 664
diff changeset
29 */
86570de2f4e6 [svn] Rewrote the entire plugin:
nenolod
parents: 664
diff changeset
30
1768
e75a4add2e4b wav: HAVE_CONFIG_H removal.
William Pitcock <nenolod@atheme.org>
parents: 1757
diff changeset
31 #include "config.h"
528
4d8b92b55acf [svn] - add config.h includes where needed
nenolod
parents: 527
diff changeset
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
86570de2f4e6 [svn] Rewrote the entire plugin:
nenolod
parents: 664
diff changeset
53 static GThread *decode_thread;
86570de2f4e6 [svn] Rewrote the entire plugin:
nenolod
parents: 664
diff changeset
54 static GMutex *decode_mutex;
86570de2f4e6 [svn] Rewrote the entire plugin:
nenolod
parents: 664
diff changeset
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
86570de2f4e6 [svn] Rewrote the entire plugin:
nenolod
parents: 664
diff changeset
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
86570de2f4e6 [svn] Rewrote the entire plugin:
nenolod
parents: 664
diff changeset
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
86570de2f4e6 [svn] Rewrote the entire plugin:
nenolod
parents: 664
diff changeset
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
86570de2f4e6 [svn] Rewrote the entire plugin:
nenolod
parents: 664
diff changeset
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
86570de2f4e6 [svn] Rewrote the entire plugin:
nenolod
parents: 664
diff changeset
334 }
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
335
665
86570de2f4e6 [svn] Rewrote the entire plugin:
nenolod
parents: 664
diff changeset
336 static gpointer
86570de2f4e6 [svn] Rewrote the entire plugin:
nenolod
parents: 664
diff changeset
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
86570de2f4e6 [svn] Rewrote the entire plugin:
nenolod
parents: 664
diff changeset
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
86570de2f4e6 [svn] Rewrote the entire plugin:
nenolod
parents: 664
diff changeset
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
86570de2f4e6 [svn] Rewrote the entire plugin:
nenolod
parents: 664
diff changeset
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
baa22cb0216d [svn] - add mseek support.
yaz
parents: 667
diff changeset
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
86570de2f4e6 [svn] Rewrote the entire plugin:
nenolod
parents: 664
diff changeset
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
a06edd6bfde6 [svn] - some further adjustments
nenolod
parents: 665
diff changeset
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
a06edd6bfde6 [svn] - some further adjustments
nenolod
parents: 665
diff changeset
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
86570de2f4e6 [svn] Rewrote the entire plugin:
nenolod
parents: 664
diff changeset
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
86570de2f4e6 [svn] Rewrote the entire plugin:
nenolod
parents: 664
diff changeset
448 }
86570de2f4e6 [svn] Rewrote the entire plugin:
nenolod
parents: 664
diff changeset
449
86570de2f4e6 [svn] Rewrote the entire plugin:
nenolod
parents: 664
diff changeset
450 static void
86570de2f4e6 [svn] Rewrote the entire plugin:
nenolod
parents: 664
diff changeset
451 play_pause (InputPlayback *playback, gshort p)
86570de2f4e6 [svn] Rewrote the entire plugin:
nenolod
parents: 664
diff changeset
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
86570de2f4e6 [svn] Rewrote the entire plugin:
nenolod
parents: 664
diff changeset
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
86570de2f4e6 [svn] Rewrote the entire plugin:
nenolod
parents: 664
diff changeset
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
baa22cb0216d [svn] - add mseek support.
yaz
parents: 667
diff changeset
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
86570de2f4e6 [svn] Rewrote the entire plugin:
nenolod
parents: 664
diff changeset
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
baa22cb0216d [svn] - add mseek support.
yaz
parents: 667
diff changeset
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
baa22cb0216d [svn] - add mseek support.
yaz
parents: 667
diff changeset
491 }
baa22cb0216d [svn] - add mseek support.
yaz
parents: 667
diff changeset
492
baa22cb0216d [svn] - add mseek support.
yaz
parents: 667
diff changeset
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
86570de2f4e6 [svn] Rewrote the entire plugin:
nenolod
parents: 664
diff changeset
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
872a2f7d3f6e [svn] - port to plugin2 API
nenolod
parents: 921
diff changeset
553
872a2f7d3f6e [svn] - port to plugin2 API
nenolod
parents: 921
diff changeset
554 InputPlugin *wav_iplist[] = { &wav_ip, NULL };
872a2f7d3f6e [svn] - port to plugin2 API
nenolod
parents: 921
diff changeset
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)