Browse Source

Enable networking and stdio on Switch platform

pull/497/head
rsn8887 7 years ago committed by Anders Jenbo
parent
commit
3db7f4ee86
  1. 1
      CMakeLists.txt
  2. 8
      SourceX/main.cpp
  3. 23
      SourceX/platform/switch/network.cpp
  4. 4
      SourceX/platform/switch/network.h

1
CMakeLists.txt

@ -283,6 +283,7 @@ set(BIN_TARGET devilutionx)
if(SWITCH)
list(APPEND devilutionx_SRCS
SourceX/platform/switch/network.cpp
SourceX/platform/switch/keyboard.cpp
SourceX/platform/switch/docking.cpp)
set(BIN_TARGET devilutionx.elf)

8
SourceX/main.cpp

@ -1,5 +1,8 @@
#include <string>
#include <SDL.h>
#ifdef __SWITCH__
#include "platform/switch/network.h"
#endif
#include "devilution.h"
@ -25,5 +28,10 @@ static std::string build_cmdline(int argc, char **argv)
int main(int argc, char **argv)
{
auto cmdline = build_cmdline(argc, argv);
#ifdef __SWITCH__
switch_enable_network();
#endif
return dvl::WinMain(NULL, NULL, (char *)cmdline.c_str(), 0);
}

23
SourceX/platform/switch/network.cpp

@ -0,0 +1,23 @@
#include <stdlib.h>
#include <unistd.h>
#include <switch.h>
#include "platform/switch/network.h"
static int nxlink_sock = -1; // for stdio on Switch
void switch_enable_network()
{
// enable network and stdio on Switch
socketInitializeDefault();
// enable error messages via nxlink on Switch
nxlink_sock = nxlinkStdio();
atexit(switch_disable_network);
}
void switch_disable_network()
{
// disable network and stdio on Switch
if (nxlink_sock != -1)
close(nxlink_sock);
socketExit();
}

4
SourceX/platform/switch/network.h

@ -0,0 +1,4 @@
#pragma once
void switch_enable_network();
void switch_disable_network();
Loading…
Cancel
Save