Intial commit
This commit is contained in:
115
source/main.cpp
Normal file
115
source/main.cpp
Normal file
@ -0,0 +1,115 @@
|
||||
#include <coreinit/thread.h>
|
||||
#include <coreinit/ios.h>
|
||||
#include <sysapp/launch.h>
|
||||
#include <coreinit/time.h>
|
||||
#include <coreinit/systeminfo.h>
|
||||
#include <proc_ui/procui.h>
|
||||
#include <coreinit/memheap.h>
|
||||
#include <coreinit/memfrmheap.h>
|
||||
#include <nn/ac.h>
|
||||
|
||||
#include <whb/proc.h>
|
||||
#include <whb/log.h>
|
||||
#include <whb/log_udp.h>
|
||||
|
||||
#include <thread>
|
||||
|
||||
static bool logginginitDone = false;
|
||||
|
||||
bool logWhileRunning(int* last_tm_sec){
|
||||
|
||||
switch(ProcUIProcessMessages(true))
|
||||
{
|
||||
case PROCUI_STATUS_EXITING:
|
||||
{
|
||||
if(logginginitDone){
|
||||
WHBLogUdpDeinit();
|
||||
logginginitDone = false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
case PROCUI_STATUS_RELEASE_FOREGROUND:
|
||||
{
|
||||
if(logginginitDone){
|
||||
WHBLogUdpDeinit();
|
||||
logginginitDone = false;
|
||||
}
|
||||
ProcUIDrawDoneRelease();
|
||||
break;
|
||||
}
|
||||
case PROCUI_STATUS_IN_FOREGROUND:
|
||||
{
|
||||
if(!logginginitDone){
|
||||
WHBLogUdpInit();
|
||||
logginginitDone = true;
|
||||
}
|
||||
OSCalendarTime tm;
|
||||
OSTicksToCalendarTime(OSGetTime(), &tm);
|
||||
|
||||
if (tm.tm_sec != *last_tm_sec) {
|
||||
WHBLogPrintf("%02d/%02d/%04d %02d:%02d:%02d I'm still here.",
|
||||
tm.tm_mday, tm.tm_mon, tm.tm_year,
|
||||
tm.tm_hour, tm.tm_min, tm.tm_sec);
|
||||
*last_tm_sec = tm.tm_sec;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case PROCUI_STATUS_IN_BACKGROUND:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
int
|
||||
hello_thread()
|
||||
{
|
||||
int last_tm_sec = -1;
|
||||
uint32_t ip = 0;
|
||||
WHBLogPrintf("Hello World from a std::thread!");
|
||||
|
||||
if (!nn::ac::GetAssignedAddress(&ip)) {
|
||||
WHBLogPrintf("GetAssignedAddress failed!");
|
||||
}
|
||||
|
||||
WHBLogPrintf("My IP is: %u.%u.%u.%u",
|
||||
(ip >> 24) & 0xFF,
|
||||
(ip >> 16) & 0xFF,
|
||||
(ip >> 8) & 0xFF,
|
||||
(ip >> 0) & 0xFF);
|
||||
|
||||
while(logWhileRunning(&last_tm_sec)) {
|
||||
OSSleepTicks(OSMillisecondsToTicks(100));
|
||||
}
|
||||
|
||||
WHBLogPrintf("Exiting... good bye.");
|
||||
OSSleepTicks(OSMillisecondsToTicks(1000));
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
nn::ac::ConfigIdNum configId;
|
||||
|
||||
nn::ac::Initialize();
|
||||
nn::ac::GetStartupId(&configId);
|
||||
nn::ac::Connect(configId);
|
||||
|
||||
WHBLogUdpInit();
|
||||
logginginitDone = true;
|
||||
WHBProcInit();
|
||||
|
||||
std::thread t(hello_thread);
|
||||
t.join();
|
||||
|
||||
if(logginginitDone){
|
||||
WHBLogUdpDeinit();
|
||||
}
|
||||
WHBProcShutdown();
|
||||
|
||||
nn::ac::Finalize();
|
||||
return 0;
|
||||
}
|
Reference in New Issue
Block a user