comparison src/modplug/archive/open.cxx @ 12:3da1b8942b8b trunk

[svn] - remove src/Input src/Output src/Effect src/General src/Visualization src/Container
author nenolod
date Mon, 18 Sep 2006 03:14:20 -0700
parents src/Input/modplug/archive/open.cxx@13389e613d67
children e67bce91d70c
comparison
equal deleted inserted replaced
11:cff1d04026ae 12:3da1b8942b8b
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 }