annotate Plugins/Input/modplug/archive/archive.cpp @ 919:c19c3ea7d29d trunk

[svn] - fading fix
author nenolod
date Thu, 06 Apr 2006 11:03:26 -0700
parents 37316876ef6e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
278
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
1 /* Modplug XMMS Plugin
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
2 * Authors: Kenton Varda <temporal@gauge3d.org>
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
3 *
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
4 * This source code is public domain.
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
5 */
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
6
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
7 #include "archive.h"
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
8
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
9
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
10
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
11 ///* Open a read pipe */ File f;
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
12 //f=popen("gzip -d compressed.file.name","r");
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
13 ///* Read some data in the usual manner, for example */
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
14 //fscanf(f,"%d %f %f",name,&age,$id);
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
15 ///* Close the pipe */
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
16 //pclose(f);
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
17
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
18 Archive::~Archive()
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
19 {
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
20 }
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
21
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
22 bool Archive::IsOurFile(const string& aFileName)
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
23 {
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
24 string lExt;
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
25 uint32 lPos;
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
26
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
27 lPos = aFileName.find_last_of('.');
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
28 if((int)lPos == -1)
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
29 return false;
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
30 lExt = aFileName.substr(lPos);
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
31 for(uint32 i = 0; i < lExt.length(); i++)
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
32 lExt[i] = tolower(lExt[i]);
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
33
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
34 if (lExt == ".669")
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
35 return true;
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
36 if (lExt == ".amf")
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
37 return true;
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
38 if (lExt == ".ams")
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
39 return true;
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
40 if (lExt == ".dbm")
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
41 return true;
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
42 if (lExt == ".dbf")
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
43 return true;
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
44 if (lExt == ".dsm")
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
45 return true;
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
46 if (lExt == ".far")
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
47 return true;
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
48 if (lExt == ".it")
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
49 return true;
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
50 if (lExt == ".mdl")
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
51 return true;
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
52 if (lExt == ".med")
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
53 return true;
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
54 if (lExt == ".mod")
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
55 return true;
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
56 if (lExt == ".mtm")
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
57 return true;
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
58 if (lExt == ".okt")
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
59 return true;
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
60 if (lExt == ".ptm")
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
61 return true;
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
62 if (lExt == ".s3m")
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
63 return true;
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
64 if (lExt == ".stm")
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
65 return true;
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
66 if (lExt == ".ult")
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
67 return true;
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
68 if (lExt == ".umx") //Unreal rocks!
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
69 return true;
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
70 if (lExt == ".xm")
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
71 return true;
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
72 if (lExt == ".j2b")
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
73 return true;
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
74 if (lExt == ".mt2")
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
75 return true;
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
76 if (lExt == ".psm")
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
77 return true;
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
78
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
79 return false;
37316876ef6e [svn] Use modplug instead of mikmod. Supports more formats & compressed files.
chainsaw
parents:
diff changeset
80 }