1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* Module: rbutil
* File: rbutil.h
*
* Copyright (C) 2005 Christi Alice Scarborough
*
* All files in this archive are subject to the GNU General Public License.
* See the file COPYING in the source tree root for full license agreement.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#include <wx/wxprec.h>
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include <wx/wx.h>
#endif
#ifndef __rbutil_HPP_
#define __rbutil_HPP_
#include <wx/config.h>
#include <wx/confbase.h>
#include <wx/fileconf.h>
#include <wx/stdpaths.h>
#include <wx/wfstream.h>
#include <wx/filesys.h>
#include <wx/fs_inet.h>
#include <wx/fs_zip.h>
#include <wx/progdlg.h>
#include <wx/protocol/http.h>
#include <wx/string.h>
#include <wx/url.h>
#include <wx/ptr_scpd.h>
#include <wx/zipstrm.h>
#include <wx/dir.h>
#include <wx/filefn.h>
#include <wx/sstream.h>
#include <wx/msgdlg.h>
#include <wx/log.h>
#include <wx/file.h>
#include <wx/wizard.h>
#include <wx/event.h>
#ifdef __WXMSW__
#define PATH_SEP "\\"
#define PATH_SEP_CHR '\\'
#define EXE_NAME "rbutil.exe"
#else
#define PATH_SEP "/"
#define PATH_SEP_CHR '/'
#define EXE_NAME "rbutil"
#endif
#define UNINSTALL_FILE ".rockbox" PATH_SEP ".rbutil_install_data"
#define MAX_PLATFORMS 50
#define SYSTEM_CONFIG rbutil.ini
#define FILE_BUFFER_SIZE 1024
//WX_DEFINE_OBJARRAY(bool, wxArrayBool);
class GlobalVars
{
public:
// Program configuration data (rbutil.ini and environment)
wxFileConfig* GlobalConfig;
wxFileConfig* UserConfig;
wxString UserConfigFile;
wxString GlobalConfigFile;
wxString AppDir;
wxString ResourceDir;
wxString* ErrStr;
wxStandardPaths* stdpaths;
wxArrayString plat_id;
wxArrayString plat_name;
wxArrayInt plat_released;
wxString download_url;
wxString daily_url;
wxString bleeding_url;
wxString server_conf_url;
wxString font_url;
wxString last_release;
wxString prog_name;
// User configuration data.
wxString curplat;
unsigned int curplatnum;
wxString curdestdir;
unsigned int curbuild;
bool curisfull;
bool nocache;
bool portable;
// Global system variables
wxFFile* logfile;
wxLogStderr* logstderr;
wxLogChain* logchain;
wxLogGui* loggui;
};
extern GlobalVars* gv;
wxString wxFindAppPath(const wxString& argv0, const wxString& cwd,
const wxString& appVariableName);
int DownloadURL(wxString src, wxString dest);
int UnzipFile(wxString src, wxString destdir, bool isInstall = false);
int Uninstall(const wxString dir, bool isFullUninstall = false);
bool InstallRbutil(wxString dest);
wxString stream_err_str(int errnum);
bool rm_rf(wxString file);
#define ERR_DIALOG(msg, title) \
wxLogError("%s: %s", ((wxString) title).c_str(), ((wxString) msg).c_str())
#define WARN_DIALOG(msg, title) \
wxLogWarning("%s: %s", ((wxString) title).c_str(), ((wxString) msg).c_str())
#define MESG_DIALOG(msg) \
wxLogMessage(msg)
#define INFO_DIALOG(msg) \
wxLogInfo(msg)
#define BUILD_RELEASE 0
#define BUILD_DAILY 1
#define BUILD_BLEEDING 2
#endif
|