Mercurial > audlegacy-plugins
comparison src/Input/modplug/archive/open.cxx @ 0:13389e613d67 trunk
[svn] - initial import of audacious-plugins tree (lots to do)
author | nenolod |
---|---|
date | Mon, 18 Sep 2006 01:11:49 -0700 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:13389e613d67 |
---|---|
1 /* Modplug XMMS Plugin | |
2 * Authors: Kenton Varda <temporal@gauge3d.org> | |
3 * | |
4 * This source code is public domain. | |
5 */ | |
6 | |
7 #include "open.h" | |
8 #include "arch_raw.h" | |
9 #include "arch_gzip.h" | |
10 #include "arch_zip.h" | |
11 #include "arch_rar.h" | |
12 #include "arch_bz2.h" | |
13 | |
14 Archive* OpenArchive(const string& aFileName) | |
15 { | |
16 string lExt; | |
17 uint32 lPos; | |
18 | |
19 lPos = aFileName.find_last_of('.'); | |
20 if(lPos > aFileName.length()) | |
21 return NULL; | |
22 lExt = aFileName.substr(lPos); | |
23 for(uint32 i = 0; i < lExt.length(); i++) | |
24 lExt[i] = tolower(lExt[i]); | |
25 | |
26 if (lExt == ".mdz") | |
27 return new arch_Zip(aFileName); | |
28 if (lExt == ".mdr") | |
29 return new arch_Rar(aFileName); | |
30 if (lExt == ".mdgz") | |
31 return new arch_Gzip(aFileName); | |
32 if (lExt == ".mdbz") | |
33 return new arch_Bzip2(aFileName); | |
34 if (lExt == ".s3z") | |
35 return new arch_Zip(aFileName); | |
36 if (lExt == ".s3r") | |
37 return new arch_Rar(aFileName); | |
38 if (lExt == ".s3gz") | |
39 return new arch_Gzip(aFileName); | |
40 if (lExt == ".xmz") | |
41 return new arch_Zip(aFileName); | |
42 if (lExt == ".xmr") | |
43 return new arch_Rar(aFileName); | |
44 if (lExt == ".xmgz") | |
45 return new arch_Gzip(aFileName); | |
46 if (lExt == ".itz") | |
47 return new arch_Zip(aFileName); | |
48 if (lExt == ".itr") | |
49 return new arch_Rar(aFileName); | |
50 if (lExt == ".itgz") | |
51 return new arch_Gzip(aFileName); | |
52 if (lExt == ".zip") | |
53 return new arch_Zip(aFileName); | |
54 if (lExt == ".rar") | |
55 return new arch_Rar(aFileName); | |
56 if (lExt == ".gz") | |
57 return new arch_Gzip(aFileName); | |
58 if (lExt == ".bz2") | |
59 return new arch_Bzip2(aFileName); | |
60 | |
61 return new arch_Raw(aFileName); | |
62 } | |
63 | |
64 bool ContainsMod(const string& aFileName) | |
65 { | |
66 string lExt; | |
67 uint32 lPos; | |
68 | |
69 lPos = aFileName.find_last_of('.'); | |
70 if(lPos > aFileName.length()) | |
71 return false; | |
72 lExt = aFileName.substr(lPos); | |
73 for(uint32 i = 0; i < lExt.length(); i++) | |
74 lExt[i] = tolower(lExt[i]); | |
75 | |
76 if (lExt == ".mdz") | |
77 return arch_Zip::ContainsMod(aFileName); | |
78 if (lExt == ".mdr") | |
79 return arch_Rar::ContainsMod(aFileName); | |
80 if (lExt == ".mdgz") | |
81 return arch_Gzip::ContainsMod(aFileName); | |
82 if (lExt == ".mdbz") | |
83 return arch_Bzip2::ContainsMod(aFileName); | |
84 if (lExt == ".s3z") | |
85 return arch_Zip::ContainsMod(aFileName); | |
86 if (lExt == ".s3r") | |
87 return arch_Rar::ContainsMod(aFileName); | |
88 if (lExt == ".s3gz") | |
89 return arch_Gzip::ContainsMod(aFileName); | |
90 if (lExt == ".xmz") | |
91 return arch_Zip::ContainsMod(aFileName); | |
92 if (lExt == ".xmr") | |
93 return arch_Rar::ContainsMod(aFileName); | |
94 if (lExt == ".xmgz") | |
95 return arch_Gzip::ContainsMod(aFileName); | |
96 if (lExt == ".itz") | |
97 return arch_Zip::ContainsMod(aFileName); | |
98 if (lExt == ".itr") | |
99 return arch_Rar::ContainsMod(aFileName); | |
100 if (lExt == ".itgz") | |
101 return arch_Gzip::ContainsMod(aFileName); | |
102 if (lExt == ".zip") | |
103 return arch_Zip::ContainsMod(aFileName); | |
104 if (lExt == ".rar") | |
105 return arch_Rar::ContainsMod(aFileName); | |
106 if (lExt == ".gz") | |
107 return arch_Gzip::ContainsMod(aFileName); | |
108 if (lExt == ".bz2") | |
109 return arch_Bzip2::ContainsMod(aFileName); | |
110 | |
111 return arch_Raw::ContainsMod(aFileName); | |
112 } |