Skip to content

Commit 8dd1b74

Browse files
committed
Started CPP Library for JPAK
1 parent 37f35a7 commit 8dd1b74

7 files changed

Lines changed: 257 additions & 0 deletions

File tree

.project

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<projectDescription>
3+
<name>jpak</name>
4+
<comment></comment>
5+
<projects>
6+
</projects>
7+
<buildSpec>
8+
<buildCommand>
9+
<name>org.python.pydev.PyDevBuilder</name>
10+
<arguments>
11+
</arguments>
12+
</buildCommand>
13+
</buildSpec>
14+
<natures>
15+
<nature>org.python.pydev.pythonNature</nature>
16+
</natures>
17+
</projectDescription>

.pydevproject

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2+
<?eclipse-pydev version="1.0"?><pydev_project>
3+
<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">Default</pydev_property>
4+
<pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python 2.7</pydev_property>
5+
</pydev_project>

cpp/.cproject

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2+
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
3+
<storageModule moduleId="org.eclipse.cdt.core.settings">
4+
<cconfiguration id="cdt.managedbuild.config.gnu.cross.so.debug.320805835">
5+
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.cross.so.debug.320805835" moduleId="org.eclipse.cdt.core.settings" name="Debug">
6+
<externalSettings>
7+
<externalSetting>
8+
<entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/libjpak"/>
9+
<entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/libjpak/Debug"/>
10+
<entry flags="RESOLVED" kind="libraryFile" name="libjpak" srcPrefixMapping="" srcRootPath=""/>
11+
</externalSetting>
12+
</externalSettings>
13+
<extensions>
14+
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
15+
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
16+
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
17+
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
18+
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
19+
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
20+
</extensions>
21+
</storageModule>
22+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
23+
<configuration artifactExtension="so" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.sharedLib" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.sharedLib" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.cross.so.debug.320805835" name="Debug" parent="cdt.managedbuild.config.gnu.cross.so.debug">
24+
<folderInfo id="cdt.managedbuild.config.gnu.cross.so.debug.320805835." name="/" resourcePath="">
25+
<toolChain id="cdt.managedbuild.toolchain.gnu.cross.so.debug.513679468" name="Cross GCC" superClass="cdt.managedbuild.toolchain.gnu.cross.so.debug">
26+
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="cdt.managedbuild.targetPlatform.gnu.cross.2101776554" isAbstract="false" osList="all" superClass="cdt.managedbuild.targetPlatform.gnu.cross"/>
27+
<builder buildPath="${workspace_loc:/libjpak}/Debug" id="cdt.managedbuild.builder.gnu.cross.1203055334" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="cdt.managedbuild.builder.gnu.cross"/>
28+
<tool id="cdt.managedbuild.tool.gnu.cross.c.compiler.1835160734" name="Cross GCC Compiler" superClass="cdt.managedbuild.tool.gnu.cross.c.compiler">
29+
<option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.option.optimization.level.1044706102" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
30+
<option id="gnu.c.compiler.option.debugging.level.1073835195" name="Debug Level" superClass="gnu.c.compiler.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/>
31+
<option id="gnu.c.compiler.option.misc.pic.431893111" superClass="gnu.c.compiler.option.misc.pic" value="true" valueType="boolean"/>
32+
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.263984192" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
33+
</tool>
34+
<tool id="cdt.managedbuild.tool.gnu.cross.cpp.compiler.83800803" name="Cross G++ Compiler" superClass="cdt.managedbuild.tool.gnu.cross.cpp.compiler">
35+
<option id="gnu.cpp.compiler.option.optimization.level.1248909425" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
36+
<option id="gnu.cpp.compiler.option.debugging.level.657901764" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
37+
<option id="gnu.cpp.compiler.option.other.pic.765880724" superClass="gnu.cpp.compiler.option.other.pic" value="true" valueType="boolean"/>
38+
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1757886321" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
39+
</tool>
40+
<tool id="cdt.managedbuild.tool.gnu.cross.c.linker.248135629" name="Cross GCC Linker" superClass="cdt.managedbuild.tool.gnu.cross.c.linker">
41+
<option defaultValue="true" id="gnu.c.link.option.shared.1111004342" name="Shared (-shared)" superClass="gnu.c.link.option.shared" valueType="boolean"/>
42+
</tool>
43+
<tool id="cdt.managedbuild.tool.gnu.cross.cpp.linker.660083193" name="Cross G++ Linker" superClass="cdt.managedbuild.tool.gnu.cross.cpp.linker">
44+
<option defaultValue="true" id="gnu.cpp.link.option.shared.2089636387" name="Shared (-shared)" superClass="gnu.cpp.link.option.shared" valueType="boolean"/>
45+
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1093083765" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
46+
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
47+
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
48+
</inputType>
49+
</tool>
50+
<tool id="cdt.managedbuild.tool.gnu.cross.archiver.491489298" name="Cross GCC Archiver" superClass="cdt.managedbuild.tool.gnu.cross.archiver"/>
51+
<tool id="cdt.managedbuild.tool.gnu.cross.assembler.1961334102" name="Cross GCC Assembler" superClass="cdt.managedbuild.tool.gnu.cross.assembler">
52+
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.242247632" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
53+
</tool>
54+
</toolChain>
55+
</folderInfo>
56+
</configuration>
57+
</storageModule>
58+
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
59+
</cconfiguration>
60+
<cconfiguration id="cdt.managedbuild.config.gnu.cross.so.release.944501988">
61+
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.cross.so.release.944501988" moduleId="org.eclipse.cdt.core.settings" name="Release">
62+
<externalSettings>
63+
<externalSetting>
64+
<entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/libjpak"/>
65+
<entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/libjpak/Release"/>
66+
<entry flags="RESOLVED" kind="libraryFile" name="libjpak" srcPrefixMapping="" srcRootPath=""/>
67+
</externalSetting>
68+
</externalSettings>
69+
<extensions>
70+
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
71+
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
72+
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
73+
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
74+
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
75+
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
76+
</extensions>
77+
</storageModule>
78+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
79+
<configuration artifactExtension="so" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.sharedLib" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.sharedLib" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.cross.so.release.944501988" name="Release" parent="cdt.managedbuild.config.gnu.cross.so.release">
80+
<folderInfo id="cdt.managedbuild.config.gnu.cross.so.release.944501988." name="/" resourcePath="">
81+
<toolChain id="cdt.managedbuild.toolchain.gnu.cross.so.release.399609289" name="Cross GCC" superClass="cdt.managedbuild.toolchain.gnu.cross.so.release">
82+
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="cdt.managedbuild.targetPlatform.gnu.cross.1803924986" isAbstract="false" osList="all" superClass="cdt.managedbuild.targetPlatform.gnu.cross"/>
83+
<builder buildPath="${workspace_loc:/libjpak}/Release" id="cdt.managedbuild.builder.gnu.cross.311830910" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="cdt.managedbuild.builder.gnu.cross"/>
84+
<tool id="cdt.managedbuild.tool.gnu.cross.c.compiler.1400871866" name="Cross GCC Compiler" superClass="cdt.managedbuild.tool.gnu.cross.c.compiler">
85+
<option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.option.optimization.level.605113522" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
86+
<option id="gnu.c.compiler.option.debugging.level.600471472" name="Debug Level" superClass="gnu.c.compiler.option.debugging.level" value="gnu.c.debugging.level.none" valueType="enumerated"/>
87+
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1722449886" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
88+
</tool>
89+
<tool id="cdt.managedbuild.tool.gnu.cross.cpp.compiler.194132451" name="Cross G++ Compiler" superClass="cdt.managedbuild.tool.gnu.cross.cpp.compiler">
90+
<option id="gnu.cpp.compiler.option.optimization.level.844970384" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
91+
<option id="gnu.cpp.compiler.option.debugging.level.1502595616" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
92+
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.900139338" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
93+
</tool>
94+
<tool id="cdt.managedbuild.tool.gnu.cross.c.linker.441534779" name="Cross GCC Linker" superClass="cdt.managedbuild.tool.gnu.cross.c.linker">
95+
<option defaultValue="true" id="gnu.c.link.option.shared.617324342" name="Shared (-shared)" superClass="gnu.c.link.option.shared" valueType="boolean"/>
96+
</tool>
97+
<tool id="cdt.managedbuild.tool.gnu.cross.cpp.linker.1689034166" name="Cross G++ Linker" superClass="cdt.managedbuild.tool.gnu.cross.cpp.linker">
98+
<option defaultValue="true" id="gnu.cpp.link.option.shared.2005847868" name="Shared (-shared)" superClass="gnu.cpp.link.option.shared" valueType="boolean"/>
99+
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.630073571" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
100+
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
101+
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
102+
</inputType>
103+
</tool>
104+
<tool id="cdt.managedbuild.tool.gnu.cross.archiver.2145310723" name="Cross GCC Archiver" superClass="cdt.managedbuild.tool.gnu.cross.archiver"/>
105+
<tool id="cdt.managedbuild.tool.gnu.cross.assembler.1716327293" name="Cross GCC Assembler" superClass="cdt.managedbuild.tool.gnu.cross.assembler">
106+
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.684291517" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
107+
</tool>
108+
</toolChain>
109+
</folderInfo>
110+
</configuration>
111+
</storageModule>
112+
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
113+
</cconfiguration>
114+
</storageModule>
115+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
116+
<project id="libjpak.cdt.managedbuild.target.gnu.cross.so.1160724346" name="Shared Library" projectType="cdt.managedbuild.target.gnu.cross.so"/>
117+
</storageModule>
118+
<storageModule moduleId="scannerConfiguration">
119+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
120+
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cross.so.debug.320805835;cdt.managedbuild.config.gnu.cross.so.debug.320805835.;cdt.managedbuild.tool.gnu.cross.cpp.compiler.83800803;cdt.managedbuild.tool.gnu.cpp.compiler.input.1757886321">
121+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
122+
</scannerConfigBuildInfo>
123+
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cross.so.release.944501988;cdt.managedbuild.config.gnu.cross.so.release.944501988.;cdt.managedbuild.tool.gnu.cross.c.compiler.1400871866;cdt.managedbuild.tool.gnu.c.compiler.input.1722449886">
124+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
125+
</scannerConfigBuildInfo>
126+
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cross.so.debug.320805835;cdt.managedbuild.config.gnu.cross.so.debug.320805835.;cdt.managedbuild.tool.gnu.cross.c.compiler.1835160734;cdt.managedbuild.tool.gnu.c.compiler.input.263984192">
127+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
128+
</scannerConfigBuildInfo>
129+
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cross.so.release.944501988;cdt.managedbuild.config.gnu.cross.so.release.944501988.;cdt.managedbuild.tool.gnu.cross.cpp.compiler.194132451;cdt.managedbuild.tool.gnu.cpp.compiler.input.900139338">
130+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
131+
</scannerConfigBuildInfo>
132+
</storageModule>
133+
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
134+
<storageModule moduleId="refreshScope" versionNumber="2">
135+
<configuration configurationName="Release">
136+
<resource resourceType="PROJECT" workspacePath="/libjpak"/>
137+
</configuration>
138+
<configuration configurationName="Debug">
139+
<resource resourceType="PROJECT" workspacePath="/libjpak"/>
140+
</configuration>
141+
</storageModule>
142+
</cproject>

cpp/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/Debug

cpp/JPAK.cpp

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
/*
2+
* JPAK.cpp
3+
*
4+
* Created on: 19/11/2013
5+
* Author: lucas
6+
*/
7+
8+
#include "JPAK.h"
9+
10+
JPAK::JPAK() {
11+
// TODO Auto-generated constructor stub
12+
13+
}
14+
15+
JPAK::~JPAK() {
16+
// TODO Auto-generated destructor stub
17+
}
18+
bool JPAK::ProcessTable(string &table) {
19+
return reader.parse(table.c_str(), root);
20+
}
21+
bool JPAK::LoadFromFile(string &filename) {
22+
char magic[5];
23+
unsigned int tableoffset;
24+
unsigned int fsize = 0;
25+
jpakfile.open(filename.c_str());
26+
if(jpakfile.good()) {
27+
jpakfile.read(magic,5);
28+
if(strncmp("JPAK1",magic,5) == 0) {
29+
jpakfile.seekg(0,ios_base::end);
30+
fsize = jpakfile.tellg();
31+
jpakfile.seekg(-4,ios_base::end);
32+
jpakfile >> tableoffset;
33+
jpakfile.seekg(tableoffset, ios_base::beg);
34+
char table[fsize-tableoffset-4];
35+
jpakfile.read(table, fsize-tableoffset-4);
36+
string table_s = table;
37+
if(ProcessTable(table_s)) {
38+
ready = true;
39+
return false;
40+
}else{
41+
cout << "Cannot parse JPAK Table!" << endl;
42+
return false;
43+
}
44+
}else{
45+
cout << "Invalid JPAK file! " << endl;
46+
return false;
47+
}
48+
}else{
49+
cout << "Cannot open file " << filename << endl;
50+
return false;
51+
}
52+
}
53+
54+
void JPAK::GetFile(string &path, char *buffer) {
55+
56+
}

cpp/JPAK.h

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/*
2+
* JPAK.h
3+
*
4+
* Created on: 19/11/2013
5+
* Author: lucas
6+
*/
7+
8+
#ifndef JPAK_H_
9+
#define JPAK_H_
10+
11+
#include <jsoncpp/json/json.h>
12+
#include <string.h>
13+
#include <map>
14+
#include <iostream>
15+
#include <sstream>
16+
#include <fstream>
17+
#include <string>
18+
19+
using namespace std;
20+
class JPAK {
21+
private:
22+
Json::Value root;
23+
Json::Reader reader;
24+
ifstream jpakfile;
25+
bool ready;
26+
bool ProcessTable(string &);
27+
public:
28+
JPAK();
29+
virtual ~JPAK();
30+
31+
bool LoadFromFile(string &);
32+
void GetFile(string &, char *);
33+
};
34+
35+
#endif /* JPAK_H_ */

cpp/test.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"files": {"MUSIC.MP3": {"path": "/MUSIC.MP3", "size": 3799296, "name": "MUSIC.MP3", "offset": 50092}, "MUSIC.OGG": {"path": "/MUSIC.OGG", "size": 2125034, "name": "MUSIC.OGG", "offset": 3849388}, "TITLE.JPG": {"path": "/TITLE.JPG", "size": 50079, "name": "TITLE.JPG", "offset": 13}}, "name": "nx20/13A0", "directories": {"CHARTS": {"files": {}, "path": "/CHARTS", "directories": {"DOUBLE": {"files": {"17.NX": {"path": "/CHARTS/DOUBLE/17.NX", "size": 46052, "name": "17.NX", "offset": 6005374}}, "path": "/CHARTS/DOUBLE", "directories": {}, "name": "DOUBLE", "numfiles": 1}, "SINGLE": {"files": {"17.NX": {"path": "/CHARTS/SINGLE/17.NX", "size": 30952, "name": "17.NX", "offset": 5974422}}, "path": "/CHARTS/SINGLE", "directories": {}, "name": "SINGLE", "numfiles": 1}}, "name": "CHARTS", "numfiles": 0}}, "path": "/", "numfiles": 3, "size": 0}

0 commit comments

Comments
 (0)