Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
JORServer.h
Go to the documentation of this file.
1#ifndef JORSERVER_H
2#define JORSERVER_H
3
10
11u32 JORMessageBox(const char* message, const char* title, u32 style);
12
15 void JORAppend();
16 void JORRemove();
17
18 virtual int JORAct(u32, const char*);
20
21 bool JORIsAcceptableID(u32 eventID) const {
22 bool result = false;
23 if (field_0xc <= eventID && eventID <= field_0x10) {
24 result = true;
25 }
26 return result;
27 }
28
30 /* 0x0C */ u32 field_0xc;
31 /* 0x10 */ u32 field_0x10;
32};
33
34class JORFile;
35class JORDir;
38
39class JORServer : public JHITag<JHICmnMem> {
40public:
41 typedef void (*EventFunc)(u32,char *);
43
56
58 m_event(false),
59 m_eventDone(true),
60 m_eventFunc(NULL),
62 {}
63
64 static JORServer* create();
65 void receive(const char*, s32);
66
69
74
79
80 static void defSetVal(void*, u32, s32);
81 static void defSetBitVal(void*, u32, u16, u16);
82
88
92
100
101 void sendReset();
102
103 void setRootNode(const char*, JORReflexible*, u32, u32);
104 void doneEvent();
105
106 bool getEvent() { return m_event; }
107 void setEvent(bool event) { m_event = event; }
108 void setEventDone(bool eventDone) { m_eventDone = eventDone; }
110 char* getEventName() { return m_eventName; }
112 void setEventFunc(EventFunc func) { m_eventFunc = func; }
116
117 static JORServer* getInstance() { return instance; }
119
120 /* 0x0000C */ JORMContext m_context;
121 /* 0x10020 */ JORReflexible* mp_rootObj;
122 /* 0x10024 */ char m_rootName[64];
123 /* 0x10064 */ u32 field_0x10064;
124 /* 0x10068 */ u32 field_0x10068;
125 /* 0x1006C */ bool m_event;
126 /* 0x1006D */ bool m_eventDone;
127 /* 0x10070 */ u32 m_eventNum;
128 /* 0x10074 */ char m_eventName[0x1000];
129 /* 0x11074 */ EventFunc m_eventFunc;
132};
133
137 if (server->getEvent()) {
138 server->setEvent(false);
139 server->setEventDone(false);
140 u32 eventNum = server->getEventNum();
141 char* eventName = server->getEventName();
142 if (server->isEventCallbackListEnabled() && eventNum >= 0x80000000) {
144 JORServer::CallbackLinkList::iterator end = list->end();
145 for (JORServer::CallbackLinkList::iterator it = list->begin(); it != end;) {
147 ++it;
148 if (!callback.JORIsAcceptableID(eventNum)) {
149 continue;
150 }
151 if (callback.JORAct(eventNum, eventName)) {
152 break;
153 }
154 }
155 } else {
156 JORServer::EventFunc func = server->getEventFunc();
157 if (func) {
158 func(eventNum, eventName);
159 }
160 }
161 server->doneEvent();
162 }
163 return JHIEventLoop();
164}
165
166inline void JOR_INIT() {
167 JORInit();
169}
170inline void JOR_SETROOTNODE(const char* name, JORReflexible* node, u32 param_3, u32 param_4) {
171 JORServer::getInstance()->setRootNode(name, node, param_3, param_4);
172}
173
175 return JORServer::getInstance()->attachMCTX(msgID);
176}
177
179 return JORServer::getInstance()->attachMCTX(msgID);
180}
181
182inline void releaseJORMContext(JORMContext* mctx) {
184}
185
186inline void JORReleaseMContext(JORMContext* mctx) {
188}
189
190inline void JOR_ENABLEEVENTCALLBACKLIST(bool enable) {
192}
193
194#endif /* JORSERVER_H */
u32 JHIEventLoop()
Definition JHIhioASync.cpp:51
void JORInit()
Definition JOREntry.cpp:7
void releaseJORMContext(JORMContext *mctx)
Definition JORServer.h:182
JORMContext * JORAttachMContext(u32 msgID)
Definition JORServer.h:178
void JORReleaseMContext(JORMContext *mctx)
Definition JORServer.h:186
void JOR_SETROOTNODE(const char *name, JORReflexible *node, u32 param_3, u32 param_4)
Definition JORServer.h:170
void JOR_INIT()
Definition JORServer.h:166
void JOR_ENABLEEVENTCALLBACKLIST(bool enable)
Definition JORServer.h:190
u32 JORMessageBox(const char *message, const char *title, u32 style)
Definition JORMessageBox.cpp:5
u32 JOR_MESSAGELOOP()
Definition JORServer.h:134
JORMContext * attachJORMContext(u32 msgID)
Definition JORServer.h:174
static JHIComPortManager< T > * getInstance()
Definition JOREntry.h:98
Definition JORFile.h:6
Definition JORFile.h:24
Definition JORHostInfo.h:39
Definition JORHostInfo.h:21
Definition JORMContext.h:128
Definition JORReflexible.h:47
Definition JORServer.h:39
void fio_readData_(JSUMemoryInputStream &)
Definition JORServer.cpp:290
void removeEventCallbackListNode(JOREventCallbackListNode *p)
Definition JORServer.h:75
void hostinfo_recvString_(JSUMemoryInputStream &, JORHostInfo_String *)
Definition JORServer.cpp:428
EventFunc getEventFunc()
Definition JORServer.h:111
void fio_openFile_(JSUMemoryInputStream &)
Definition JORServer.cpp:248
u32 field_0x10068
Definition JORServer.h:124
void hostinfo_dispatchMessage_(JSUMemoryInputStream &)
Definition JORServer.cpp:406
void enableEventCallbackList(bool enable)
Definition JORServer.h:114
JORMContext * attachMCTX(u32)
Definition JORServer.cpp:156
JORMContext m_context
Definition JORServer.h:120
void setEvent(bool event)
Definition JORServer.h:107
void dir_findNextFile_(JSUMemoryInputStream &, JORDir *)
Definition JORServer.cpp:384
void dir_dispatchMessage_(JSUMemoryInputStream &)
Definition JORServer.cpp:345
bool m_event
Definition JORServer.h:125
void dir_findFirstFile_(JSUMemoryInputStream &, JORDir *)
Definition JORServer.cpp:372
void setEventFunc(EventFunc func)
Definition JORServer.h:112
void fio_writeData_(JSUMemoryInputStream &)
Definition JORServer.cpp:314
char * getEventName()
Definition JORServer.h:110
void(*) EventFunc(u32, char *)
Definition JORServer.h:41
void setEventDone(bool eventDone)
Definition JORServer.h:108
bool m_isEventCallbackListEnabled
Definition JORServer.h:130
static void defSetBitVal(void *, u32, u16, u16)
Definition JORServer.cpp:138
void fio_dispatchMessage_(JSUMemoryInputStream &)
Definition JORServer.cpp:325
char m_eventName[0x1000]
Definition JORServer.h:128
void receive(const char *, s32)
Definition JORServer.cpp:170
void fio_closeFile_(JSUMemoryInputStream &)
Definition JORServer.cpp:275
void releaseMCTX(JORMContext *)
Definition JORServer.cpp:162
JORServer()
Definition JORServer.h:57
CallbackLinkList * referEventCallbackList()
Definition JORServer.h:115
JORReflexible * mp_rootObj
Definition JORServer.h:121
void setRootNode(const char *, JORReflexible *, u32, u32)
Definition JORServer.cpp:463
bool getEvent()
Definition JORServer.h:106
void readResultU32_(JSUMemoryInputStream &)
Definition JORServer.cpp:475
void doneEvent()
Definition JORServer.cpp:507
static JORServer * create()
Definition JORServer.cpp:116
void sendReset()
Definition JORServer.cpp:458
static void defSetVal(void *, u32, s32)
Definition JORServer.cpp:124
JGadget::TLinkList< JOREventCallbackListNode, -4 > CallbackLinkList
Definition JORServer.h:42
CallbackLinkList m_eventCallbackList
Definition JORServer.h:131
u32 field_0x10064
Definition JORServer.h:123
static JORServer * getInstance()
Definition JORServer.h:117
void hostinfo_localTime_(JSUMemoryInputStream &, JORHostInfo_CalendarTime *)
Definition JORServer.cpp:434
void readResultS32_(JSUMemoryInputStream &)
Definition JORServer.cpp:483
void readOrEvent_(JSUMemoryInputStream &)
Definition JORServer.cpp:491
ECommand
Definition JORServer.h:44
@ ECommand_GetRootObj
Definition JORServer.h:45
@ ECommand_NodeEvent
Definition JORServer.h:47
@ ECommand_HostInfo
Definition JORServer.h:53
@ ECommand_ReadResultU32
Definition JORServer.h:54
@ ECommand_PropertyEvent
Definition JORServer.h:48
@ ECommand_GenObjInfo
Definition JORServer.h:46
@ ECommand_FIO
Definition JORServer.h:49
@ ECommand_ReadResultS32
Definition JORServer.h:50
@ ECommand_DIR
Definition JORServer.h:52
@ ECommand_ReadOrEvent
Definition JORServer.h:51
void appendEventCallbackListNode(JOREventCallbackListNode *p)
Definition JORServer.h:70
u32 getEventNum()
Definition JORServer.h:109
void dir_browseForFolder_(JSUMemoryInputStream &, JORDir *)
Definition JORServer.cpp:395
bool m_eventDone
Definition JORServer.h:126
u32 m_eventNum
Definition JORServer.h:127
bool isEventCallbackListEnabled() const
Definition JORServer.h:113
EventFunc m_eventFunc
Definition JORServer.h:129
char m_rootName[64]
Definition JORServer.h:122
static JORServer * instance
Definition JORServer.h:118
Definition JSUMemoryStream.h:11
static void end(b_oh_class *i_this)
Definition d_a_b_oh.cpp:343
static void message(do_class *i_this)
Definition d_a_do.cpp:2182
s16 name
Definition d_a_e_pz.cpp:1757
p
Definition e_acos.c:103
unsigned long u32
Definition types.h:12
unsigned short int u16
Definition types.h:10
signed long s32
Definition types.h:11
static void callback(u32 param_0)
Definition OSExec.c:308
Definition linklist.h:11
Definition JHIComm.h:98
Definition JHICommonMem.h:21
Definition JORServer.h:13
virtual int JORAct(u32, const char *)
bool JORIsAcceptableID(u32 eventID) const
Definition JORServer.h:21
JOREventCallbackListNode(u32, u32, bool)
Definition JORServer.cpp:22
u32 field_0x10
Definition JORServer.h:31
JGadget::TLinkListNode m_node
Definition JORServer.h:29
void JORAppend()
Definition JORServer.cpp:10
virtual ~JOREventCallbackListNode()
Definition JORServer.cpp:31
void JORRemove()
Definition JORServer.cpp:16
u32 field_0xc
Definition JORServer.h:30