annotate src/filewriter/filewriter.h @ 984:df7b09989aee trunk

[svn] - We got a new plugin, captain! - FileWriter is the ultimate plugin for dumping audio to files. It should be the successor of Disk Writer and Out-Lame, as it supports the same output formats as those (WAVE and MP3). The main advantage of having only one file dumping plugin for many formats is that not every plugin has to think about file handling (where to write files to, how to call them etc.) that much anymore. - FileWriter is also very extensible - adding new output formats should be very easy.
author mf0102
date Mon, 30 Apr 2007 14:16:32 -0700
parents
children 4a693f5b7054
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
984
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
1 /* FileWriter-Plugin
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
2 * (C) copyright 2007 merging of Disk Writer and Out-Lame by Michael Färber
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
3 *
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
4 * Original Out-Lame-Plugin:
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
5 * (C) copyright 2002 Lars Siebold <khandha5@gmx.net>
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
6 * (C) copyright 2006-2007 porting to audacious by Yoshiki Yazawa <yaz@cc.rim.or.jp>
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
7 *
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
8 * This program is free software; you can redistribute it and/or modify
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
9 * it under the terms of the GNU General Public License as published by
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
11 * (at your option) any later version.
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
12 *
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
13 * This program is distributed in the hope that it will be useful,
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
16 * GNU General Public License for more details.
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
17 *
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
18 * You should have received a copy of the GNU General Public License
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
19 * along with this program; if not, write to the Free Software
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
20 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
21 */
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
22
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
23 #ifndef FILEWRITER_H
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
24 #define FILEWRITER_H
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
25
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
26 #include "config.h"
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
27
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
28 #include <gtk/gtk.h>
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
29 #include <stdio.h>
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
30 #include <string.h>
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
31
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
32 #include <audacious/plugin.h>
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
33 #include <audacious/beepctrl.h>
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
34 #include <audacious/configdb.h>
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
35 #include <audacious/i18n.h>
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
36 #include <audacious/util.h>
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
37 #include <audacious/vfs.h>
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
38
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
39 struct format_info {
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
40 AFormat format;
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
41 int frequency;
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
42 int channels;
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
43 } input;
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
44
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
45 extern VFSFile *output_file;
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
46 extern guint64 written;
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
47 extern guint64 offset;
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
48 extern TitleInput *tuple;
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
49
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
50 typedef struct _FileWriter FileWriter;
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
51
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
52 struct _FileWriter
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
53 {
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
54 void (*init)(void);
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
55 void (*configure)(void);
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
56 gint (*open)(void);
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
57 void (*write)(void *ptr, gint length);
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
58 void (*close)(void);
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
59 gint (*free)(void);
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
60 gint (*playing)(void);
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
61 gint (*get_written_time)(void);
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
62 };
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
63
df7b09989aee [svn] - We got a new plugin, captain!
mf0102
parents:
diff changeset
64 #endif