annotate src/modplug/plugin.cxx @ 2166:9fa5a7884514

unescape uri before write into tuple.
author Yoshiki Yazawa <yaz@cc.rim.or.jp>
date Wed, 14 Nov 2007 20:21:20 +0900
parents 7ee1bc4d5f5b
children e67bce91d70c
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 /* Modplug XMMS Plugin
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
2 * Authors: Kenton Varda <temporal@gauge3d.org>
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 * This source code is public domain.
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
5 */
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
6
161
4095ceb0440b [svn] - fix libmodplug references
nenolod
parents: 12
diff changeset
7 #include "modplug.h"
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
8 #include "gui/main.h"
1539
488f7e6c36ed Tuple builder for modplug. Someone do me a favour and fix getinfo to do something like the one in console.
Tony Vroon <chainsaw@gentoo.org>
parents: 1447
diff changeset
9 extern "C" {
1946
7ee1bc4d5f5b Remove useless #includes, use <>
Matti Hamalainen <ccr@tnsp.org>
parents: 1659
diff changeset
10 #include <audacious/plugin.h>
1539
488f7e6c36ed Tuple builder for modplug. Someone do me a favour and fix getinfo to do something like the one in console.
Tony Vroon <chainsaw@gentoo.org>
parents: 1447
diff changeset
11 }
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
12
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
13 extern InputPlugin gModPlug;
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
14
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
15 static void Init(void)
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
16 {
1659
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
17 gModplugXMMS.SetInputPlugin(gModPlug);
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
18 gModplugXMMS.Init();
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
19 }
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
20
704
94b22cc75eb8 [svn] - VFS probing support patch by Christian Birchinger (joker).
nenolod
parents: 561
diff changeset
21 static int CanPlayFileFromVFS(char* aFilename, VFSFile *VFSFile)
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
22 {
1659
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
23 if(gModplugXMMS.CanPlayFileFromVFS(aFilename, VFSFile))
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
24 return 1;
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
25 return 0;
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
26 }
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
27
559
d5782f3bd760 [svn] Update plugins to the new input plugin API
iabervon
parents: 400
diff changeset
28 static void PlayFile(InputPlayback *data)
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
29 {
559
d5782f3bd760 [svn] Update plugins to the new input plugin API
iabervon
parents: 400
diff changeset
30 char* aFilename = data->filename;
1659
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
31 gModplugXMMS.SetOutputPlugin(*data->output);
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
32 gModplugXMMS.PlayFile(aFilename, data);
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
33 }
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
34
559
d5782f3bd760 [svn] Update plugins to the new input plugin API
iabervon
parents: 400
diff changeset
35 static void Stop(InputPlayback *data)
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
36 {
1659
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
37 gModplugXMMS.Stop();
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
38 }
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
39
559
d5782f3bd760 [svn] Update plugins to the new input plugin API
iabervon
parents: 400
diff changeset
40 static void Pause(InputPlayback *data, short aPaused)
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
41 {
1659
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
42 gModplugXMMS.Pause((bool)aPaused);
0
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
559
d5782f3bd760 [svn] Update plugins to the new input plugin API
iabervon
parents: 400
diff changeset
45 static void Seek(InputPlayback *data, int aTime)
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
46 {
1659
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
47 gModplugXMMS.Seek(float32(aTime));
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
48 }
1539
488f7e6c36ed Tuple builder for modplug. Someone do me a favour and fix getinfo to do something like the one in console.
Tony Vroon <chainsaw@gentoo.org>
parents: 1447
diff changeset
49
559
d5782f3bd760 [svn] Update plugins to the new input plugin API
iabervon
parents: 400
diff changeset
50 static int GetTime(InputPlayback *data)
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
51 {
1659
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
52 float32 lTime;
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
53
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
54 lTime = gModplugXMMS.GetTime();
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
55 if(lTime == -1)
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
56 return -1;
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
57 else
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
58 return (int)(lTime * 1000);
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
59 }
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
60
1539
488f7e6c36ed Tuple builder for modplug. Someone do me a favour and fix getinfo to do something like the one in console.
Tony Vroon <chainsaw@gentoo.org>
parents: 1447
diff changeset
61 static Tuple* GetSongTuple(char* aFilename)
488f7e6c36ed Tuple builder for modplug. Someone do me a favour and fix getinfo to do something like the one in console.
Tony Vroon <chainsaw@gentoo.org>
parents: 1447
diff changeset
62 {
1659
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
63 return gModplugXMMS.GetSongTuple(aFilename);
1539
488f7e6c36ed Tuple builder for modplug. Someone do me a favour and fix getinfo to do something like the one in console.
Tony Vroon <chainsaw@gentoo.org>
parents: 1447
diff changeset
64 }
488f7e6c36ed Tuple builder for modplug. Someone do me a favour and fix getinfo to do something like the one in console.
Tony Vroon <chainsaw@gentoo.org>
parents: 1447
diff changeset
65
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
66 void ShowAboutBox(void)
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
67 {
1659
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
68 ShowAboutWindow();
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
69 }
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
70
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
71 void ShowConfigureBox(void)
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
72 {
1659
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
73 ShowConfigureWindow(gModplugXMMS.GetModProps());
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
74 }
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
75
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
76 void ShowFileInfoBox(char* aFilename)
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
77 {
1659
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
78 ShowInfoWindow(aFilename);
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
79 }
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
80
1044
b1128efde471 [svn] - get rid of all warnings gcc 4.2.0 emits with my build configuration.
yaz
parents: 704
diff changeset
81 const gchar *fmts[] =
1659
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
82 { "amf", "ams", "dbm", "dbf", "dsm", "far", "mdl", "stm", "ult", "j2b", "mt2",
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
83 "mdz", "mdr", "mdgz", "mdbz", "mod", "s3z", "s3r", "s3gz", "s3m", "xmz", "xmr", "xmgz",
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
84 "itz", "itr", "itgz", "dmf", "umx", "it", "669", "xm", "mtm", "psm", "ft2", NULL };
372
a157306caf03 [svn] - finalize the plugin-side of the extension-assist ABI
nenolod
parents: 371
diff changeset
85
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
86 InputPlugin gModPlug =
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
87 {
1659
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
88 NULL,
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
89 NULL,
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
90 (gchar *)"ModPlug Audio Plugin",
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
91 Init,
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
92 NULL,
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
93 ShowAboutBox,
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
94 ShowConfigureBox,
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
95 FALSE,
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
96 NULL,
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
97 NULL,
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
98 PlayFile,
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
99 Stop,
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
100 Pause,
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
101 Seek,
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
102 NULL,
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
103 GetTime,
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
104 NULL,
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
105 NULL,
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
106 NULL,
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
107 NULL,
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
108 NULL,
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
109 NULL,
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
110 NULL,
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
111 ShowFileInfoBox,
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
112 NULL, // output
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
113 GetSongTuple,
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
114 NULL,
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
115 NULL,
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
116 CanPlayFileFromVFS, // vfs
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
117 (gchar **)fmts
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
118 };
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
119
1081
1233d2efceab [svn] - modplug: transition to plugin API v2
nenolod
parents: 1044
diff changeset
120 InputPlugin *modplug_iplist[] = { &gModPlug, NULL };
1233d2efceab [svn] - modplug: transition to plugin API v2
nenolod
parents: 1044
diff changeset
121
1659
53adc480f9a7 fixed some more plugins
mf0102 <0102@gmx.at>
parents: 1649
diff changeset
122 SIMPLE_INPUT_PLUGIN(modplug, modplug_iplist);