AeMain.c++
1.85 KB
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
//
// Contains the main proc for the audio editor
// process.
//
#include <Vk/VkApp.h>
#include "AeAssetBase.h"
#include "AeAssetEditor.h"
#include "AeN64Driver.h"
#include "AeFieldUI.h"
#include "AeUnitTest.h"
#include "AeErr.h"
#include "AeConfig.h"
extern void InitEZ (void);
static void initPlayer (AeAssetBase *);
static void initEditor (AeAssetBase *);
extern int gArgc;
extern char ** gArgv;
extern char * bankFileName;
extern char * cFileName;
extern AeN64Driver * n64Driver;
void
AeMainProc (void * arg)
{
AePlayer * player;
InitEZ();
#ifndef NDEBUG
// run any unit tests
RunUnitTests ();
#endif
// create an application object
VkApp * app = new VkApp ("ae-defaults", &gArgc, gArgv);
// create the asset data base
AeAssetBase * assetBase = new AeAssetBase ();
// init asset player
initPlayer (assetBase);
// create the main asset editor
initEditor (assetBase);
app->run ();
}
static void
initPlayer (AeAssetBase * assetBase)
{
if (AeN64Driver::NewN64Driver (cFileName, n64Driver))
n64Driver = NULL;
if (n64Driver)
n64Driver->SetAssetBase (assetBase);
}
static void
initEditor (AeAssetBase * assetBase)
{
// These need to be put wherever they belong
AeBinEditor::qLeft = XrmStringToQuark ("Left");
AeBinEditor::qRight = XrmStringToQuark ("Right");
AeBinEditor::qUp = XrmStringToQuark ("Up");
AeBinEditor::qDown = XrmStringToQuark ("Down");
AeFieldUI::CalcListFontRatio ();
// Create the top level windows
AeAssetEditor * assetEditor = new AeAssetEditor ();
// The order is important here since the effect delay
// fields need to have access to the player in order
// to properly init themselves.
assetEditor->SetPlayer (n64Driver);
assetEditor->SetAssetBase (assetBase);
if (bankFileName)
assetEditor->OpenFile (bankFileName);
}