mirror of
https://github.com/DevL0rd/SkyNX
synced 2024-11-22 02:53:04 +00:00
Initial commit
This commit is contained in:
parent
6dd50bb01a
commit
40b70c1ce0
49 changed files with 203173 additions and 0 deletions
8
.gitignore
vendored
Normal file
8
.gitignore
vendored
Normal file
|
@ -0,0 +1,8 @@
|
|||
*.elf
|
||||
*.nro
|
||||
*.pfs0
|
||||
*.nacp
|
||||
*.nso
|
||||
build/*
|
||||
.DS_Store
|
||||
*node_modules
|
201
Switch/Makefile
Normal file
201
Switch/Makefile
Normal file
|
@ -0,0 +1,201 @@
|
|||
#---------------------------------------------------------------------------------
|
||||
.SUFFIXES:
|
||||
#---------------------------------------------------------------------------------
|
||||
|
||||
ifeq ($(strip $(DEVKITPRO)),)
|
||||
$(error "Please set DEVKITPRO in your environment. export DEVKITPRO=<path to>/devkitpro")
|
||||
endif
|
||||
|
||||
TOPDIR ?= $(CURDIR)
|
||||
include $(DEVKITPRO)/libnx/switch_rules
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# TARGET is the name of the output
|
||||
# BUILD is the directory where object files & intermediate files will be placed
|
||||
# SOURCES is a list of directories containing source code
|
||||
# DATA is a list of directories containing data files
|
||||
# INCLUDES is a list of directories containing header files
|
||||
# EXEFS_SRC is the optional input directory containing data copied into exefs, if anything this normally should only contain "main.npdm".
|
||||
# ROMFS is the directory containing data to be added to RomFS, relative to the Makefile (Optional)
|
||||
#
|
||||
# NO_ICON: if set to anything, do not use icon.
|
||||
# NO_NACP: if set to anything, no .nacp file is generated.
|
||||
# APP_TITLE is the name of the app stored in the .nacp file (Optional)
|
||||
# APP_AUTHOR is the author of the app stored in the .nacp file (Optional)
|
||||
# APP_VERSION is the version of the app stored in the .nacp file (Optional)
|
||||
# APP_TITLEID is the titleID of the app stored in the .nacp file (Optional)
|
||||
# ICON is the filename of the icon (.jpg), relative to the project folder.
|
||||
# If not set, it attempts to use one of the following (in this order):
|
||||
# - <Project name>.jpg
|
||||
# - icon.jpg
|
||||
# - <libnx folder>/default_icon.jpg
|
||||
#---------------------------------------------------------------------------------
|
||||
TARGET := $(notdir $(CURDIR))
|
||||
BUILD := build
|
||||
SOURCES := source
|
||||
DATA := data
|
||||
INCLUDES := include
|
||||
EXEFS_SRC := exefs_src
|
||||
|
||||
APP_AUTHOR := jakibaki, D-VAmpire
|
||||
APP_TITLE := In-Home-Switching
|
||||
APP_VERSION := 0.2.1
|
||||
|
||||
|
||||
|
||||
ARCH := -march=armv8-a -mtune=cortex-a57 -mtp=soft -fPIE
|
||||
|
||||
CFLAGS := -g -Wall -O3 -ffunction-sections \
|
||||
$(ARCH) $(DEFINES)
|
||||
|
||||
CFLAGS += $(INCLUDE) `$(DEVKITPRO)/portlibs/switch/bin/sdl2-config --cflags`
|
||||
|
||||
CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions
|
||||
|
||||
ASFLAGS := -g $(ARCH)
|
||||
LDFLAGS = -specs=$(DEVKITPRO)/libnx/switch.specs -g $(ARCH) -Wl,-Map,$(notdir $*.map)
|
||||
|
||||
LIBS := -lSDL2_ttf -lSDL2_image -lSDL2_mixer -lSDL2 -lSDL2_gfx \
|
||||
-ljpeg \
|
||||
-lglad -lEGL -lglapi -ldrm_nouveau \
|
||||
-lvorbisidec -logg -lmpg123 -lmodplug -lstdc++ \
|
||||
-lglad -lEGL -lglapi -ldrm_nouveau \
|
||||
-lavformat -lavcodec -lswresample -lswscale -lavutil -lvpx -lbz2 -lass -ltheora -lvorbis -lopus\
|
||||
-lnx -lm -lfreetype -lpng -lz
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# list of directories containing libraries, this must be the top level containing
|
||||
# include and lib
|
||||
#---------------------------------------------------------------------------------
|
||||
LIBDIRS := $(PORTLIBS) $(LIBNX)
|
||||
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# no real need to edit anything past this point unless you need to add additional
|
||||
# rules for different file extensions
|
||||
#---------------------------------------------------------------------------------
|
||||
ifneq ($(BUILD),$(notdir $(CURDIR)))
|
||||
#---------------------------------------------------------------------------------
|
||||
|
||||
export OUTPUT := $(CURDIR)/$(TARGET)
|
||||
export TOPDIR := $(CURDIR)
|
||||
|
||||
export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \
|
||||
$(foreach dir,$(DATA),$(CURDIR)/$(dir))
|
||||
|
||||
export DEPSDIR := $(CURDIR)/$(BUILD)
|
||||
|
||||
CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c)))
|
||||
CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp)))
|
||||
SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s)))
|
||||
BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*)))
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# use CXX for linking C++ projects, CC for standard C
|
||||
#---------------------------------------------------------------------------------
|
||||
ifeq ($(strip $(CPPFILES)),)
|
||||
#---------------------------------------------------------------------------------
|
||||
export LD := $(CC)
|
||||
#---------------------------------------------------------------------------------
|
||||
else
|
||||
#---------------------------------------------------------------------------------
|
||||
export LD := $(CXX)
|
||||
#---------------------------------------------------------------------------------
|
||||
endif
|
||||
#---------------------------------------------------------------------------------
|
||||
|
||||
export OFILES_BIN := $(addsuffix .o,$(BINFILES))
|
||||
export OFILES_SRC := $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o)
|
||||
export OFILES := $(OFILES_BIN) $(OFILES_SRC)
|
||||
export HFILES_BIN := $(addsuffix .h,$(subst .,_,$(BINFILES)))
|
||||
|
||||
export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \
|
||||
$(foreach dir,$(LIBDIRS),-I$(dir)/include) \
|
||||
-I$(CURDIR)/$(BUILD)
|
||||
|
||||
export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib)
|
||||
|
||||
export BUILD_EXEFS_SRC := $(TOPDIR)/$(EXEFS_SRC)
|
||||
|
||||
ifeq ($(strip $(ICON)),)
|
||||
icons := $(wildcard *.jpg)
|
||||
ifneq (,$(findstring $(TARGET).jpg,$(icons)))
|
||||
export APP_ICON := $(TOPDIR)/$(TARGET).jpg
|
||||
else
|
||||
ifneq (,$(findstring icon.jpg,$(icons)))
|
||||
export APP_ICON := $(TOPDIR)/icon.jpg
|
||||
endif
|
||||
endif
|
||||
else
|
||||
export APP_ICON := $(TOPDIR)/$(ICON)
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(NO_ICON)),)
|
||||
export NROFLAGS += --icon=$(APP_ICON)
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(NO_NACP)),)
|
||||
export NROFLAGS += --nacp=$(CURDIR)/$(TARGET).nacp
|
||||
endif
|
||||
|
||||
ifneq ($(APP_TITLEID),)
|
||||
export NACPFLAGS += --titleid=$(APP_TITLEID)
|
||||
endif
|
||||
|
||||
ifneq ($(ROMFS),)
|
||||
export NROFLAGS += --romfsdir=$(CURDIR)/$(ROMFS)
|
||||
endif
|
||||
|
||||
.PHONY: $(BUILD) clean all
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
all: $(BUILD)
|
||||
|
||||
$(BUILD):
|
||||
@[ -d $@ ] || mkdir -p $@
|
||||
@$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
clean:
|
||||
@echo clean ...
|
||||
@rm -fr $(BUILD) $(TARGET).pfs0 $(TARGET).nso $(TARGET).nro $(TARGET).nacp $(TARGET).elf
|
||||
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
else
|
||||
.PHONY: all
|
||||
|
||||
DEPENDS := $(OFILES:.o=.d)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# main targets
|
||||
#---------------------------------------------------------------------------------
|
||||
all : $(OUTPUT).pfs0 $(OUTPUT).nro
|
||||
|
||||
$(OUTPUT).pfs0 : $(OUTPUT).nso
|
||||
|
||||
$(OUTPUT).nso : $(OUTPUT).elf
|
||||
|
||||
ifeq ($(strip $(NO_NACP)),)
|
||||
$(OUTPUT).nro : $(OUTPUT).elf $(OUTPUT).nacp
|
||||
else
|
||||
$(OUTPUT).nro : $(OUTPUT).elf
|
||||
endif
|
||||
|
||||
$(OUTPUT).elf : $(OFILES)
|
||||
|
||||
$(OFILES_SRC) : $(HFILES_BIN)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# you need a rule like this for each extension you use as binary data
|
||||
#---------------------------------------------------------------------------------
|
||||
%.bin.o %_bin.h : %.bin
|
||||
#---------------------------------------------------------------------------------
|
||||
@echo $(notdir $<)
|
||||
@$(bin2o)
|
||||
|
||||
-include $(DEPENDS)
|
||||
|
||||
#---------------------------------------------------------------------------------------
|
||||
endif
|
||||
#---------------------------------------------------------------------------------------
|
103
Switch/README.md
Normal file
103
Switch/README.md
Normal file
|
@ -0,0 +1,103 @@
|
|||
# In-Home-Switching
|
||||
|
||||
This is a homebrew that enables streaming of PC games to the Nintendo Switch.
|
||||
|
||||
Have you ever been told by your parents that spending hours sitting in front of a PC was bad for you (like I was)? Well, now you can play your games portably anywhere in your house!
|
||||
|
||||
This project is fairly new, so please do not consider it totally stable. If you encounter issues, feel free to submit them.
|
||||
|
||||
## Features:
|
||||
* Stream PC screen to a Nintendo Switch in your local network
|
||||
* 720p (full Switch-Tablet display resolution)
|
||||
* 40-60 FPS (if not see Troubleshooting)
|
||||
* Low delay (again, see Troubleshooting)
|
||||
* Audio support (experimental)
|
||||
* Capture controller input on Nintendo Switch
|
||||
* Emulate an Xbox controller on the PC
|
||||
* PC app offers picture quality adjustments
|
||||
|
||||
## How to Use
|
||||
If you do not want to build by yourself, have a look at the [releases page](https://github.com/jakibaki/In-Home-Switching/releases). There you can find an Archive with the App for the Switch as well as the corresponding PC companion app. For the PC App, just execute In-Home-Switching.exe in the Windows directory after unzipping.
|
||||
|
||||
On PC, [Scp drivers](https://github.com/mogzol/ScpDriverInterface/releases/download/1.1/ScpDriverInterface_v1.1.zip) must also be installed (just unzip and execute `Driver Installer/ScpDriverInstaller.exe`). Otherwise the program will crash silently. For audio, [Screen Capture Recorder](https://github.com/rdp/screen-capture-recorder-to-video-windows-free/releases) also needs to be installed.
|
||||
|
||||
*Also please set your PC resolution to 1280x720p in Windows for getting **much** better performance of screen capturing while running the app.*
|
||||
|
||||
On the Switch, find out its IP address and start the app with your Switch CFW. Then type in the Switch's IP address on the PC app and hit the `Connect` button.
|
||||
|
||||
## Windows App Screenshot
|
||||
|
||||
![PC companion app](screenshots/windowsappuiupdate.png "PC app for streaming screen")
|
||||
|
||||
## Screenshots from Nintendo Switch
|
||||
|
||||
![Track Mania](screenshots/TrackMania.jpg "Track Mania on Switch")
|
||||
![Witcher 3](screenshots/witcher.jpg "Witcher 3 on Switch")
|
||||
![PC companion app](screenshots/PCApp.jpg "PC app for streaming screen")
|
||||
|
||||
|
||||
## Current Limitations
|
||||
* Only works with Windows 8 (64-bit) and newer
|
||||
* Audio support only experimental atm
|
||||
* No support for Switch CFW other than [Atmosphère](https://github.com/Atmosphere-NX/Atmosphere) or [Kosmos](https://github.com/AtlasNX/Kosmos)
|
||||
|
||||
## Known issues
|
||||
* So far Switch crashes when put to sleep with app running (please close app beforehand, we have not fixed this issue yet)
|
||||
* App breaks when Switch changes from docked to handheld mode or vice-versa. Please quit the app before doing so.
|
||||
|
||||
## Further notices
|
||||
This app uses core overclocking to 1785 MHz on the Nintendo Switch. We use this measure in order to decode the incoming videos efficiently. As far as we know, there have been no reported cases of this damaging any devices. In other words, it is considered safe. Still we do not warrant for any potential device damage caused by this homebrew.
|
||||
|
||||
|
||||
## Scheduled for Future Releases
|
||||
* Stream PC audio to Switch
|
||||
* MacOS and Linux Support
|
||||
* Multi-controller support
|
||||
* Mouse emulation
|
||||
* More efficient threading
|
||||
* GPU encoding on PC
|
||||
|
||||
## Build instructions
|
||||
|
||||
Use the PKGBUILD from [here](https://github.com/jakibaki/pacman-packages/tree/ffmpeg_networking/switch/ffmpeg) for ffmpeg on Switch with more protocols enabled.
|
||||
|
||||
Everything else will follow here in short time (ask jakibaki on AtlasNX discord if necessary).
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### *Nice videos, but sadly that delay makes it unplayable*
|
||||
|
||||
If you are experiencing delays greater than 0.1 seconds, either your PC is just too slow for your chosen quality options (try worsening image quality) or your local network is bad. Basically we need instant data transfer in your network to work properly (this has nothing to do with throughput, just latency).
|
||||
Some WiFi-routers unfortunately just aren't up to the task.
|
||||
|
||||
### *These framedrops hurt my eyes!*
|
||||
|
||||
Your PC is probably too slow for encoding with the games/applications on. Try other applications, lower image quality and, if you haven't already, set your PC screen resolution to 1280x720p (saves scaling).
|
||||
|
||||
### *No drops, but my framerate is just very low*
|
||||
|
||||
Well, in our tests we had 60 FPS on Windows 10 with low image quality... I guess you can try the same strategies as for fixing framedrops, I hope that helps.
|
||||
|
||||
## Nightlies
|
||||
|
||||
We now feature nightly builds of the Switch app (always based on current master branch). They can be found [here](https://bsnx.lavatech.top/in-home-switching/).
|
||||
These builds are considered experimental, so please do not panic if something crashes sometimes ;)
|
||||
|
||||
## License
|
||||
|
||||
This code is licensed GPLv3 and this has a reason: We do not want to see (or read about) any parts of this project in non-open-source software (everything that is not GPLv3 licensed). Please share the notion of free code for everyone.
|
||||
|
||||
## Credits to
|
||||
|
||||
* [ffmpeg](https://www.ffmpeg.org/) for being such a powerful media tool that we use on PC and Switch.
|
||||
* [SwitchBrew](https://switchbrew.org/) for libNX and its ffmpeg inclusion
|
||||
* [Atmosphère](https://github.com/Atmosphere-NX/Atmosphere) for being such a great Switch CFW
|
||||
* [Captura](https://github.com/MathewSachin/Captura) for showing us how to capture frame input with Windows Duplication API
|
||||
* [simontime](https://github.com/switch-stuff/switch-usb-screen-stream-sharp) for his switch-usb-screen-stream-sharp project for Windows
|
||||
* [ScpDriverInterface](https://github.com/mogzol/ScpDriverInterface/) for the Xbox drivers on Windows
|
||||
* [Guillem96](https://github.com/Guillem96) for greatly improving our code quality
|
||||
* [NX-Shell](https://github.com/joel16/NX-Shell) for teaching us how to use SDL
|
||||
* [Checkpoint](https://github.com/FlagBrew/Checkpoint) also for SDL examples
|
||||
* [SunTheCourier](https://github.com/SunTheCourier) for adding config support to our Windows client
|
||||
* [AveSatanas](https://gitlab.com/ao) for offering a server that automatically builds our nightlies
|
||||
* [Screen Capture Recorder](https://github.com/rdp/screen-capture-recorder-to-video-windows-free) for helping us grabbing audio
|
5
Switch/build.bat
Normal file
5
Switch/build.bat
Normal file
|
@ -0,0 +1,5 @@
|
|||
@echo off
|
||||
Title Building NSP...
|
||||
echo Building NSP...
|
||||
make
|
||||
pause
|
143
Switch/build/SDL_FontCache.d
Normal file
143
Switch/build/SDL_FontCache.d
Normal file
|
@ -0,0 +1,143 @@
|
|||
SDL_FontCache.o: \
|
||||
C:/Github/New-In-Home-Switching/Switch/source/SDL_FontCache.c \
|
||||
C:/Github/New-In-Home-Switching/Switch/source/SDL_FontCache.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_main.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_stdinc.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_config.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_platform.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/begin_code.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/close_code.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_assert.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_atomic.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_audio.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_error.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_endian.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_mutex.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_thread.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_rwops.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_clipboard.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_cpuinfo.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_events.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_video.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_pixels.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_rect.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_surface.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_blendmode.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_keyboard.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_keycode.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_scancode.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_mouse.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_joystick.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_gamecontroller.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_quit.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_gesture.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_touch.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_filesystem.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_haptic.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_hints.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_loadso.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_log.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_messagebox.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_power.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_render.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_shape.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_system.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_timer.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_version.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_ttf.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL.h
|
||||
|
||||
C:/Github/New-In-Home-Switching/Switch/source/SDL_FontCache.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_main.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_stdinc.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_config.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_platform.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/begin_code.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/close_code.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_assert.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_atomic.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_audio.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_error.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_endian.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_mutex.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_thread.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_rwops.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_clipboard.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_cpuinfo.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_events.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_video.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_pixels.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_rect.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_surface.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_blendmode.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_keyboard.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_keycode.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_scancode.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_mouse.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_joystick.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_gamecontroller.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_quit.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_gesture.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_touch.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_filesystem.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_haptic.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_hints.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_loadso.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_log.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_messagebox.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_power.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_render.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_shape.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_system.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_timer.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_version.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_ttf.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL.h:
|
BIN
Switch/build/SDL_FontCache.o
Normal file
BIN
Switch/build/SDL_FontCache.o
Normal file
Binary file not shown.
36776
Switch/build/Switch.lst
Normal file
36776
Switch/build/Switch.lst
Normal file
File diff suppressed because it is too large
Load diff
159887
Switch/build/Switch.map
Normal file
159887
Switch/build/Switch.map
Normal file
File diff suppressed because it is too large
Load diff
1
Switch/build/audio.d
Normal file
1
Switch/build/audio.d
Normal file
|
@ -0,0 +1 @@
|
|||
audio.o: C:/Github/New-In-Home-Switching/Switch/source/audio.c
|
BIN
Switch/build/audio.o
Normal file
BIN
Switch/build/audio.o
Normal file
Binary file not shown.
BIN
Switch/build/exefs/main
Normal file
BIN
Switch/build/exefs/main
Normal file
Binary file not shown.
262
Switch/build/input.d
Normal file
262
Switch/build/input.d
Normal file
|
@ -0,0 +1,262 @@
|
|||
input.o: C:/Github/New-In-Home-Switching/Switch/source/input.c \
|
||||
C:/Github/New-In-Home-Switching/Switch/source/context.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavformat/avformat.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavcodec/avcodec.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/samplefmt.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/avutil.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/common.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/attributes.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/macros.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/version.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/avconfig.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/mem.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/error.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/rational.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/mathematics.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/intfloat.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/log.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/pixfmt.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/attributes.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/avutil.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/buffer.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/cpu.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/channel_layout.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/dict.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/frame.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/buffer.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/dict.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/samplefmt.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/hwcontext.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/frame.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/log.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/pixfmt.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/rational.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavcodec/version.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/version.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavformat/avio.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/common.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavformat/version.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_main.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_stdinc.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_config.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_platform.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/begin_code.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/close_code.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_assert.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_atomic.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_audio.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_error.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_endian.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_mutex.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_thread.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_rwops.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_clipboard.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_cpuinfo.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_events.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_video.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_pixels.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_rect.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_surface.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_blendmode.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_keyboard.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_keycode.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_scancode.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_mouse.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_joystick.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_gamecontroller.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_quit.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_gesture.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_touch.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_filesystem.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_haptic.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_hints.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_loadso.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_log.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_messagebox.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_power.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_render.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_shape.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_system.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_timer.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_version.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_image.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL.h \
|
||||
C:/Github/New-In-Home-Switching/Switch/source/SDL_FontCache.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_ttf.h \
|
||||
C:/Github/New-In-Home-Switching/Switch/source/input.h \
|
||||
C:/Github/New-In-Home-Switching/Switch/source/network.h
|
||||
|
||||
C:/Github/New-In-Home-Switching/Switch/source/context.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavformat/avformat.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavcodec/avcodec.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/samplefmt.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/avutil.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/common.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/attributes.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/macros.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/version.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/avconfig.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/mem.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/error.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/rational.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/mathematics.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/intfloat.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/log.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/pixfmt.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/attributes.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/avutil.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/buffer.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/cpu.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/channel_layout.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/dict.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/frame.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/buffer.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/dict.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/samplefmt.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/hwcontext.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/frame.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/log.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/pixfmt.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/rational.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavcodec/version.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/version.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavformat/avio.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/common.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavformat/version.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_main.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_stdinc.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_config.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_platform.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/begin_code.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/close_code.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_assert.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_atomic.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_audio.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_error.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_endian.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_mutex.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_thread.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_rwops.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_clipboard.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_cpuinfo.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_events.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_video.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_pixels.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_rect.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_surface.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_blendmode.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_keyboard.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_keycode.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_scancode.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_mouse.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_joystick.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_gamecontroller.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_quit.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_gesture.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_touch.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_filesystem.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_haptic.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_hints.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_loadso.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_log.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_messagebox.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_power.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_render.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_shape.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_system.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_timer.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_version.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_image.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL.h:
|
||||
|
||||
C:/Github/New-In-Home-Switching/Switch/source/SDL_FontCache.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_ttf.h:
|
||||
|
||||
C:/Github/New-In-Home-Switching/Switch/source/input.h:
|
||||
|
||||
C:/Github/New-In-Home-Switching/Switch/source/network.h:
|
BIN
Switch/build/input.o
Normal file
BIN
Switch/build/input.o
Normal file
Binary file not shown.
277
Switch/build/main.d
Normal file
277
Switch/build/main.d
Normal file
|
@ -0,0 +1,277 @@
|
|||
main.o: C:/Github/New-In-Home-Switching/Switch/source/main.c \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/samplefmt.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/avutil.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/common.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/attributes.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/macros.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/version.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/avconfig.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/mem.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/error.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/rational.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/mathematics.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/intfloat.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/log.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/pixfmt.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_main.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_stdinc.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_config.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_platform.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/begin_code.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/close_code.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_assert.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_atomic.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_audio.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_error.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_endian.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_mutex.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_thread.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_rwops.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_clipboard.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_cpuinfo.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_events.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_video.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_pixels.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_rect.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_surface.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_blendmode.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_keyboard.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_keycode.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_scancode.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_mouse.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_joystick.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_gamecontroller.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_quit.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_gesture.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_touch.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_filesystem.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_haptic.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_hints.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_loadso.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_log.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_messagebox.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_power.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_render.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_shape.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_system.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_timer.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_version.h \
|
||||
C:/Github/New-In-Home-Switching/Switch/source/context.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavformat/avformat.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavcodec/avcodec.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/attributes.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/avutil.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/buffer.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/cpu.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/channel_layout.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/dict.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/frame.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/buffer.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/dict.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/samplefmt.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/hwcontext.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/frame.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/log.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/pixfmt.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/rational.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavcodec/version.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/version.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavformat/avio.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/common.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavformat/version.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_image.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL.h \
|
||||
C:/Github/New-In-Home-Switching/Switch/source/SDL_FontCache.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_ttf.h \
|
||||
C:/Github/New-In-Home-Switching/Switch/source/input.h \
|
||||
C:/Github/New-In-Home-Switching/Switch/source/video.h \
|
||||
C:/Github/New-In-Home-Switching/Switch/source/network.h \
|
||||
C:/Github/New-In-Home-Switching/Switch/source/renderer.h \
|
||||
C:/devkitPro/portlibs/switch/include/libswscale/swscale.h \
|
||||
C:/devkitPro/portlibs/switch/include/libswscale/version.h \
|
||||
C:/Github/New-In-Home-Switching/Switch/source/audio.h
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/samplefmt.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/avutil.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/common.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/attributes.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/macros.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/version.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/avconfig.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/mem.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/error.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/rational.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/mathematics.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/intfloat.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/log.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/pixfmt.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_main.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_stdinc.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_config.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_platform.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/begin_code.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/close_code.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_assert.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_atomic.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_audio.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_error.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_endian.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_mutex.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_thread.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_rwops.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_clipboard.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_cpuinfo.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_events.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_video.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_pixels.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_rect.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_surface.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_blendmode.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_keyboard.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_keycode.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_scancode.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_mouse.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_joystick.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_gamecontroller.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_quit.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_gesture.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_touch.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_filesystem.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_haptic.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_hints.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_loadso.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_log.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_messagebox.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_power.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_render.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_shape.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_system.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_timer.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_version.h:
|
||||
|
||||
C:/Github/New-In-Home-Switching/Switch/source/context.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavformat/avformat.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavcodec/avcodec.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/attributes.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/avutil.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/buffer.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/cpu.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/channel_layout.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/dict.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/frame.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/buffer.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/dict.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/samplefmt.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/hwcontext.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/frame.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/log.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/pixfmt.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/rational.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavcodec/version.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/version.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavformat/avio.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/common.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavformat/version.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_image.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL.h:
|
||||
|
||||
C:/Github/New-In-Home-Switching/Switch/source/SDL_FontCache.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_ttf.h:
|
||||
|
||||
C:/Github/New-In-Home-Switching/Switch/source/input.h:
|
||||
|
||||
C:/Github/New-In-Home-Switching/Switch/source/video.h:
|
||||
|
||||
C:/Github/New-In-Home-Switching/Switch/source/network.h:
|
||||
|
||||
C:/Github/New-In-Home-Switching/Switch/source/renderer.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libswscale/swscale.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libswscale/version.h:
|
||||
|
||||
C:/Github/New-In-Home-Switching/Switch/source/audio.h:
|
BIN
Switch/build/main.o
Normal file
BIN
Switch/build/main.o
Normal file
Binary file not shown.
262
Switch/build/network.d
Normal file
262
Switch/build/network.d
Normal file
|
@ -0,0 +1,262 @@
|
|||
network.o: C:/Github/New-In-Home-Switching/Switch/source/network.c \
|
||||
C:/Github/New-In-Home-Switching/Switch/source/network.h \
|
||||
C:/Github/New-In-Home-Switching/Switch/source/context.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavformat/avformat.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavcodec/avcodec.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/samplefmt.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/avutil.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/common.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/attributes.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/macros.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/version.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/avconfig.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/mem.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/error.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/rational.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/mathematics.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/intfloat.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/log.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/pixfmt.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/attributes.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/avutil.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/buffer.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/cpu.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/channel_layout.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/dict.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/frame.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/buffer.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/dict.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/samplefmt.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/hwcontext.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/frame.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/log.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/pixfmt.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/rational.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavcodec/version.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/version.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavformat/avio.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/common.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavformat/version.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_main.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_stdinc.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_config.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_platform.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/begin_code.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/close_code.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_assert.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_atomic.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_audio.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_error.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_endian.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_mutex.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_thread.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_rwops.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_clipboard.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_cpuinfo.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_events.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_video.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_pixels.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_rect.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_surface.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_blendmode.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_keyboard.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_keycode.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_scancode.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_mouse.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_joystick.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_gamecontroller.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_quit.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_gesture.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_touch.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_filesystem.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_haptic.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_hints.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_loadso.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_log.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_messagebox.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_power.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_render.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_shape.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_system.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_timer.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_version.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_image.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL.h \
|
||||
C:/Github/New-In-Home-Switching/Switch/source/SDL_FontCache.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_ttf.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/timestamp.h
|
||||
|
||||
C:/Github/New-In-Home-Switching/Switch/source/network.h:
|
||||
|
||||
C:/Github/New-In-Home-Switching/Switch/source/context.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavformat/avformat.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavcodec/avcodec.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/samplefmt.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/avutil.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/common.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/attributes.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/macros.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/version.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/avconfig.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/mem.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/error.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/rational.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/mathematics.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/intfloat.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/log.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/pixfmt.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/attributes.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/avutil.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/buffer.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/cpu.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/channel_layout.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/dict.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/frame.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/buffer.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/dict.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/samplefmt.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/hwcontext.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/frame.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/log.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/pixfmt.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/rational.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavcodec/version.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/version.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavformat/avio.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/common.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavformat/version.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_main.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_stdinc.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_config.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_platform.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/begin_code.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/close_code.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_assert.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_atomic.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_audio.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_error.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_endian.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_mutex.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_thread.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_rwops.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_clipboard.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_cpuinfo.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_events.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_video.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_pixels.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_rect.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_surface.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_blendmode.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_keyboard.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_keycode.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_scancode.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_mouse.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_joystick.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_gamecontroller.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_quit.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_gesture.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_touch.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_filesystem.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_haptic.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_hints.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_loadso.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_log.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_messagebox.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_power.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_render.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_shape.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_system.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_timer.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_version.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_image.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL.h:
|
||||
|
||||
C:/Github/New-In-Home-Switching/Switch/source/SDL_FontCache.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_ttf.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/timestamp.h:
|
BIN
Switch/build/network.o
Normal file
BIN
Switch/build/network.o
Normal file
Binary file not shown.
274
Switch/build/renderer.d
Normal file
274
Switch/build/renderer.d
Normal file
|
@ -0,0 +1,274 @@
|
|||
renderer.o: C:/Github/New-In-Home-Switching/Switch/source/renderer.c \
|
||||
C:/Github/New-In-Home-Switching/Switch/source/renderer.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavformat/avformat.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavcodec/avcodec.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/samplefmt.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/avutil.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/common.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/attributes.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/macros.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/version.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/avconfig.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/mem.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/error.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/rational.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/mathematics.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/intfloat.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/log.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/pixfmt.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/attributes.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/avutil.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/buffer.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/cpu.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/channel_layout.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/dict.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/frame.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/buffer.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/dict.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/samplefmt.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/hwcontext.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/frame.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/log.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/pixfmt.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/rational.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavcodec/version.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/version.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavformat/avio.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/common.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavformat/version.h \
|
||||
C:/devkitPro/portlibs/switch/include/libswscale/swscale.h \
|
||||
C:/devkitPro/portlibs/switch/include/libswscale/version.h \
|
||||
C:/Github/New-In-Home-Switching/Switch/source/context.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_main.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_stdinc.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_config.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_platform.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/begin_code.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/close_code.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_assert.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_atomic.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_audio.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_error.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_endian.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_mutex.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_thread.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_rwops.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_clipboard.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_cpuinfo.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_events.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_video.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_pixels.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_rect.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_surface.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_blendmode.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_keyboard.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_keycode.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_scancode.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_mouse.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_joystick.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_gamecontroller.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_quit.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_gesture.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_touch.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_filesystem.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_haptic.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_hints.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_loadso.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_log.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_messagebox.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_power.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_render.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_shape.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_system.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_timer.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_version.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_image.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL.h \
|
||||
C:/Github/New-In-Home-Switching/Switch/source/SDL_FontCache.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_ttf.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/imgutils.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/pixdesc.h \
|
||||
C:/Github/New-In-Home-Switching/Switch/source/video.h
|
||||
|
||||
C:/Github/New-In-Home-Switching/Switch/source/renderer.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavformat/avformat.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavcodec/avcodec.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/samplefmt.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/avutil.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/common.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/attributes.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/macros.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/version.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/avconfig.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/mem.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/error.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/rational.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/mathematics.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/intfloat.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/log.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/pixfmt.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/attributes.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/avutil.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/buffer.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/cpu.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/channel_layout.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/dict.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/frame.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/buffer.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/dict.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/samplefmt.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/hwcontext.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/frame.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/log.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/pixfmt.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/rational.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavcodec/version.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/version.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavformat/avio.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/common.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavformat/version.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libswscale/swscale.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libswscale/version.h:
|
||||
|
||||
C:/Github/New-In-Home-Switching/Switch/source/context.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_main.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_stdinc.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_config.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_platform.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/begin_code.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/close_code.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_assert.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_atomic.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_audio.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_error.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_endian.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_mutex.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_thread.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_rwops.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_clipboard.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_cpuinfo.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_events.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_video.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_pixels.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_rect.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_surface.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_blendmode.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_keyboard.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_keycode.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_scancode.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_mouse.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_joystick.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_gamecontroller.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_quit.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_gesture.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_touch.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_filesystem.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_haptic.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_hints.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_loadso.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_log.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_messagebox.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_power.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_render.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_shape.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_system.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_timer.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_version.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_image.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL.h:
|
||||
|
||||
C:/Github/New-In-Home-Switching/Switch/source/SDL_FontCache.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_ttf.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/imgutils.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/pixdesc.h:
|
||||
|
||||
C:/Github/New-In-Home-Switching/Switch/source/video.h:
|
BIN
Switch/build/renderer.o
Normal file
BIN
Switch/build/renderer.o
Normal file
Binary file not shown.
280
Switch/build/video.d
Normal file
280
Switch/build/video.d
Normal file
|
@ -0,0 +1,280 @@
|
|||
video.o: C:/Github/New-In-Home-Switching/Switch/source/video.c \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/imgutils.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/avutil.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/common.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/attributes.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/macros.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/version.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/avconfig.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/mem.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/error.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/rational.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/mathematics.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/intfloat.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/log.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/pixfmt.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/pixdesc.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/samplefmt.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/timestamp.h \
|
||||
C:/Github/New-In-Home-Switching/Switch/source/video.h \
|
||||
C:/Github/New-In-Home-Switching/Switch/source/context.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavformat/avformat.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavcodec/avcodec.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/attributes.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/avutil.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/buffer.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/cpu.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/channel_layout.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/dict.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/frame.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/buffer.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/dict.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/samplefmt.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/hwcontext.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/frame.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/log.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/pixfmt.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/rational.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavcodec/version.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/version.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavformat/avio.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/common.h \
|
||||
C:/devkitPro/portlibs/switch/include/libavformat/version.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_main.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_stdinc.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_config.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_platform.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/begin_code.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/close_code.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_assert.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_atomic.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_audio.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_error.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_endian.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_mutex.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_thread.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_rwops.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_clipboard.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_cpuinfo.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_events.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_video.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_pixels.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_rect.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_surface.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_blendmode.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_keyboard.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_keycode.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_scancode.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_mouse.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_joystick.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_gamecontroller.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_quit.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_gesture.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_touch.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_filesystem.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_haptic.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_hints.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_loadso.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_log.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_messagebox.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_power.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_render.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_shape.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_system.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_timer.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_version.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_image.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL.h \
|
||||
C:/Github/New-In-Home-Switching/Switch/source/SDL_FontCache.h \
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_ttf.h \
|
||||
C:/Github/New-In-Home-Switching/Switch/source/network.h \
|
||||
C:/Github/New-In-Home-Switching/Switch/source/renderer.h \
|
||||
C:/devkitPro/portlibs/switch/include/libswscale/swscale.h \
|
||||
C:/devkitPro/portlibs/switch/include/libswscale/version.h
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/imgutils.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/avutil.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/common.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/attributes.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/macros.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/version.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/avconfig.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/mem.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/error.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/rational.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/mathematics.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/intfloat.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/log.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/pixfmt.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/pixdesc.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/samplefmt.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/timestamp.h:
|
||||
|
||||
C:/Github/New-In-Home-Switching/Switch/source/video.h:
|
||||
|
||||
C:/Github/New-In-Home-Switching/Switch/source/context.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavformat/avformat.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavcodec/avcodec.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/attributes.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/avutil.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/buffer.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/cpu.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/channel_layout.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/dict.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/frame.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/buffer.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/dict.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/samplefmt.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/hwcontext.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/frame.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/log.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/pixfmt.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/rational.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavcodec/version.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/version.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavformat/avio.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavutil/common.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libavformat/version.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_main.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_stdinc.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_config.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_platform.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/begin_code.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/close_code.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_assert.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_atomic.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_audio.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_error.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_endian.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_mutex.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_thread.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_rwops.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_clipboard.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_cpuinfo.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_events.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_video.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_pixels.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_rect.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_surface.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_blendmode.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_keyboard.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_keycode.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_scancode.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_mouse.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_joystick.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_gamecontroller.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_quit.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_gesture.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_touch.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_filesystem.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_haptic.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_hints.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_loadso.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_log.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_messagebox.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_power.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_render.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_shape.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_system.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_timer.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_version.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_image.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL.h:
|
||||
|
||||
C:/Github/New-In-Home-Switching/Switch/source/SDL_FontCache.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/SDL2/SDL_ttf.h:
|
||||
|
||||
C:/Github/New-In-Home-Switching/Switch/source/network.h:
|
||||
|
||||
C:/Github/New-In-Home-Switching/Switch/source/renderer.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libswscale/swscale.h:
|
||||
|
||||
C:/devkitPro/portlibs/switch/include/libswscale/version.h:
|
BIN
Switch/build/video.o
Normal file
BIN
Switch/build/video.o
Normal file
Binary file not shown.
BIN
Switch/icon.jpg
Normal file
BIN
Switch/icon.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
2337
Switch/source/SDL_FontCache.c
Normal file
2337
Switch/source/SDL_FontCache.c
Normal file
File diff suppressed because it is too large
Load diff
268
Switch/source/SDL_FontCache.h
Normal file
268
Switch/source/SDL_FontCache.h
Normal file
|
@ -0,0 +1,268 @@
|
|||
/*
|
||||
SDL_FontCache v0.9.0: A font cache for SDL and SDL_ttf
|
||||
by Jonathan Dearborn
|
||||
Dedicated to the memory of Florian Hufsky
|
||||
|
||||
License:
|
||||
The short:
|
||||
Use it however you'd like, but keep the copyright and license notice
|
||||
whenever these files or parts of them are distributed in uncompiled form.
|
||||
|
||||
The long:
|
||||
Copyright (c) 2016 Jonathan Dearborn
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef _SDL_FONTCACHE_H__
|
||||
#define _SDL_FONTCACHE_H__
|
||||
|
||||
#include "SDL.h"
|
||||
#include "SDL_ttf.h"
|
||||
#include <stdarg.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// Let's pretend this exists...
|
||||
#define TTF_STYLE_OUTLINE 16
|
||||
|
||||
#define FC_Rect SDL_Rect
|
||||
#define FC_Target SDL_Renderer
|
||||
#define FC_Image SDL_Texture
|
||||
#define FC_Log SDL_Log
|
||||
|
||||
// SDL_FontCache types
|
||||
|
||||
typedef enum
|
||||
{
|
||||
FC_ALIGN_LEFT,
|
||||
FC_ALIGN_CENTER,
|
||||
FC_ALIGN_RIGHT
|
||||
} FC_AlignEnum;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
FC_FILTER_NEAREST,
|
||||
FC_FILTER_LINEAR
|
||||
} FC_FilterEnum;
|
||||
|
||||
typedef struct FC_Scale
|
||||
{
|
||||
float x;
|
||||
float y;
|
||||
|
||||
} FC_Scale;
|
||||
|
||||
typedef struct FC_Effect
|
||||
{
|
||||
FC_AlignEnum alignment;
|
||||
FC_Scale scale;
|
||||
SDL_Color color;
|
||||
|
||||
} FC_Effect;
|
||||
|
||||
// Opaque type
|
||||
typedef struct FC_Font FC_Font;
|
||||
|
||||
typedef struct FC_GlyphData
|
||||
{
|
||||
SDL_Rect rect;
|
||||
int cache_level;
|
||||
|
||||
} FC_GlyphData;
|
||||
|
||||
// Object creation
|
||||
|
||||
FC_Rect FC_MakeRect(float x, float y, float w, float h);
|
||||
|
||||
FC_Scale FC_MakeScale(float x, float y);
|
||||
|
||||
SDL_Color FC_MakeColor(Uint8 r, Uint8 g, Uint8 b, Uint8 a);
|
||||
|
||||
FC_Effect FC_MakeEffect(FC_AlignEnum alignment, FC_Scale scale, SDL_Color color);
|
||||
|
||||
FC_GlyphData FC_MakeGlyphData(int cache_level, Sint16 x, Sint16 y, Uint16 w, Uint16 h);
|
||||
|
||||
// Font object
|
||||
|
||||
FC_Font* FC_CreateFont(void);
|
||||
|
||||
Uint8 FC_LoadFontFromTTF(FC_Font* font, SDL_Renderer* renderer, TTF_Font* ttf, TTF_Font* ext, SDL_Color color);
|
||||
|
||||
Uint8 FC_LoadFont_RW(FC_Font* font, SDL_Renderer* renderer, SDL_RWops* file_rwops_ttf, SDL_RWops* file_rwops_ext, Uint8 own_rwops, Uint32 pointSize, SDL_Color color, int style);
|
||||
|
||||
void FC_ClearFont(FC_Font* font);
|
||||
|
||||
void FC_FreeFont(FC_Font* font);
|
||||
|
||||
// Built-in loading strings
|
||||
|
||||
char* FC_GetStringASCII(void);
|
||||
|
||||
|
||||
// UTF-8 to SDL_FontCache codepoint conversion
|
||||
|
||||
/*!
|
||||
Returns the Uint32 codepoint (not UTF-32) parsed from the given UTF-8 string.
|
||||
\param c A pointer to a string of proper UTF-8 character values.
|
||||
\param advance_pointer If true, the source pointer will be incremented to skip the extra bytes from multibyte codepoints.
|
||||
*/
|
||||
Uint32 FC_GetCodepointFromUTF8(const char** c, Uint8 advance_pointer);
|
||||
|
||||
/*!
|
||||
Parses the given codepoint and stores the UTF-8 bytes in 'result'. The result is NULL terminated.
|
||||
\param result A memory buffer for the UTF-8 values. Must be at least 5 bytes long.
|
||||
\param codepoint The Uint32 codepoint to parse (not UTF-32).
|
||||
*/
|
||||
void FC_GetUTF8FromCodepoint(char* result, Uint32 codepoint);
|
||||
|
||||
|
||||
// UTF-8 string operations
|
||||
|
||||
/*! Allocates a new string of 'size' bytes that is already NULL-terminated. The NULL byte counts toward the size limit, as usual. Returns NULL if size is 0. */
|
||||
char* U8_alloc(unsigned int size);
|
||||
|
||||
/*! Deallocates the given string. */
|
||||
void U8_free(char* string);
|
||||
|
||||
/*! Allocates a copy of the given string. */
|
||||
char* U8_strdup(const char* string);
|
||||
|
||||
/*! Returns the number of UTF-8 characters in the given string. */
|
||||
int U8_strlen(const char* string);
|
||||
|
||||
/*! Returns the number of bytes in the UTF-8 multibyte character pointed at by 'character'. */
|
||||
int U8_charsize(const char* character);
|
||||
|
||||
/*! Copies the source multibyte character into the given buffer without overrunning it. Returns 0 on failure. */
|
||||
int U8_charcpy(char* buffer, const char* source, int buffer_size);
|
||||
|
||||
/*! Returns a pointer to the next UTF-8 character. */
|
||||
const char* U8_next(const char* string);
|
||||
|
||||
/*! Inserts a UTF-8 string into 'string' at the given position. Use a position of -1 to append. Returns 0 when unable to insert the string. */
|
||||
int U8_strinsert(char* string, int position, const char* source, int max_bytes);
|
||||
|
||||
/*! Erases the UTF-8 character at the given position, moving the subsequent characters down. */
|
||||
void U8_strdel(char* string, int position);
|
||||
|
||||
|
||||
// Internal settings
|
||||
|
||||
/*! Sets the string from which to load the initial glyphs. Use this if you need upfront loading for any reason (such as lack of render-target support). */
|
||||
void FC_SetLoadingString(FC_Font* font, const char* string);
|
||||
|
||||
/*! Returns the size of the internal buffer which is used for unpacking variadic text data. This buffer is shared by all FC_Fonts. */
|
||||
unsigned int FC_GetBufferSize(void);
|
||||
|
||||
/*! Changes the size of the internal buffer which is used for unpacking variadic text data. This buffer is shared by all FC_Fonts. */
|
||||
void FC_SetBufferSize(unsigned int size);
|
||||
|
||||
void FC_SetRenderCallback(FC_Rect (*callback)(FC_Image* src, FC_Rect* srcrect, FC_Target* dest, float x, float y, float xscale, float yscale));
|
||||
|
||||
FC_Rect FC_DefaultRenderCallback(FC_Image* src, FC_Rect* srcrect, FC_Target* dest, float x, float y, float xscale, float yscale);
|
||||
|
||||
|
||||
// Custom caching
|
||||
|
||||
/*! Returns the number of cache levels that are active. */
|
||||
int FC_GetNumCacheLevels(FC_Font* font);
|
||||
|
||||
/*! Returns the cache source texture at the given cache level. */
|
||||
FC_Image* FC_GetGlyphCacheLevel(FC_Font* font, int cache_level);
|
||||
|
||||
// TODO: Specify ownership of the texture (should be shareable)
|
||||
/*! Sets a cache source texture for rendering. New cache levels must be sequential. */
|
||||
Uint8 FC_SetGlyphCacheLevel(FC_Font* font, int cache_level, FC_Image* cache_texture);
|
||||
|
||||
/*! Copies the given surface to the given cache level as a texture. New cache levels must be sequential. */
|
||||
Uint8 FC_UploadGlyphCache(FC_Font* font, int cache_level, SDL_Surface* data_surface);
|
||||
|
||||
|
||||
/*! Returns the number of codepoints that are stored in the font's glyph data map. */
|
||||
unsigned int FC_GetNumCodepoints(FC_Font* font);
|
||||
|
||||
/*! Copies the stored codepoints into the given array. */
|
||||
void FC_GetCodepoints(FC_Font* font, Uint32* result);
|
||||
|
||||
/*! Stores the glyph data for the given codepoint in 'result'. Returns 0 if the codepoint was not found in the cache. */
|
||||
Uint8 FC_GetGlyphData(FC_Font* font, FC_GlyphData* result, Uint32 codepoint);
|
||||
|
||||
/*! Sets the glyph data for the given codepoint. Duplicates are not checked. Returns a pointer to the stored data. */
|
||||
FC_GlyphData* FC_SetGlyphData(FC_Font* font, Uint32 codepoint, FC_GlyphData glyph_data);
|
||||
|
||||
|
||||
// Rendering
|
||||
|
||||
FC_Rect FC_Draw(FC_Font* font, FC_Target* dest, float x, float y, const char* formatted_text, ...);
|
||||
FC_Rect FC_DrawAlign(FC_Font* font, FC_Target* dest, float x, float y, FC_AlignEnum align, const char* formatted_text, ...);
|
||||
FC_Rect FC_DrawScale(FC_Font* font, FC_Target* dest, float x, float y, FC_Scale scale, const char* formatted_text, ...);
|
||||
FC_Rect FC_DrawColor(FC_Font* font, FC_Target* dest, float x, float y, SDL_Color color, const char* formatted_text, ...);
|
||||
FC_Rect FC_DrawEffect(FC_Font* font, FC_Target* dest, float x, float y, FC_Effect effect, const char* formatted_text, ...);
|
||||
|
||||
FC_Rect FC_DrawBox(FC_Font* font, FC_Target* dest, FC_Rect box, const char* formatted_text, ...);
|
||||
FC_Rect FC_DrawBoxAlign(FC_Font* font, FC_Target* dest, FC_Rect box, FC_AlignEnum align, const char* formatted_text, ...);
|
||||
FC_Rect FC_DrawBoxScale(FC_Font* font, FC_Target* dest, FC_Rect box, FC_Scale scale, const char* formatted_text, ...);
|
||||
FC_Rect FC_DrawBoxColor(FC_Font* font, FC_Target* dest, FC_Rect box, SDL_Color color, const char* formatted_text, ...);
|
||||
FC_Rect FC_DrawBoxEffect(FC_Font* font, FC_Target* dest, FC_Rect box, FC_Effect effect, const char* formatted_text, ...);
|
||||
|
||||
FC_Rect FC_DrawColumn(FC_Font* font, FC_Target* dest, float x, float y, Uint16 width, const char* formatted_text, ...);
|
||||
FC_Rect FC_DrawColumnAlign(FC_Font* font, FC_Target* dest, float x, float y, Uint16 width, FC_AlignEnum align, const char* formatted_text, ...);
|
||||
FC_Rect FC_DrawColumnScale(FC_Font* font, FC_Target* dest, float x, float y, Uint16 width, FC_Scale scale, const char* formatted_text, ...);
|
||||
FC_Rect FC_DrawColumnColor(FC_Font* font, FC_Target* dest, float x, float y, Uint16 width, SDL_Color color, const char* formatted_text, ...);
|
||||
FC_Rect FC_DrawColumnEffect(FC_Font* font, FC_Target* dest, float x, float y, Uint16 width, FC_Effect effect, const char* formatted_text, ...);
|
||||
|
||||
// Getters
|
||||
|
||||
FC_FilterEnum FC_GetFilterMode(FC_Font* font);
|
||||
Uint16 FC_GetLineHeight(FC_Font* font);
|
||||
Uint16 FC_GetHeight(FC_Font* font, const char* formatted_text, ...);
|
||||
Uint16 FC_GetWidth(FC_Font* font, const char* formatted_text, ...);
|
||||
|
||||
// Returns a 1-pixel wide box in front of the character in the given position (index)
|
||||
FC_Rect FC_GetCharacterOffset(FC_Font* font, Uint16 position_index, int column_width, const char* formatted_text, ...);
|
||||
Uint16 FC_GetColumnHeight(FC_Font* font, Uint16 width, const char* formatted_text, ...);
|
||||
|
||||
int FC_GetAscent(FC_Font* font, const char* formatted_text, ...);
|
||||
int FC_GetDescent(FC_Font* font, const char* formatted_text, ...);
|
||||
int FC_GetBaseline(FC_Font* font);
|
||||
int FC_GetSpacing(FC_Font* font);
|
||||
int FC_GetLineSpacing(FC_Font* font);
|
||||
Uint16 FC_GetMaxWidth(FC_Font* font);
|
||||
SDL_Color FC_GetDefaultColor(FC_Font* font);
|
||||
|
||||
Uint8 FC_InRect(float x, float y, FC_Rect input_rect);
|
||||
// Given an offset (x,y) from the text draw position (the upper-left corner), returns the character position (UTF-8 index)
|
||||
Uint16 FC_GetPositionFromOffset(FC_Font* font, float x, float y, int column_width, FC_AlignEnum align, const char* formatted_text, ...);
|
||||
|
||||
// Setters
|
||||
|
||||
void FC_SetFilterMode(FC_Font* font, FC_FilterEnum filter);
|
||||
void FC_SetSpacing(FC_Font* font, int LetterSpacing);
|
||||
void FC_SetLineSpacing(FC_Font* font, int LineSpacing);
|
||||
void FC_SetDefaultColor(FC_Font* font, SDL_Color color);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
143
Switch/source/audio.c
Normal file
143
Switch/source/audio.c
Normal file
|
@ -0,0 +1,143 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <malloc.h>
|
||||
#include <inttypes.h>
|
||||
#include <switch.h>
|
||||
|
||||
#include <netdb.h>
|
||||
#include <netinet/in.h>
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
|
||||
#include <arpa/inet.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#define SAMPLERATE 48000
|
||||
#define CHANNELCOUNT 2
|
||||
#define FRAMERATE (1000 / 30)
|
||||
#define SAMPLECOUNT (SAMPLERATE / FRAMERATE)
|
||||
#define BYTESPERSAMPLE 2
|
||||
|
||||
void diep(char *s)
|
||||
{
|
||||
perror(s);
|
||||
while (1)
|
||||
;
|
||||
}
|
||||
|
||||
int setup_socket()
|
||||
{
|
||||
struct sockaddr_in si_me;
|
||||
int s;
|
||||
|
||||
if ((s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) == -1)
|
||||
diep("socket");
|
||||
|
||||
memset((char *)&si_me, 0, sizeof(si_me));
|
||||
si_me.sin_family = AF_INET;
|
||||
si_me.sin_port = htons(2224);
|
||||
si_me.sin_addr.s_addr = htonl(INADDR_ANY);
|
||||
if (bind(s, &si_me, sizeof(si_me)) == -1)
|
||||
diep("bind");
|
||||
return s;
|
||||
}
|
||||
|
||||
#define BUF_COUNT 5
|
||||
AudioOutBuffer audiobuf[BUF_COUNT];
|
||||
u8 *buf_data[BUF_COUNT];
|
||||
int curBuf = 0;
|
||||
#define swapbuf (curBuf = (curBuf + 1) % (BUF_COUNT))
|
||||
|
||||
AudioOutBuffer *audout_released_buf;
|
||||
int audout_filled = 0;
|
||||
u64 U64_MAX = 10;
|
||||
void play_buf(int buffer_size, int data_size)
|
||||
{
|
||||
|
||||
if (audout_filled >= BUF_COUNT)
|
||||
{
|
||||
u32 released_count;
|
||||
audoutWaitPlayFinish(&audout_released_buf, &released_count, U64_MAX);
|
||||
}
|
||||
|
||||
audiobuf[curBuf].next = 0;
|
||||
audiobuf[curBuf].buffer = buf_data[curBuf];
|
||||
audiobuf[curBuf].buffer_size = buffer_size;
|
||||
audiobuf[curBuf].data_size = data_size;
|
||||
audiobuf[curBuf].data_offset = 0;
|
||||
audoutAppendAudioOutBuffer(&audiobuf[curBuf]);
|
||||
|
||||
audout_filled++;
|
||||
|
||||
swapbuf;
|
||||
}
|
||||
|
||||
// out_buf has to be in_buf_size*fact*2 big
|
||||
void resample(unsigned short *in_buf, int in_buf_size, unsigned short *out_buf, int fact)
|
||||
{
|
||||
int channels = 2;
|
||||
|
||||
for (int i = 0; i < in_buf_size / sizeof(unsigned short); i += channels)
|
||||
{
|
||||
int out_base = i * fact;
|
||||
|
||||
for (int j = 0; j < fact; j++)
|
||||
{
|
||||
for (int c = 0; c < channels; c++)
|
||||
{
|
||||
out_buf[out_base++] = in_buf[i + c];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#define DATA_SIZE 1920 //(SAMPLECOUNT * CHANNELCOUNT * BYTESPERSAMPLE);
|
||||
#define IN_RATE 160000 // Bitrate.
|
||||
#define OUT_RATE 480000 // Bitrate.
|
||||
#define FACT (OUT_RATE / IN_RATE)
|
||||
#define IN_BUFSIZE (DATA_SIZE / FACT)
|
||||
|
||||
void audioHandlerLoop()
|
||||
{
|
||||
char in_buf[IN_BUFSIZE] = {0};
|
||||
|
||||
u32 buffer_size = (DATA_SIZE + 0xfff) & ~0xfff;
|
||||
|
||||
for (int curBuf = 0; curBuf < BUF_COUNT; curBuf++)
|
||||
{
|
||||
buf_data[curBuf] = memalign(0x1000, buffer_size);
|
||||
}
|
||||
|
||||
int sock = setup_socket();
|
||||
printf("%d\n", sock);
|
||||
int played = 0;
|
||||
while (1)
|
||||
{
|
||||
struct sockaddr si_other;
|
||||
socklen_t slen = sizeof(si_other);
|
||||
int ret = recvfrom(sock, in_buf, sizeof(in_buf), 0, &si_other, &slen);
|
||||
|
||||
if (ret < 0)
|
||||
{
|
||||
perror("recv failed:");
|
||||
continue;
|
||||
}
|
||||
if (ret != sizeof(in_buf))
|
||||
{
|
||||
printf("Bad input %d\n", ret);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
resample((unsigned short *)in_buf, sizeof(in_buf), (unsigned short *)buf_data[curBuf], FACT);
|
||||
play_buf(buffer_size, DATA_SIZE);
|
||||
played++;
|
||||
}
|
||||
|
||||
for (int curBuf = 0; curBuf < BUF_COUNT; curBuf++)
|
||||
{
|
||||
free(buf_data[curBuf]);
|
||||
}
|
||||
}
|
3
Switch/source/audio.h
Normal file
3
Switch/source/audio.h
Normal file
|
@ -0,0 +1,3 @@
|
|||
// TODO: Proper context stuff. Pretty hacky right now.
|
||||
|
||||
void audioHandlerLoop();
|
61
Switch/source/context.h
Normal file
61
Switch/source/context.h
Normal file
|
@ -0,0 +1,61 @@
|
|||
#ifndef _CONTEXT_H
|
||||
#define _CONTEXT_H
|
||||
|
||||
#include <libavformat/avformat.h>
|
||||
#include <switch.h>
|
||||
#include <SDL.h>
|
||||
#include <SDL2/SDL_image.h>
|
||||
#include "SDL_FontCache.h"
|
||||
|
||||
#define RESX 1280
|
||||
#define RESY 720
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
SDL_Window *window;
|
||||
SDL_Renderer *renderer;
|
||||
SDL_Texture *yuv_text;
|
||||
|
||||
|
||||
SDL_Rect rect;
|
||||
|
||||
Mutex texture_mut;
|
||||
|
||||
u8 YPlane[RESX*RESY];
|
||||
u8 UPlane[RESX*RESY/4];
|
||||
u8 VPlane[RESX*RESY/4];
|
||||
|
||||
bool frame_avail;
|
||||
Mutex frame_avail_mut;
|
||||
FC_Font* font;
|
||||
|
||||
bool video_active;
|
||||
Mutex video_active_mut;
|
||||
|
||||
int overclock_status;
|
||||
|
||||
} RenderContext;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
AVFormatContext *fmt_ctx;
|
||||
AVCodecContext *video_dec_ctx; //, *audio_dec_ctx;
|
||||
AVStream *video_stream; //, *audio_stream = NULL;
|
||||
int video_stream_idx; //, audio_stream_idx = -1;
|
||||
AVFrame *rgbframe;
|
||||
AVFrame *frame;
|
||||
uint8_t *video_dst_data[4];
|
||||
int video_dst_linesize[4];
|
||||
int video_frame_count;
|
||||
RenderContext *renderContext;
|
||||
//static int audio_frame_count = 0;
|
||||
} VideoContext;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int lissock;
|
||||
int sock;
|
||||
} JoyConSocket;
|
||||
|
||||
#endif
|
45
Switch/source/input.c
Normal file
45
Switch/source/input.c
Normal file
|
@ -0,0 +1,45 @@
|
|||
#include <switch.h>
|
||||
|
||||
#include "context.h"
|
||||
#include "input.h"
|
||||
#include "network.h"
|
||||
|
||||
void gamePadSend(JoyConSocket *connection)
|
||||
{
|
||||
JoystickPosition lJoy;
|
||||
JoystickPosition rJoy;
|
||||
touchPosition touch;
|
||||
JoyPkg pkg;
|
||||
|
||||
/* Recieve switch input and generate the package */
|
||||
hidScanInput();
|
||||
pkg.heldKeys = hidKeysHeld(CONTROLLER_P1_AUTO);
|
||||
hidJoystickRead(&lJoy, CONTROLLER_P1_AUTO, JOYSTICK_LEFT);
|
||||
hidJoystickRead(&rJoy, CONTROLLER_P1_AUTO, JOYSTICK_RIGHT);
|
||||
pkg.lJoyX = lJoy.dx;
|
||||
pkg.lJoyY = lJoy.dy;
|
||||
pkg.rJoyX = rJoy.dx;
|
||||
pkg.rJoyY = rJoy.dy;
|
||||
hidTouchRead(&touch, 0);
|
||||
pkg.touchX = touch.px;
|
||||
pkg.touchY = touch.py;
|
||||
sendJoyConInput(connection, &pkg);
|
||||
}
|
||||
|
||||
void handleInput(JoyConSocket *connection)
|
||||
{
|
||||
if (connectJoyConSocket(connection, 2223))
|
||||
gamePadSend(connection);
|
||||
}
|
||||
|
||||
void inputHandlerLoop(void *dummy)
|
||||
{
|
||||
JoyConSocket *connection = createJoyConSocket();
|
||||
while (appletMainLoop())
|
||||
{
|
||||
handleInput(connection);
|
||||
svcSleepThread(23333333);
|
||||
}
|
||||
|
||||
freeJoyConSocket(connection);
|
||||
}
|
7
Switch/source/input.h
Normal file
7
Switch/source/input.h
Normal file
|
@ -0,0 +1,7 @@
|
|||
#ifndef INPUT_H
|
||||
#define INPUT_H
|
||||
|
||||
/* Loop to handle joycon inputs and send theme to the server */
|
||||
void inputHandlerLoop(void* dummy);
|
||||
|
||||
#endif
|
138
Switch/source/main.c
Normal file
138
Switch/source/main.c
Normal file
|
@ -0,0 +1,138 @@
|
|||
// The following ffmpeg code is inspired by an official ffmpeg example, so here is its Copyright notice:
|
||||
|
||||
/*
|
||||
* Copyright (c) 2012 Stefano Sabatini
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
|
||||
|
||||
*
|
||||
* @file
|
||||
* Demuxing and decoding example.
|
||||
*
|
||||
* Show how to use the libavformat and libavcodec API to demux and
|
||||
* decode audio and video data.
|
||||
* @example demuxing_decoding.c
|
||||
|
||||
*/
|
||||
|
||||
#include <libavutil/samplefmt.h>
|
||||
|
||||
#include <switch.h>
|
||||
#include <SDL.h>
|
||||
|
||||
#include "context.h"
|
||||
#include "input.h"
|
||||
#include "video.h"
|
||||
#include "network.h"
|
||||
#include "renderer.h"
|
||||
#include "audio.h"
|
||||
|
||||
static const SocketInitConfig socketInitConf = {
|
||||
.bsdsockets_version = 1,
|
||||
|
||||
.tcp_tx_buf_size = 0x80000,
|
||||
.tcp_rx_buf_size = 0x100000,
|
||||
.tcp_tx_buf_max_size = 0x400000,
|
||||
.tcp_rx_buf_max_size = 0x400000,
|
||||
|
||||
.udp_tx_buf_size = 0x1400,
|
||||
.udp_rx_buf_size = 0x2500,
|
||||
|
||||
.sb_efficiency = 2,
|
||||
};
|
||||
|
||||
void switchInit()
|
||||
{
|
||||
plInitialize();
|
||||
pcvInitialize();
|
||||
|
||||
romfsInit();
|
||||
networkInit(&socketInitConf);
|
||||
|
||||
audoutInitialize();
|
||||
audoutStartAudioOut();
|
||||
}
|
||||
|
||||
void switchDestroy()
|
||||
{
|
||||
audoutStopAudioOut();
|
||||
audoutExit();
|
||||
networkDestroy();
|
||||
pcvExit();
|
||||
plExit();
|
||||
}
|
||||
|
||||
void startInput()
|
||||
{
|
||||
static Thread inputHandlerThread;
|
||||
threadCreate(&inputHandlerThread, inputHandlerLoop, NULL, NULL, 0x1000, 0x2b, 0);
|
||||
threadStart(&inputHandlerThread);
|
||||
}
|
||||
|
||||
void startAudio()
|
||||
{
|
||||
static Thread audioHandlerThread;
|
||||
// On same thread as input and preemptive
|
||||
threadCreate(&audioHandlerThread, audioHandlerLoop, NULL, NULL, 0x10000, 0x20, 1);
|
||||
threadStart(&audioHandlerThread);
|
||||
}
|
||||
|
||||
void startRender(VideoContext *videoContext)
|
||||
{
|
||||
static Thread renderThread;
|
||||
threadCreate(&renderThread, videoLoop, videoContext, NULL, 0x800000, 0x2b, 2);
|
||||
threadStart(&renderThread);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
RenderContext *renderContext = NULL;
|
||||
VideoContext *videoContext = NULL;
|
||||
|
||||
/* Init all switch required systems */
|
||||
switchInit();
|
||||
renderContext = createRenderer();
|
||||
videoContext = createVideoContext();
|
||||
videoContext->renderContext = renderContext;
|
||||
|
||||
/* Run audio handling in background */
|
||||
startAudio();
|
||||
|
||||
startRender(videoContext);
|
||||
|
||||
/* Run input handling in background */
|
||||
startInput();
|
||||
|
||||
|
||||
while (appletMainLoop())
|
||||
{
|
||||
if (isVideoActive(renderContext))
|
||||
{
|
||||
displayFrame(renderContext);
|
||||
} else {
|
||||
drawSplash(renderContext);
|
||||
}
|
||||
}
|
||||
|
||||
/* Deinitialize all used systems */
|
||||
freeRenderer(renderContext);
|
||||
freeVideoContext(videoContext);
|
||||
switchDestroy();
|
||||
}
|
88
Switch/source/network.c
Normal file
88
Switch/source/network.c
Normal file
|
@ -0,0 +1,88 @@
|
|||
#include "network.h"
|
||||
#include <libavutil/timestamp.h>
|
||||
#include <libavformat/avformat.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/types.h>
|
||||
#include <netinet/in.h>
|
||||
#include <netdb.h>
|
||||
#include <unistd.h>
|
||||
#include <errno.h>
|
||||
#include <arpa/inet.h>
|
||||
|
||||
void networkInit(const SocketInitConfig *conf)
|
||||
{
|
||||
socketInitialize(conf);
|
||||
nxlinkStdio();
|
||||
avformat_network_init();
|
||||
}
|
||||
|
||||
void networkDestroy()
|
||||
{
|
||||
avformat_network_deinit();
|
||||
socketExit();
|
||||
}
|
||||
|
||||
JoyConSocket *createJoyConSocket()
|
||||
{
|
||||
JoyConSocket *socket = (JoyConSocket *)malloc(sizeof(JoyConSocket));
|
||||
socket->sock = -1;
|
||||
socket->lissock = -1;
|
||||
return socket;
|
||||
}
|
||||
|
||||
void freeJoyConSocket(JoyConSocket *connection)
|
||||
{
|
||||
free(connection);
|
||||
}
|
||||
|
||||
int connectJoyConSocket(JoyConSocket *connection, int port)
|
||||
{
|
||||
if (connection->lissock == -1)
|
||||
{
|
||||
if (connection->sock != -1)
|
||||
{
|
||||
close(connection->sock);
|
||||
connection->sock = -1;
|
||||
}
|
||||
|
||||
struct sockaddr_in server;
|
||||
|
||||
connection->lissock = socket(AF_INET, SOCK_STREAM, 0);
|
||||
server.sin_family = AF_INET;
|
||||
server.sin_addr.s_addr = INADDR_ANY;
|
||||
server.sin_port = htons(port);
|
||||
|
||||
if (bind(connection->lissock, (struct sockaddr *)&server, sizeof(server)) < 0)
|
||||
{
|
||||
close(connection->lissock);
|
||||
connection->lissock = -1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
listen(connection->lissock, 1);
|
||||
}
|
||||
|
||||
if (connection->sock == -1)
|
||||
{
|
||||
// TODO: We might want to be able to not block if no client is connected
|
||||
struct sockaddr_in client;
|
||||
int c = sizeof(struct sockaddr_in);
|
||||
connection->sock = accept(connection->lissock, (struct sockaddr *)&client, (socklen_t *)&c);
|
||||
if (connection->sock < 0)
|
||||
{
|
||||
close(connection->lissock);
|
||||
connection->sock = -1;
|
||||
connection->lissock = -1;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
void sendJoyConInput(JoyConSocket *connection, const JoyPkg *pkg)
|
||||
{
|
||||
if (send(connection->sock, pkg, sizeof(JoyPkg), 0) != sizeof(JoyPkg))
|
||||
{
|
||||
connection->sock = -1;
|
||||
}
|
||||
}
|
43
Switch/source/network.h
Normal file
43
Switch/source/network.h
Normal file
|
@ -0,0 +1,43 @@
|
|||
#ifndef _NETWORK_H
|
||||
#define _NETWORK_H
|
||||
|
||||
#include <switch.h>
|
||||
#include "context.h"
|
||||
|
||||
#define URL "tcp://0.0.0.0:2222"
|
||||
//#define TCP_RECV_BUFFER "500000"
|
||||
|
||||
/* Data to send to server */
|
||||
typedef struct
|
||||
{
|
||||
unsigned long heldKeys;
|
||||
short lJoyX;
|
||||
short lJoyY;
|
||||
short rJoyX;
|
||||
short rJoyY;
|
||||
short touchX;
|
||||
short touchY;
|
||||
} JoyPkg;
|
||||
|
||||
/* Init nx network and av network */
|
||||
void networkInit(const SocketInitConfig *conf);
|
||||
|
||||
/* Deinitialize nx network and av network*/
|
||||
void networkDestroy();
|
||||
|
||||
/* Creates the context for sending joycon inputs */
|
||||
JoyConSocket *createJoyConSocket();
|
||||
|
||||
/* Deallocate from memory the constext used to sent joycon inputs */
|
||||
void freeJoyConSocket(JoyConSocket *connection);
|
||||
|
||||
/* Send joycon input over the network */
|
||||
void sendJoyConInput(JoyConSocket *connection, const JoyPkg *pkg);
|
||||
|
||||
/*
|
||||
* Binds, listens and accepts connection with the server
|
||||
* If the connection was previously opened reuses it
|
||||
*/
|
||||
int connectJoyConSocket(JoyConSocket *connection, int port);
|
||||
|
||||
#endif
|
192
Switch/source/renderer.c
Normal file
192
Switch/source/renderer.c
Normal file
|
@ -0,0 +1,192 @@
|
|||
#include "renderer.h"
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <switch.h>
|
||||
#include <libavutil/imgutils.h>
|
||||
#include <libswscale/swscale.h>
|
||||
#include <unistd.h>
|
||||
#include "video.h"
|
||||
|
||||
|
||||
static char *clock_strings[] = {
|
||||
"333 MHz (underclocked, very slow)", "710 MHz (underclocked, slow)", "1020 MHz (standard, not overclocked)", "1224 MHz (slightly overclocked)", "1581 MHz (overclocked)", "1785 MHz (strong overclock)"};
|
||||
|
||||
static int clock_rates[] = {
|
||||
333000000, 710000000, 1020000000, 1224000000, 1581000000, 1785000000};
|
||||
|
||||
RenderContext *createRenderer()
|
||||
{
|
||||
RenderContext *context = malloc(sizeof(RenderContext));
|
||||
|
||||
context->window = SDL_CreateWindow("sdl2_gles2", 0, 0, RESX, RESY, SDL_WINDOW_FULLSCREEN);
|
||||
if (context->window == NULL)
|
||||
{
|
||||
SDL_Log("SDL_CreateWindow: %s\n", SDL_GetError());
|
||||
SDL_Quit();
|
||||
while (1);
|
||||
}
|
||||
|
||||
context->renderer = SDL_CreateRenderer(context->window, 0, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
|
||||
if (context->renderer == NULL)
|
||||
{
|
||||
SDL_Log("SDL_CreateRenderer: %s\n", SDL_GetError());
|
||||
SDL_Quit();
|
||||
while (1);
|
||||
}
|
||||
|
||||
context->yuv_text = SDL_CreateTexture(context->renderer, SDL_PIXELFORMAT_IYUV, SDL_TEXTUREACCESS_STREAMING, RESX, RESY);
|
||||
|
||||
context->rect.x = 0;
|
||||
context->rect.y = 0;
|
||||
context->rect.w = RESX;
|
||||
context->rect.h = RESY;
|
||||
|
||||
mutexInit(&context->texture_mut);
|
||||
mutexInit(&context->frame_avail_mut);
|
||||
mutexInit(&context->video_active_mut);
|
||||
context->frame_avail = false;
|
||||
context->video_active = false;
|
||||
|
||||
PlFontData fontData, fontExtData;
|
||||
plGetSharedFontByType(&fontData, PlSharedFontType_Standard);
|
||||
plGetSharedFontByType(&fontExtData, PlSharedFontType_NintendoExt);
|
||||
context->font = FC_CreateFont();
|
||||
FC_LoadFont_RW(context->font, context->renderer, SDL_RWFromMem((void *)fontData.address, fontData.size), SDL_RWFromMem((void *)fontExtData.address, fontExtData.size), 1, 40, FC_MakeColor(0, 0, 0, 255), TTF_STYLE_NORMAL);
|
||||
|
||||
context->overclock_status = 2;
|
||||
|
||||
return context;
|
||||
}
|
||||
|
||||
void applyOC(RenderContext *context)
|
||||
{
|
||||
pcvSetClockRate(PcvModule_CpuBus, clock_rates[context->overclock_status]);
|
||||
}
|
||||
|
||||
void setFrameAvail(RenderContext *context)
|
||||
{
|
||||
mutexLock(&context->frame_avail_mut);
|
||||
context->frame_avail = true;
|
||||
mutexUnlock(&context->frame_avail_mut);
|
||||
}
|
||||
|
||||
bool checkFrameAvail(RenderContext *context)
|
||||
{
|
||||
bool ret;
|
||||
mutexLock(&context->frame_avail_mut);
|
||||
ret = context->frame_avail;
|
||||
context->frame_avail = false;
|
||||
mutexUnlock(&context->frame_avail_mut);
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool isVideoActive(RenderContext *context)
|
||||
{
|
||||
bool ret;
|
||||
mutexLock(&context->video_active_mut);
|
||||
ret = context->video_active;
|
||||
mutexUnlock(&context->video_active_mut);
|
||||
return ret;
|
||||
}
|
||||
|
||||
void setVideoActive(RenderContext *context, bool active)
|
||||
{
|
||||
mutexLock(&context->video_active_mut);
|
||||
context->video_active = active;
|
||||
mutexUnlock(&context->video_active_mut);
|
||||
}
|
||||
|
||||
void SDL_ClearScreen(RenderContext *context, SDL_Color colour)
|
||||
{
|
||||
SDL_SetRenderDrawColor(context->renderer, colour.r, colour.g, colour.b, colour.a);
|
||||
SDL_RenderClear(context->renderer);
|
||||
}
|
||||
|
||||
void SDL_DrawText(RenderContext *context, int x, int y, SDL_Color colour, const char *text)
|
||||
{
|
||||
FC_DrawColor(context->font, context->renderer, x, y, colour, text);
|
||||
}
|
||||
|
||||
void drawSplash(RenderContext *context)
|
||||
{
|
||||
u32 ip = gethostid();
|
||||
char str_buf[300];
|
||||
snprintf(str_buf, 300, "Your Switch is now ready for a PC to connect!\nIt has the IP-Address %u.%u.%u.%u\n"
|
||||
"\nInstructions can be found here:"
|
||||
"\nhttps://github.com/jakibaki/In-Home-Switching/blob/master/README.md"
|
||||
"\n\nOverclock status:\n%s"
|
||||
"\nPress X to increase, Y to decrease clockrate",
|
||||
ip & 0xFF, (ip >> 8) & 0xFF, (ip >> 16) & 0xFF, (ip >> 24) & 0xFF,
|
||||
clock_strings[context->overclock_status]);
|
||||
|
||||
SDL_Color black = {0, 0, 0, 255};
|
||||
SDL_Color white = {230, 230, 230, 255};
|
||||
SDL_ClearScreen(context, white);
|
||||
|
||||
SDL_DrawText(context, 170, 150, black, str_buf);
|
||||
|
||||
SDL_RenderPresent(context->renderer);
|
||||
|
||||
hidScanInput();
|
||||
u32 keys = hidKeysDown(CONTROLLER_P1_AUTO);
|
||||
if (keys & KEY_X)
|
||||
{
|
||||
if (context->overclock_status < sizeof(clock_rates) / sizeof(int) - 1)
|
||||
{
|
||||
context->overclock_status++;
|
||||
applyOC(context);
|
||||
}
|
||||
}
|
||||
|
||||
if (keys & KEY_Y)
|
||||
{
|
||||
if (context->overclock_status > 0)
|
||||
{
|
||||
context->overclock_status--;
|
||||
applyOC(context);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
u64 old_time = 0, new_time = 0;
|
||||
void handleFrame(RenderContext *renderContext, VideoContext *videoContext)
|
||||
{
|
||||
AVFrame *frame = videoContext->frame;
|
||||
|
||||
mutexLock(&renderContext->texture_mut);
|
||||
memcpy(renderContext->YPlane, frame->data[0], sizeof(renderContext->YPlane));
|
||||
memcpy(renderContext->UPlane, frame->data[1], sizeof(renderContext->UPlane));
|
||||
memcpy(renderContext->VPlane, frame->data[2], sizeof(renderContext->VPlane));
|
||||
mutexUnlock(&renderContext->texture_mut);
|
||||
setFrameAvail(renderContext);
|
||||
|
||||
if (++videoContext->video_frame_count % 60 == 0)
|
||||
{
|
||||
new_time = svcGetSystemTick();
|
||||
printf("Framerate: %f\n", 60.0 / ((new_time - old_time) / 19200000.0));
|
||||
old_time = new_time;
|
||||
}
|
||||
}
|
||||
|
||||
void displayFrame(RenderContext *renderContext)
|
||||
{
|
||||
while (!checkFrameAvail(renderContext))
|
||||
{
|
||||
}
|
||||
|
||||
SDL_RenderClear(renderContext->renderer);
|
||||
|
||||
mutexLock(&renderContext->texture_mut);
|
||||
SDL_UpdateYUVTexture(renderContext->yuv_text, &renderContext->rect, renderContext->YPlane, RESX,
|
||||
renderContext->UPlane, RESX / 2,
|
||||
renderContext->VPlane, RESX / 2);
|
||||
mutexUnlock(&renderContext->texture_mut);
|
||||
|
||||
SDL_RenderCopy(renderContext->renderer, renderContext->yuv_text, NULL, NULL);
|
||||
SDL_RenderPresent(renderContext->renderer);
|
||||
}
|
||||
|
||||
void freeRenderer(RenderContext *context)
|
||||
{
|
||||
free(context);
|
||||
}
|
37
Switch/source/renderer.h
Normal file
37
Switch/source/renderer.h
Normal file
|
@ -0,0 +1,37 @@
|
|||
#ifndef _RENDERER_H
|
||||
#define _RENDERER_H
|
||||
|
||||
#include <libavformat/avformat.h>
|
||||
#include <libswscale/swscale.h>
|
||||
|
||||
|
||||
#include "context.h"
|
||||
|
||||
/* Allocates a render context */
|
||||
RenderContext* createRenderer(void);
|
||||
|
||||
/* Draws an image filling all screen */
|
||||
void drawSplash(RenderContext *context);
|
||||
|
||||
/* Handles a frame received from server */
|
||||
void handleFrame(RenderContext* context, VideoContext* videoContext);
|
||||
|
||||
/* Draws a frame */
|
||||
void displayFrame(RenderContext *renderContext);
|
||||
|
||||
/* Deallocates the render context */
|
||||
void freeRenderer(RenderContext* context);
|
||||
|
||||
/* Sets the variable that indicates that there's a frame ready to be drawn */
|
||||
void setFrameAvail(RenderContext* context);
|
||||
|
||||
/* Checks if a frame is ready to be drawn and sets that variable to false */
|
||||
bool checkFrameAvail(RenderContext* context);
|
||||
|
||||
/* Returns true if there is a video playing right now */
|
||||
bool isVideoActive(RenderContext *context);
|
||||
|
||||
/* Sets the video-playing status */
|
||||
void setVideoActive(RenderContext *context, bool active);
|
||||
|
||||
#endif
|
282
Switch/source/video.c
Normal file
282
Switch/source/video.c
Normal file
|
@ -0,0 +1,282 @@
|
|||
#include <libavutil/imgutils.h>
|
||||
#include <libavutil/samplefmt.h>
|
||||
#include <libavutil/timestamp.h>
|
||||
|
||||
#include <switch.h>
|
||||
|
||||
#include "video.h"
|
||||
#include "network.h"
|
||||
#include "renderer.h"
|
||||
|
||||
VideoContext *createVideoContext()
|
||||
{
|
||||
VideoContext *context = (VideoContext *)malloc(sizeof(VideoContext));
|
||||
context->fmt_ctx = NULL;
|
||||
context->video_dec_ctx = NULL;
|
||||
context->video_stream = NULL;
|
||||
context->video_stream_idx = -1;
|
||||
context->rgbframe = NULL;
|
||||
context->video_frame_count = 0;
|
||||
|
||||
for (size_t i = 0; i < 4; i++)
|
||||
context->video_dst_data[i] = NULL;
|
||||
|
||||
// Frame
|
||||
context->frame = av_frame_alloc();
|
||||
if (context->frame == NULL)
|
||||
{
|
||||
fprintf(stderr, "Could not allocate frame\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// RGBA Frame
|
||||
context->rgbframe = av_frame_alloc();
|
||||
context->rgbframe->width = RESX;
|
||||
context->rgbframe->height = RESY;
|
||||
context->rgbframe->format = AV_PIX_FMT_RGBA;
|
||||
av_image_alloc(context->rgbframe->data,
|
||||
context->rgbframe->linesize,
|
||||
context->rgbframe->width,
|
||||
context->rgbframe->height,
|
||||
context->rgbframe->format, 32);
|
||||
|
||||
return context;
|
||||
}
|
||||
|
||||
void freeVideoContext(VideoContext *context)
|
||||
{
|
||||
avcodec_free_context(&(context->video_dec_ctx));
|
||||
avformat_close_input(&(context->fmt_ctx));
|
||||
av_frame_free(&(context->frame));
|
||||
av_free(context->video_dst_data[0]);
|
||||
free(context);
|
||||
}
|
||||
|
||||
/* Decodes a single frame and returns 0 on success */
|
||||
int decode_frame(AVCodecContext *avctx, AVFrame *frame, int *got_frame, AVPacket *pkt)
|
||||
{
|
||||
int ret;
|
||||
*got_frame = 0;
|
||||
|
||||
if (pkt)
|
||||
{
|
||||
ret = avcodec_send_packet(avctx, pkt);
|
||||
if (ret < 0)
|
||||
return ret == AVERROR_EOF ? 0 : ret;
|
||||
}
|
||||
|
||||
ret = avcodec_receive_frame(avctx, frame);
|
||||
if (ret < 0 && ret != AVERROR(EAGAIN) && ret != AVERROR_EOF)
|
||||
return ret;
|
||||
if (ret >= 0)
|
||||
*got_frame = 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Returns 1 if frame format is the same as the AVCodecContext format */
|
||||
int expected_frame_format(AVCodecContext *avctx, AVFrame *frame)
|
||||
{
|
||||
int width = avctx->width;
|
||||
int height = avctx->height;
|
||||
enum AVPixelFormat pix_fmt = avctx->pix_fmt;
|
||||
|
||||
return frame->width == width || frame->height == height || frame->format == pix_fmt;
|
||||
}
|
||||
|
||||
static int decode_packet(VideoContext *context, int *got_frame, AVPacket *pkt)
|
||||
{
|
||||
if (pkt->stream_index == context->video_stream_idx &&
|
||||
decode_frame(context->video_dec_ctx, context->frame, got_frame, pkt) == 0)
|
||||
{
|
||||
if (!expected_frame_format(context->video_dec_ctx, context->frame))
|
||||
{
|
||||
fprintf(stderr, "Error: Width, height and pixel format have to be "
|
||||
"constant in a rawvideo file, but the width, height or "
|
||||
"pixel format of the input video changed:\n"
|
||||
"old: width = %d, height = %d, format = %s\n"
|
||||
"new: width = %d, height = %d, format = %s\n",
|
||||
context->video_dec_ctx->width,
|
||||
context->video_dec_ctx->height,
|
||||
av_get_pix_fmt_name(context->video_dec_ctx->pix_fmt),
|
||||
context->frame->width, context->frame->height,
|
||||
av_get_pix_fmt_name(context->frame->format));
|
||||
return -1;
|
||||
}
|
||||
|
||||
handleFrame(context->renderContext, context);
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf(stderr, "Error decoding video frame \n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return context->frame->pkt_size;
|
||||
}
|
||||
|
||||
static int open_codec_context(VideoContext *context, enum AVMediaType type)
|
||||
{
|
||||
int ret, stream_index;
|
||||
AVStream *st;
|
||||
AVCodec *dec = NULL;
|
||||
|
||||
ret = av_find_best_stream(context->fmt_ctx, type, -1, -1, NULL, 0);
|
||||
if (ret < 0)
|
||||
{
|
||||
fprintf(stderr, "Could not find %s stream in input file \n",
|
||||
av_get_media_type_string(type));
|
||||
return ret;
|
||||
}
|
||||
else
|
||||
{
|
||||
stream_index = ret;
|
||||
st = context->fmt_ctx->streams[stream_index];
|
||||
// find decoder for the stream
|
||||
|
||||
dec = avcodec_find_decoder(st->codecpar->codec_id);
|
||||
if (dec == NULL)
|
||||
{
|
||||
fprintf(stderr, "Failed to find %s codec\n",
|
||||
av_get_media_type_string(type));
|
||||
return AVERROR(EINVAL);
|
||||
}
|
||||
// Allocate a codec context for the decoder
|
||||
context->video_dec_ctx = avcodec_alloc_context3(dec);
|
||||
if (context->video_dec_ctx == NULL)
|
||||
{
|
||||
fprintf(stderr, "Failed to allocate the %s codec context\n",
|
||||
av_get_media_type_string(type));
|
||||
return AVERROR(ENOMEM);
|
||||
}
|
||||
/*
|
||||
Copy codec parameters from input stream to output codec context
|
||||
*/
|
||||
|
||||
if ((ret = avcodec_parameters_to_context(context->video_dec_ctx, st->codecpar)) < 0)
|
||||
{
|
||||
fprintf(stderr, "Failed to copy %s codec parameters to decoder context\n",
|
||||
av_get_media_type_string(type));
|
||||
return ret;
|
||||
}
|
||||
//Init the decoders, without reference counting
|
||||
|
||||
if ((ret = avcodec_open2(context->video_dec_ctx, dec, NULL)) < 0)
|
||||
{
|
||||
fprintf(stderr, "Failed to open %s codec\n",
|
||||
av_get_media_type_string(type));
|
||||
return ret;
|
||||
}
|
||||
context->video_stream_idx = stream_index;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void videoLoop(void *context_ptr)
|
||||
{
|
||||
VideoContext* context = (VideoContext*) context_ptr;
|
||||
while(appletMainLoop())
|
||||
handleVid(context);
|
||||
}
|
||||
|
||||
int handleVid(VideoContext *context)
|
||||
{
|
||||
int ret = 0;
|
||||
int got_frame = 0;
|
||||
AVFormatContext *fmt_ctx = NULL;
|
||||
AVPacket pkt;
|
||||
|
||||
// setting TCP input options
|
||||
AVDictionary *opts = 0;
|
||||
av_dict_set(&opts, "listen", "1", 0); // set option for listening
|
||||
av_dict_set(&opts, "probesize", "50000", 0);
|
||||
|
||||
//open input file, and allocate format context
|
||||
ret = avformat_open_input(&fmt_ctx, URL, 0, &opts);
|
||||
if (ret < 0)
|
||||
{
|
||||
char errbuf[100];
|
||||
av_strerror(ret, errbuf, 100);
|
||||
|
||||
fprintf(stderr, "Input Error %s\n", errbuf);
|
||||
return ret;
|
||||
}
|
||||
|
||||
setVideoActive(context->renderContext, true);
|
||||
|
||||
context->fmt_ctx = fmt_ctx;
|
||||
|
||||
// Retrieve stream information
|
||||
if (avformat_find_stream_info(fmt_ctx, NULL) < 0)
|
||||
{
|
||||
fprintf(stderr, "Could not find stream information\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
// Context for the video
|
||||
if (open_codec_context(context, AVMEDIA_TYPE_VIDEO) >= 0)
|
||||
{
|
||||
context->video_stream = fmt_ctx->streams[context->video_stream_idx];
|
||||
|
||||
// Allocate image where the decoded image will be put
|
||||
ret = av_image_alloc(context->video_dst_data,
|
||||
context->video_dst_linesize,
|
||||
context->video_dec_ctx->width,
|
||||
context->video_dec_ctx->height,
|
||||
context->video_dec_ctx->pix_fmt, 1);
|
||||
if (ret < 0)
|
||||
{
|
||||
char errbuf[100];
|
||||
av_strerror(ret, errbuf, 100);
|
||||
fprintf(stderr, "Could not allocate raw video buffer %s\n", errbuf);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
//dump input information to stderr
|
||||
//av_dump_format(context->fmt_ctx, 0, URL, 0);
|
||||
|
||||
if (context->video_stream == NULL)
|
||||
{
|
||||
fprintf(stderr, "Could not find stream in the input, aborting\n");
|
||||
ret = 1;
|
||||
return ret;
|
||||
}
|
||||
|
||||
//initialize packet, set data to NULL, let the demuxer fill it
|
||||
|
||||
av_init_packet(&pkt);
|
||||
pkt.data = NULL;
|
||||
pkt.size = 0;
|
||||
|
||||
//read frames from the file
|
||||
while (av_read_frame(fmt_ctx, &pkt) >= 0)
|
||||
{
|
||||
AVPacket orig_pkt = pkt;
|
||||
do
|
||||
{
|
||||
ret = decode_packet(context, &got_frame, &pkt);
|
||||
if (ret < 0)
|
||||
break;
|
||||
pkt.data += ret;
|
||||
pkt.size -= ret;
|
||||
}
|
||||
while (pkt.size > 0);
|
||||
av_packet_unref(&orig_pkt);
|
||||
}
|
||||
|
||||
//flush cached frames
|
||||
pkt.data = NULL;
|
||||
pkt.size = 0;
|
||||
do
|
||||
{
|
||||
decode_packet(context, &got_frame, &pkt);
|
||||
}
|
||||
while (got_frame);
|
||||
|
||||
printf("Stream finished.\n");
|
||||
checkFrameAvail(context->renderContext);
|
||||
setVideoActive(context->renderContext, false);
|
||||
|
||||
return ret;
|
||||
}
|
17
Switch/source/video.h
Normal file
17
Switch/source/video.h
Normal file
|
@ -0,0 +1,17 @@
|
|||
#ifndef _VIDEO_H
|
||||
#define _VIDEO_H
|
||||
|
||||
#include "context.h"
|
||||
|
||||
/* Allocates a video context and all its av fields (frame, rgbaFrame ...) */
|
||||
VideoContext* createVideoContext(void);
|
||||
|
||||
/* Loop to handle video streaming with the server */
|
||||
int handleVid(VideoContext* context);
|
||||
|
||||
/* Deallocates a video context */
|
||||
void freeVideoContext(VideoContext* context);
|
||||
|
||||
/* Loop for receiving and decoding video */
|
||||
void videoLoop(void *context_ptr);
|
||||
#endif
|
7
Switch/test.bat
Normal file
7
Switch/test.bat
Normal file
|
@ -0,0 +1,7 @@
|
|||
@echo off
|
||||
cls
|
||||
Title nxLink
|
||||
echo Sending compiled homebrew to switch.
|
||||
C:\devkitPro\tools\bin\nxlink.exe -a 172.16.0.10 Switch.nro
|
||||
pause
|
||||
exit
|
21
WindowsStreamer/Devlord_modules/DB.js
Normal file
21
WindowsStreamer/Devlord_modules/DB.js
Normal file
|
@ -0,0 +1,21 @@
|
|||
//Authour: Dustin Harris
|
||||
//GitHub: https://github.com/DevL0rd
|
||||
var fs = require('fs');
|
||||
var getDirName = require('path').dirname;
|
||||
|
||||
function load(path) {
|
||||
var contents = fs.readFileSync(path).toString('utf-8');
|
||||
return JSON.parse(contents)
|
||||
}
|
||||
|
||||
function save(path, obj) {
|
||||
var contents = JSON.stringify(obj, null, "\t")
|
||||
fs.mkdir(getDirName(path), { recursive: true }, function (err) {
|
||||
if (err) throw err;
|
||||
fs.writeFileSync(path, contents, function (err) {
|
||||
if (err) throw err;
|
||||
});
|
||||
});
|
||||
}
|
||||
exports.load = load;
|
||||
exports.save = save;
|
37
WindowsStreamer/Devlord_modules/conColors.js
Normal file
37
WindowsStreamer/Devlord_modules/conColors.js
Normal file
|
@ -0,0 +1,37 @@
|
|||
//Authour: Dustin Harris
|
||||
//GitHub: https://github.com/DevL0rd
|
||||
var reset = "\x1b[0m";
|
||||
|
||||
var style = {
|
||||
bright: "\x1b[1m",
|
||||
dim: "\x1b[2m",
|
||||
underscore: "\x1b[4m",
|
||||
blink: "\x1b[5m",
|
||||
reverse: "\x1b[7m",
|
||||
hidden: "\x1b[8m"
|
||||
}
|
||||
|
||||
var fg = {
|
||||
black: "\x1b[30m",
|
||||
red: "\x1b[31m",
|
||||
green: "\x1b[32m",
|
||||
yellow: "\x1b[33m",
|
||||
blue: "\x1b[34m",
|
||||
magenta: "\x1b[35m",
|
||||
cyan: "\x1b[36m",
|
||||
white: "\x1b[37m"
|
||||
}
|
||||
var bg = {
|
||||
black: "\x1b[40m",
|
||||
red: "\x1b[41m",
|
||||
green: "\x1b[42m",
|
||||
yellow: "\x1b[43m",
|
||||
blue: "\x1b[44m",
|
||||
magenta: "\x1b[45m",
|
||||
cyan: "\x1b[46m",
|
||||
white: "\x1b[47m"
|
||||
}
|
||||
exports.bg = bg;
|
||||
exports.fg = fg;
|
||||
exports.style = style;
|
||||
exports.reset = reset;
|
13
WindowsStreamer/Devlord_modules/conSplash.js
Normal file
13
WindowsStreamer/Devlord_modules/conSplash.js
Normal file
|
@ -0,0 +1,13 @@
|
|||
//Authour: Dustin Harris
|
||||
//GitHub: https://github.com/DevL0rd
|
||||
var cc = require('./conColors.js');
|
||||
console.log(cc.style.bright + cc.fg.blue)
|
||||
console.log(" ____ ___ __ ");
|
||||
console.log("/\\ _`\\ /\\_ \\ /\\ \\ ");
|
||||
console.log("\\ \\ \\/\\ \\ __ __ __\\//\\ \\ ___ _ __ \\_\\ \\ ");
|
||||
console.log(" \\ \\ \\ \\ \\ /'__`\\/\\ \\/\\ \\ \\ \\ \\ / __`\\/\\`'__\\/'_` \\ ");
|
||||
console.log(" \\ \\ \\_\\ \\/\\ __/\\ \\ \\_/ | \\_\\ \\_/\\ \\_\\ \\ \\ \\//\\ \\_\\ \\ ");
|
||||
console.log(" \\ \\____/\\ \\____\\\\ \\___/ /\\____\\ \\____/\\ \\_\\\\ \\___,_\\ ");
|
||||
console.log(" \\/___/ \\/____/ \\/__/ \\/____/\\/___/ \\/_/ \\/__,_ / ");
|
||||
console.log(" ");
|
||||
console.log(cc.reset)
|
4
WindowsStreamer/InstallModules.bat
Normal file
4
WindowsStreamer/InstallModules.bat
Normal file
|
@ -0,0 +1,4 @@
|
|||
@echo off
|
||||
cls
|
||||
npm install
|
||||
pause
|
4
WindowsStreamer/Package.bat
Normal file
4
WindowsStreamer/Package.bat
Normal file
|
@ -0,0 +1,4 @@
|
|||
@echo off
|
||||
cls
|
||||
electron-packager . Base-Electron-App --platform=win32 --arch=x64
|
||||
pause
|
4
WindowsStreamer/Start.bat
Normal file
4
WindowsStreamer/Start.bat
Normal file
|
@ -0,0 +1,4 @@
|
|||
@echo off
|
||||
cls
|
||||
npm start
|
||||
pause
|
BIN
WindowsStreamer/ffmpeg.exe
Normal file
BIN
WindowsStreamer/ffmpeg.exe
Normal file
Binary file not shown.
289
WindowsStreamer/main.js
Normal file
289
WindowsStreamer/main.js
Normal file
|
@ -0,0 +1,289 @@
|
|||
//Authour: Dustin Harris
|
||||
//GitHub: https://github.com/DevL0rd
|
||||
const { spawn } = require("child_process");
|
||||
const DB = require('./Devlord_modules/DB.js');
|
||||
const Struct = require('struct');
|
||||
const net = require('net');
|
||||
const robot = require("robotjs");
|
||||
const VGen = require("vgen-xbox")
|
||||
const vgen = new VGen();
|
||||
const cc = require('./Devlord_modules/conColors.js');
|
||||
const cs = require('./Devlord_modules/conSplash.js');
|
||||
|
||||
var screenSize = robot.getScreenSize();
|
||||
var sheight = screenSize.height;
|
||||
var swidth = screenSize.width;
|
||||
var hidStreamClient = new net.Socket();
|
||||
function connect(address) {
|
||||
hidStreamClient.connect({
|
||||
host: "172.16.0.10",
|
||||
port: 2223
|
||||
});
|
||||
}
|
||||
|
||||
var controllerId = 1;
|
||||
var ffmpegProcess;
|
||||
var ffmpegAudioProcess;
|
||||
|
||||
hidStreamClient.on('error', function (ex) {
|
||||
if (ex) {
|
||||
console.log("Could not connect to Switch. Connection timed out...")
|
||||
setTimeout(connect, 1000);
|
||||
}
|
||||
});
|
||||
hidStreamClient.on('connect', function () {
|
||||
console.log('Connected to Switch!');
|
||||
try {
|
||||
// Try plugging in first controller
|
||||
controllerId = vgen.pluginNext();
|
||||
}
|
||||
catch (e) {
|
||||
// Exception most probably due to drivers not installed
|
||||
vgen.installDriver(() => {
|
||||
vgen.plugin(controllerId);
|
||||
});
|
||||
}
|
||||
ffmpegProcess = spawn(
|
||||
"./ffmpeg.exe",
|
||||
["-probesize", "10M", "-f", "gdigrab", "-framerate", "60", "-video_size", swidth + "x" + sheight, "-offset_x", "0", "-offset_y", "0", "-i", "desktop", "-f", "h264", "-vf", "scale=1280x720", "-preset", "ultrafast", "-tune", "zerolatency", "-pix_fmt", "yuv420p", "-profile:v", "baseline", "-x264-params", "\"nal-hrd=cbr\"", "-b:v", "5M", "-minrate", "5M", "-maxrate", "5M", "-bufsize", "2M", "tcp://172.16.0.10:2222"],
|
||||
{ stdio: "pipe" }
|
||||
);
|
||||
|
||||
ffmpegProcess.stdout.on("data", chunk => {
|
||||
|
||||
});
|
||||
|
||||
ffmpegProcess.stderr.on('data', (data) => {
|
||||
//console.error(`stderr: ${data}`);
|
||||
});
|
||||
|
||||
ffmpegProcess.on('close', (code) => {
|
||||
console.log(`ffmpegProcess process exited with code ${code}`);
|
||||
});
|
||||
|
||||
|
||||
|
||||
ffmpegAudioProcess = spawn(
|
||||
"./ffmpeg.exe",
|
||||
["-y", "-f", "dshow", "-i", "audio=virtual-audio-capturer", "-f", "s16le", "-ar", "16000", "-ac", "2", "-c:a", "pcm_s16le", "udp://172.16.0.10:2224?pkt_size=640"],
|
||||
{ stdio: "pipe" }
|
||||
);
|
||||
ffmpegAudioProcess.stdout.on("data", chunk => {
|
||||
//videoStreamClient.write(chunk);
|
||||
});
|
||||
|
||||
ffmpegAudioProcess.stderr.on('data', (data) => {
|
||||
//console.error(`stderr: ${data}`);
|
||||
});
|
||||
|
||||
ffmpegAudioProcess.on('close', (code) => {
|
||||
console.log(`ffmpegAudioProcess process exited with code ${code}`);
|
||||
});
|
||||
|
||||
});
|
||||
var switchHidBuffer = new Buffer.alloc(0);
|
||||
function parseInputStruct(buff) {
|
||||
var input = Struct()
|
||||
.word64Ule('HeldKeys')
|
||||
.word16Ule('LJoyX')
|
||||
.word16Ule('LJoyY')
|
||||
.word16Ule('RJoyX')
|
||||
.word16Ule('RJoyY')
|
||||
.word16Ule('touchX')
|
||||
.word16Ule('touchY')
|
||||
input._setBuff(buff);
|
||||
return input;
|
||||
};
|
||||
function isOdd(int) {
|
||||
return (int & 1) === 1;
|
||||
}
|
||||
function heldKeysBitmask(HeldKeys) {
|
||||
return {
|
||||
A: isOdd(HeldKeys >> 0),
|
||||
B: isOdd(HeldKeys >> 1),
|
||||
X: isOdd(HeldKeys >> 2),
|
||||
Y: isOdd(HeldKeys >> 3),
|
||||
LS: isOdd(HeldKeys >> 4),
|
||||
RS: isOdd(HeldKeys >> 5),
|
||||
L: isOdd(HeldKeys >> 6),
|
||||
R: isOdd(HeldKeys >> 7),
|
||||
ZL: isOdd(HeldKeys >> 8),
|
||||
ZR: isOdd(HeldKeys >> 9),
|
||||
Plus: isOdd(HeldKeys >> 10),
|
||||
Minus: isOdd(HeldKeys >> 11),
|
||||
Left: isOdd(HeldKeys >> 12),
|
||||
Up: isOdd(HeldKeys >> 13),
|
||||
Right: isOdd(HeldKeys >> 14),
|
||||
Down: isOdd(HeldKeys >> 15)
|
||||
}
|
||||
}
|
||||
var heldKeysOld;
|
||||
var LJoyXold;
|
||||
var LJoyYold;
|
||||
var RJoyXold;
|
||||
var RJoyYold;
|
||||
var touchXold;
|
||||
var touchYold;
|
||||
var mouseIsDown = false;
|
||||
hidStreamClient.on('data', function (data) {
|
||||
//logDataStream(data)
|
||||
//buffer2 = new Buffer.from(data, "hex");
|
||||
|
||||
switchHidBuffer = new Buffer.from(data);
|
||||
var hid = parseInputStruct(switchHidBuffer)
|
||||
var heldKeys = hid.get("HeldKeys");
|
||||
var touchX = hid.get("touchX");
|
||||
var touchY = hid.get("touchY");
|
||||
var LJoyX = hid.get("LJoyX");
|
||||
var LJoyY = hid.get("LJoyY");
|
||||
var RJoyX = hid.get("RJoyX");
|
||||
var RJoyY = hid.get("RJoyY");
|
||||
if (LJoyX != LJoyXold || LJoyY != LJoyYold) {
|
||||
var nljx;
|
||||
var nljy;
|
||||
if (LJoyX) {
|
||||
nljx = LJoyX / 32767.5
|
||||
}
|
||||
if (nljx > 1) {
|
||||
nljx = 2 - nljx
|
||||
nljx = -nljx
|
||||
}
|
||||
|
||||
if (LJoyY) {
|
||||
nljy = LJoyY / 32767.5
|
||||
}
|
||||
if (nljy > 1) {
|
||||
nljy = 2 - nljy
|
||||
nljy = -nljy
|
||||
}
|
||||
vgen.setAxisL(controllerId, nljx, nljy);
|
||||
LJoyXold = LJoyX;
|
||||
LJoyYold = LJoyY;
|
||||
}
|
||||
if (RJoyX != RJoyXold || RJoyY != RJoyYold) {
|
||||
var nrjx;
|
||||
var nrjy;
|
||||
if (RJoyX) {
|
||||
nrjx = RJoyX / 32767.5
|
||||
}
|
||||
if (nrjx > 1) {
|
||||
nrjx = 2 - nrjx
|
||||
nrjx = -nrjx
|
||||
}
|
||||
|
||||
if (RJoyY) {
|
||||
nrjy = RJoyY / 32767.5
|
||||
}
|
||||
if (nrjy > 1) {
|
||||
nrjy = 2 - nrjy
|
||||
nrjy = -nrjy
|
||||
}
|
||||
vgen.setAxisR(controllerId, nrjx, nrjy);
|
||||
RJoyXold = RJoyX;
|
||||
RJoyYold = RJoyY;
|
||||
}
|
||||
if (heldKeys != heldKeysOld) {
|
||||
var inputStates = heldKeysBitmask(heldKeys);
|
||||
//Button mapping
|
||||
vgen.setButton(controllerId, vgen.Buttons.B, inputStates.A);
|
||||
vgen.setButton(controllerId, vgen.Buttons.A, inputStates.B);
|
||||
vgen.setButton(controllerId, vgen.Buttons.X, inputStates.Y);
|
||||
vgen.setButton(controllerId, vgen.Buttons.Y, inputStates.X);
|
||||
vgen.setButton(controllerId, vgen.Buttons.BACK, inputStates.Minus);
|
||||
vgen.setButton(controllerId, vgen.Buttons.START, inputStates.Plus);
|
||||
vgen.setButton(controllerId, vgen.Buttons.LEFT_SHOULDER, inputStates.L);
|
||||
vgen.setButton(controllerId, vgen.Buttons.RIGHT_SHOULDER, inputStates.R);
|
||||
vgen.setButton(controllerId, vgen.Buttons.LEFT_THUMB, inputStates.LS);
|
||||
vgen.setButton(controllerId, vgen.Buttons.RIGHT_THUMB, inputStates.RS);
|
||||
//Trigger Mapping
|
||||
if (inputStates.ZL) {
|
||||
vgen.setTriggerL(controllerId, 1);
|
||||
} else {
|
||||
vgen.setTriggerL(controllerId, 0);
|
||||
}
|
||||
if (inputStates.ZR) {
|
||||
vgen.setTriggerR(controllerId, 1);
|
||||
} else {
|
||||
vgen.setTriggerR(controllerId, 0);
|
||||
}
|
||||
//Dpad mapping
|
||||
if (inputStates.Up || inputStates.Down || inputStates.Left || inputStates.Right) {
|
||||
if (inputStates.Up) {
|
||||
if (inputStates.Left || inputStates.Right) {
|
||||
if (inputStates.Left) {
|
||||
vgen.setDpad(controllerId, vgen.Dpad.UP_LEFT);
|
||||
} else {
|
||||
vgen.setDpad(controllerId, vgen.Dpad.UP_RIGHT);
|
||||
}
|
||||
} else {
|
||||
vgen.setDpad(controllerId, vgen.Dpad.UP);
|
||||
}
|
||||
} else if (inputStates.Down) {
|
||||
if (inputStates.Left || inputStates.Right) {
|
||||
if (inputStates.Left) {
|
||||
vgen.setDpad(controllerId, vgen.Dpad.DOWN_LEFT);
|
||||
} else {
|
||||
vgen.setDpad(controllerId, vgen.Dpad.DOWN_RIGHT);
|
||||
}
|
||||
} else {
|
||||
vgen.setDpad(controllerId, vgen.Dpad.DOWN);
|
||||
}
|
||||
} else if (inputStates.Left) {
|
||||
vgen.setDpad(controllerId, vgen.Dpad.LEFT);
|
||||
} else if (inputStates.Right) {
|
||||
vgen.setDpad(controllerId, vgen.Dpad.RIGHT);
|
||||
}
|
||||
} else {
|
||||
vgen.setDpad(controllerId, vgen.Dpad.NONE);
|
||||
}
|
||||
heldKeysOld = heldKeys;
|
||||
}
|
||||
if (touchX != touchXold || touchY != touchYold) {
|
||||
if (touchX && touchY) {
|
||||
touchX -= 15;
|
||||
touchY -= 15;
|
||||
var posXPercent = touchX / 1249
|
||||
var posYPercent = touchY / 689
|
||||
var posX = Math.floor(swidth * posXPercent)
|
||||
var posY = Math.floor(sheight * posYPercent)
|
||||
robot.moveMouse(posX, posY);
|
||||
if (!mouseIsDown) {
|
||||
robot.mouseToggle("down");
|
||||
mouseIsDown = true;
|
||||
}
|
||||
touchTime++;
|
||||
} else {
|
||||
if (mouseIsDown) {
|
||||
robot.mouseToggle("up");
|
||||
mouseIsDown = false;
|
||||
}
|
||||
touchTime = 0;
|
||||
}
|
||||
touchXold = touchX;
|
||||
touchYold = touchY;
|
||||
}
|
||||
});
|
||||
hidStreamClient.on('end', function () {
|
||||
console.log('hidStreamClient Disconnected.');
|
||||
try {
|
||||
vgen.unplug(controllerId);
|
||||
} catch (error) {
|
||||
|
||||
}
|
||||
ffmpegProcess.kill();
|
||||
ffmpegAudioProcess.kill();
|
||||
connect();
|
||||
});
|
||||
|
||||
connect();
|
||||
|
||||
module.exports.log = function (msg) {
|
||||
console.log(msg);
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
617
WindowsStreamer/package-lock.json
generated
Normal file
617
WindowsStreamer/package-lock.json
generated
Normal file
|
@ -0,0 +1,617 @@
|
|||
{
|
||||
"name": "Base-Electron-App",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"ansi-regex": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
|
||||
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
|
||||
},
|
||||
"aproba": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
|
||||
"integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
|
||||
},
|
||||
"are-we-there-yet": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
|
||||
"integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
|
||||
"requires": {
|
||||
"delegates": "^1.0.0",
|
||||
"readable-stream": "^2.0.6"
|
||||
}
|
||||
},
|
||||
"assert": {
|
||||
"version": "1.5.0",
|
||||
"resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",
|
||||
"integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==",
|
||||
"requires": {
|
||||
"object-assign": "^4.1.1",
|
||||
"util": "0.10.3"
|
||||
}
|
||||
},
|
||||
"base64-js": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz",
|
||||
"integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g=="
|
||||
},
|
||||
"bindings": {
|
||||
"version": "1.5.0",
|
||||
"resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
|
||||
"integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
|
||||
"requires": {
|
||||
"file-uri-to-path": "1.0.0"
|
||||
}
|
||||
},
|
||||
"bl": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/bl/-/bl-4.0.2.tgz",
|
||||
"integrity": "sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ==",
|
||||
"requires": {
|
||||
"buffer": "^5.5.0",
|
||||
"inherits": "^2.0.4",
|
||||
"readable-stream": "^3.4.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"readable-stream": {
|
||||
"version": "3.6.0",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
|
||||
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
|
||||
"requires": {
|
||||
"inherits": "^2.0.3",
|
||||
"string_decoder": "^1.1.1",
|
||||
"util-deprecate": "^1.0.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"buffer": {
|
||||
"version": "5.6.0",
|
||||
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz",
|
||||
"integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==",
|
||||
"requires": {
|
||||
"base64-js": "^1.0.2",
|
||||
"ieee754": "^1.1.4"
|
||||
}
|
||||
},
|
||||
"chownr": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
|
||||
"integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
|
||||
},
|
||||
"code-point-at": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
|
||||
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
|
||||
},
|
||||
"console-control-strings": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
|
||||
"integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
|
||||
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
|
||||
},
|
||||
"decompress-response": {
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz",
|
||||
"integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==",
|
||||
"requires": {
|
||||
"mimic-response": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"deep-extend": {
|
||||
"version": "0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
|
||||
"integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
|
||||
},
|
||||
"delegates": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
|
||||
"integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
|
||||
},
|
||||
"detect-libc": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
|
||||
"integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups="
|
||||
},
|
||||
"end-of-stream": {
|
||||
"version": "1.4.4",
|
||||
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
|
||||
"integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
|
||||
"requires": {
|
||||
"once": "^1.4.0"
|
||||
}
|
||||
},
|
||||
"expand-template": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
|
||||
"integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg=="
|
||||
},
|
||||
"ffi": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/ffi/-/ffi-2.3.0.tgz",
|
||||
"integrity": "sha512-vkPA9Hf9CVuQ5HeMZykYvrZF2QNJ/iKGLkyDkisBnoOOFeFXZQhUPxBARPBIZMJVulvBI2R+jgofW03gyPpJcQ==",
|
||||
"requires": {
|
||||
"bindings": "~1.2.0",
|
||||
"debug": "2",
|
||||
"nan": "2",
|
||||
"ref": "1",
|
||||
"ref-struct": "1"
|
||||
},
|
||||
"dependencies": {
|
||||
"bindings": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz",
|
||||
"integrity": "sha1-FK1hE4EtLTfXLme0ystLtyZQXxE="
|
||||
},
|
||||
"debug": {
|
||||
"version": "2.6.9",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||
"requires": {
|
||||
"ms": "2.0.0"
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
||||
}
|
||||
}
|
||||
},
|
||||
"file-uri-to-path": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
|
||||
"integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="
|
||||
},
|
||||
"formidable": {
|
||||
"version": "1.2.2",
|
||||
"resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz",
|
||||
"integrity": "sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q=="
|
||||
},
|
||||
"fs-constants": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
|
||||
"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
|
||||
},
|
||||
"gauge": {
|
||||
"version": "2.7.4",
|
||||
"resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
|
||||
"integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
|
||||
"requires": {
|
||||
"aproba": "^1.0.3",
|
||||
"console-control-strings": "^1.0.0",
|
||||
"has-unicode": "^2.0.0",
|
||||
"object-assign": "^4.1.0",
|
||||
"signal-exit": "^3.0.0",
|
||||
"string-width": "^1.0.1",
|
||||
"strip-ansi": "^3.0.1",
|
||||
"wide-align": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"github-from-package": {
|
||||
"version": "0.0.0",
|
||||
"resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
|
||||
"integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4="
|
||||
},
|
||||
"has-unicode": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
|
||||
"integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
|
||||
},
|
||||
"ieee754": {
|
||||
"version": "1.1.13",
|
||||
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
|
||||
"integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg=="
|
||||
},
|
||||
"inherits": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
|
||||
},
|
||||
"ini": {
|
||||
"version": "1.3.5",
|
||||
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
|
||||
"integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
|
||||
},
|
||||
"is-fullwidth-code-point": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
|
||||
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
|
||||
"requires": {
|
||||
"number-is-nan": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"isarray": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
||||
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
|
||||
},
|
||||
"mimic-response": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz",
|
||||
"integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA=="
|
||||
},
|
||||
"minimist": {
|
||||
"version": "1.2.5",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
|
||||
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
|
||||
},
|
||||
"mkdirp": {
|
||||
"version": "0.5.5",
|
||||
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
|
||||
"integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
|
||||
"requires": {
|
||||
"minimist": "^1.2.5"
|
||||
}
|
||||
},
|
||||
"mkdirp-classic": {
|
||||
"version": "0.5.2",
|
||||
"resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.2.tgz",
|
||||
"integrity": "sha512-ejdnDQcR75gwknmMw/tx02AuRs8jCtqFoFqDZMjiNxsu85sRIJVXDKHuLYvUUPRBUtV2FpSZa9bL1BUa3BdR2g=="
|
||||
},
|
||||
"nan": {
|
||||
"version": "2.14.0",
|
||||
"resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
|
||||
"integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg=="
|
||||
},
|
||||
"napi-build-utils": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
|
||||
"integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg=="
|
||||
},
|
||||
"node-abi": {
|
||||
"version": "2.15.0",
|
||||
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.15.0.tgz",
|
||||
"integrity": "sha512-FeLpTS0F39U7hHZU1srAK4Vx+5AHNVOTP+hxBNQknR/54laTHSFIJkDWDqiquY1LeLUgTfPN7sLPhMubx0PLAg==",
|
||||
"requires": {
|
||||
"semver": "^5.4.1"
|
||||
}
|
||||
},
|
||||
"noop-logger": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz",
|
||||
"integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI="
|
||||
},
|
||||
"npmlog": {
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
|
||||
"integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
|
||||
"requires": {
|
||||
"are-we-there-yet": "~1.1.2",
|
||||
"console-control-strings": "~1.1.0",
|
||||
"gauge": "~2.7.3",
|
||||
"set-blocking": "~2.0.0"
|
||||
}
|
||||
},
|
||||
"number-is-nan": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
|
||||
"integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
|
||||
},
|
||||
"object-assign": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
||||
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
|
||||
},
|
||||
"once": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
||||
"requires": {
|
||||
"wrappy": "1"
|
||||
}
|
||||
},
|
||||
"picomatch": {
|
||||
"version": "2.2.2",
|
||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
|
||||
"integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg=="
|
||||
},
|
||||
"prebuild-install": {
|
||||
"version": "5.3.3",
|
||||
"resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.3.tgz",
|
||||
"integrity": "sha512-GV+nsUXuPW2p8Zy7SarF/2W/oiK8bFQgJcncoJ0d7kRpekEA0ftChjfEaF9/Y+QJEc/wFR7RAEa8lYByuUIe2g==",
|
||||
"requires": {
|
||||
"detect-libc": "^1.0.3",
|
||||
"expand-template": "^2.0.3",
|
||||
"github-from-package": "0.0.0",
|
||||
"minimist": "^1.2.0",
|
||||
"mkdirp": "^0.5.1",
|
||||
"napi-build-utils": "^1.0.1",
|
||||
"node-abi": "^2.7.0",
|
||||
"noop-logger": "^0.1.1",
|
||||
"npmlog": "^4.0.1",
|
||||
"pump": "^3.0.0",
|
||||
"rc": "^1.2.7",
|
||||
"simple-get": "^3.0.3",
|
||||
"tar-fs": "^2.0.0",
|
||||
"tunnel-agent": "^0.6.0",
|
||||
"which-pm-runs": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"process-nextick-args": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
|
||||
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
|
||||
},
|
||||
"pump": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
|
||||
"integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
|
||||
"requires": {
|
||||
"end-of-stream": "^1.1.0",
|
||||
"once": "^1.3.1"
|
||||
}
|
||||
},
|
||||
"rc": {
|
||||
"version": "1.2.8",
|
||||
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
|
||||
"integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
|
||||
"requires": {
|
||||
"deep-extend": "^0.6.0",
|
||||
"ini": "~1.3.0",
|
||||
"minimist": "^1.2.0",
|
||||
"strip-json-comments": "~2.0.1"
|
||||
}
|
||||
},
|
||||
"readable-stream": {
|
||||
"version": "2.3.7",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
|
||||
"integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
|
||||
"requires": {
|
||||
"core-util-is": "~1.0.0",
|
||||
"inherits": "~2.0.3",
|
||||
"isarray": "~1.0.0",
|
||||
"process-nextick-args": "~2.0.0",
|
||||
"safe-buffer": "~5.1.1",
|
||||
"string_decoder": "~1.1.1",
|
||||
"util-deprecate": "~1.0.1"
|
||||
}
|
||||
},
|
||||
"readdirp": {
|
||||
"version": "3.4.0",
|
||||
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz",
|
||||
"integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==",
|
||||
"requires": {
|
||||
"picomatch": "^2.2.1"
|
||||
}
|
||||
},
|
||||
"ref": {
|
||||
"version": "1.3.5",
|
||||
"resolved": "https://registry.npmjs.org/ref/-/ref-1.3.5.tgz",
|
||||
"integrity": "sha512-2cBCniTtxcGUjDpvFfVpw323a83/0RLSGJJY5l5lcomZWhYpU2cuLdsvYqMixvsdLJ9+sTdzEkju8J8ZHDM2nA==",
|
||||
"requires": {
|
||||
"bindings": "1",
|
||||
"debug": "2",
|
||||
"nan": "2"
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "2.6.9",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||
"requires": {
|
||||
"ms": "2.0.0"
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
||||
}
|
||||
}
|
||||
},
|
||||
"ref-struct": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/ref-struct/-/ref-struct-1.1.0.tgz",
|
||||
"integrity": "sha1-XV7mWtQc78Olxf60BYcmHkee3BM=",
|
||||
"requires": {
|
||||
"debug": "2",
|
||||
"ref": "1"
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "2.6.9",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||
"requires": {
|
||||
"ms": "2.0.0"
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
||||
}
|
||||
}
|
||||
},
|
||||
"robotjs": {
|
||||
"version": "0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/robotjs/-/robotjs-0.6.0.tgz",
|
||||
"integrity": "sha512-6pRWI3d+CBZqCXT/rsJfabbZoELua+jTeXilG27F8Jvix/J2BYZ0O7Tly2WCmXyqw5xYdCvOwvCeLRHEtXkt4w==",
|
||||
"requires": {
|
||||
"nan": "^2.14.0",
|
||||
"node-abi": "^2.13.0",
|
||||
"prebuild-install": "^5.3.3"
|
||||
}
|
||||
},
|
||||
"safe-buffer": {
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
||||
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
|
||||
},
|
||||
"semver": {
|
||||
"version": "5.7.1",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
|
||||
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
|
||||
},
|
||||
"set-blocking": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
|
||||
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
|
||||
},
|
||||
"signal-exit": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
|
||||
"integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
|
||||
},
|
||||
"simple-concat": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz",
|
||||
"integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY="
|
||||
},
|
||||
"simple-get": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz",
|
||||
"integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==",
|
||||
"requires": {
|
||||
"decompress-response": "^4.2.0",
|
||||
"once": "^1.3.1",
|
||||
"simple-concat": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"string-width": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
|
||||
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
|
||||
"requires": {
|
||||
"code-point-at": "^1.0.0",
|
||||
"is-fullwidth-code-point": "^1.0.0",
|
||||
"strip-ansi": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
||||
"requires": {
|
||||
"safe-buffer": "~5.1.0"
|
||||
}
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
|
||||
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
|
||||
"requires": {
|
||||
"ansi-regex": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"strip-json-comments": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
|
||||
"integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
|
||||
},
|
||||
"struct": {
|
||||
"version": "0.0.12",
|
||||
"resolved": "https://registry.npmjs.org/struct/-/struct-0.0.12.tgz",
|
||||
"integrity": "sha1-gzCvhyZk6aW9Z4ZkUkhXxQkIA4o="
|
||||
},
|
||||
"tar-fs": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.1.tgz",
|
||||
"integrity": "sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==",
|
||||
"requires": {
|
||||
"chownr": "^1.1.1",
|
||||
"mkdirp-classic": "^0.5.2",
|
||||
"pump": "^3.0.0",
|
||||
"tar-stream": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"tar-stream": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.2.tgz",
|
||||
"integrity": "sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q==",
|
||||
"requires": {
|
||||
"bl": "^4.0.1",
|
||||
"end-of-stream": "^1.4.1",
|
||||
"fs-constants": "^1.0.0",
|
||||
"inherits": "^2.0.3",
|
||||
"readable-stream": "^3.1.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"readable-stream": {
|
||||
"version": "3.6.0",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
|
||||
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
|
||||
"requires": {
|
||||
"inherits": "^2.0.3",
|
||||
"string_decoder": "^1.1.1",
|
||||
"util-deprecate": "^1.0.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"tunnel-agent": {
|
||||
"version": "0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
|
||||
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
|
||||
"requires": {
|
||||
"safe-buffer": "^5.0.1"
|
||||
}
|
||||
},
|
||||
"util": {
|
||||
"version": "0.10.3",
|
||||
"resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
|
||||
"integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
|
||||
"requires": {
|
||||
"inherits": "2.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"inherits": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
|
||||
"integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
|
||||
}
|
||||
}
|
||||
},
|
||||
"util-deprecate": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
||||
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
|
||||
},
|
||||
"vgen-xbox": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/vgen-xbox/-/vgen-xbox-1.0.1.tgz",
|
||||
"integrity": "sha1-SJo9R92BujIBUxKyg0FaoS3rGk4=",
|
||||
"requires": {
|
||||
"assert": "^1.4.1",
|
||||
"ffi": "^2.2.0",
|
||||
"ref": "^1.3.4",
|
||||
"windows-elevate": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"which-pm-runs": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz",
|
||||
"integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs="
|
||||
},
|
||||
"wide-align": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
|
||||
"integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
|
||||
"requires": {
|
||||
"string-width": "^1.0.2 || 2"
|
||||
}
|
||||
},
|
||||
"windows-elevate": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/windows-elevate/-/windows-elevate-1.0.1.tgz",
|
||||
"integrity": "sha1-kBEtr4cwoQ9lGKPH5Z91YcZyXWQ="
|
||||
},
|
||||
"wrappy": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
|
||||
},
|
||||
"ws": {
|
||||
"version": "7.2.3",
|
||||
"resolved": "https://registry.npmjs.org/ws/-/ws-7.2.3.tgz",
|
||||
"integrity": "sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ=="
|
||||
}
|
||||
}
|
||||
}
|
20
WindowsStreamer/package.json
Normal file
20
WindowsStreamer/package.json
Normal file
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"name": "Base-Electron-App",
|
||||
"version": "1.0.0",
|
||||
"description": "The bestest Electron window.",
|
||||
"repository": "https://github.com/delv0rd/modular-web-server",
|
||||
"keywords": [],
|
||||
"author": "Dustin Harris",
|
||||
"license": "",
|
||||
"dependencies": {
|
||||
"formidable": "latest",
|
||||
"readdirp": "latest",
|
||||
"robotjs": "latest",
|
||||
"struct": "latest",
|
||||
"vgen-xbox": "^1.0.1",
|
||||
"ws": "latest"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "node main.js"
|
||||
}
|
||||
}
|
11
WindowsStreamer/settings.json
Normal file
11
WindowsStreamer/settings.json
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"debug": true,
|
||||
"accentColor": {
|
||||
"r": 50,
|
||||
"g": 50,
|
||||
"b": 50,
|
||||
"a": 0.9
|
||||
},
|
||||
"rainbowEnabled": false,
|
||||
"devToolsOnStartup": false
|
||||
}
|
6
WindowsStreamer/testStreamServer.bat
Normal file
6
WindowsStreamer/testStreamServer.bat
Normal file
|
@ -0,0 +1,6 @@
|
|||
@echo off
|
||||
:1
|
||||
cls
|
||||
ffmpeg -y -f rawvideo -pixel_format rgb32 -framerate 300 -video_size 1280x720 -i pipe: -f h264 -vf scale=1280x720 -preset ultrafast -tune zerolatency -pix_fmt yuv420p -profile:v baseline -x264-params nal-hrd=cbr -b:v 5M -minrate 5M -maxrate 5M -bufsize 2M tcp://172.16.0.10:2222
|
||||
pause
|
||||
goto 1
|
Loading…
Reference in a new issue