├── .github
├── ISSUE_TEMPLATE.md
└── PULL_REQUEST_TEMPLATE.md
├── .gitignore
├── LICENSE
├── PinBox
├── PinBox.sln
└── PinBox
│ ├── Makefile
│ ├── PinBox.rsf
│ ├── PinBox.vcxproj
│ ├── PinBox.vcxproj.filters
│ ├── PinBox.vcxproj.user
│ ├── assets
│ ├── banner.png
│ ├── banner.wav
│ └── icon.png
│ ├── build-cia.bat
│ ├── create-smdh.bat
│ ├── include
│ ├── Anim.h
│ ├── Color.h
│ ├── ConfigManager.h
│ ├── HubItem.h
│ ├── Logger.h
│ ├── Mutex.h
│ ├── PPAudio.h
│ ├── PPDecoder.h
│ ├── PPGraphics.h
│ ├── PPMessage.h
│ ├── PPSession.h
│ ├── PPSessionManager.h
│ ├── PPUI.h
│ ├── constant.h
│ ├── easing.h
│ ├── lodepng.h
│ └── yuv_rgb.h
│ ├── romfs
│ └── assets
│ │ ├── default_1.png
│ │ ├── default_2.png
│ │ ├── default_3.png
│ │ ├── default_4.png
│ │ └── monitor.png
│ ├── source
│ ├── ConfigManager.cpp
│ ├── Mutex.cpp
│ ├── PPAudio.cpp
│ ├── PPDecoder.cpp
│ ├── PPGraphics.cpp
│ ├── PPMessage.cpp
│ ├── PPSession.cpp
│ ├── PPSessionManager.cpp
│ ├── PPUI.cpp
│ ├── easing.cpp
│ ├── lodepng.cpp
│ ├── main.cpp
│ ├── vshader.v.pica
│ └── yuv_rgb.c
│ └── tools
│ ├── bannertool32.exe
│ ├── bannertool64.exe
│ ├── citra
│ ├── Qt5Core.dll
│ ├── Qt5Gui.dll
│ ├── Qt5Multimedia.dll
│ ├── Qt5Network.dll
│ ├── Qt5OpenGL.dll
│ ├── Qt5Widgets.dll
│ ├── README.md
│ ├── SDL2.dll
│ ├── citra-qt.exe
│ ├── citra-room.exe
│ ├── citra.exe
│ ├── imageformats
│ │ ├── qgif.dll
│ │ ├── qicns.dll
│ │ ├── qico.dll
│ │ ├── qjpeg.dll
│ │ ├── qtga.dll
│ │ ├── qtiff.dll
│ │ ├── qwbmp.dll
│ │ └── qwebp.dll
│ ├── libgcc_s_seh-1.dll
│ ├── libpng16-16.dll
│ ├── libsamplerate-0.dll
│ ├── libstdc++-6.dll
│ ├── libwinpthread-1.dll
│ ├── license.txt
│ ├── mediaservice
│ │ ├── dsengine.dll
│ │ ├── qtmedia_audioengine.dll
│ │ └── wmfengine.dll
│ ├── platforms
│ │ └── qwindows.dll
│ ├── styles
│ │ └── qwindowsvistastyle.dll
│ └── zlib1.dll
│ ├── makerom32.exe
│ └── makerom64.exe
├── PinBoxServer
├── Check-Pinbox-Firewall-Rules.bat
├── PinBoxServer.sln
└── PinBoxServer
│ ├── AudioStreamSession.cpp
│ ├── AudioStreamSession.h
│ ├── Check-Pinbox-Firewall-Rules.bat
│ ├── HubItem.h
│ ├── InputStreamSession.cpp
│ ├── InputStreamSession.h
│ ├── PPClientSession.cpp
│ ├── PPClientSession.h
│ ├── PPMessage.cpp
│ ├── PPMessage.h
│ ├── PPServer.cpp
│ ├── PPServer.h
│ ├── PinBoxServer.cpp
│ ├── PinBoxServer.vcxproj
│ ├── PinBoxServer.vcxproj.filters
│ ├── PinBoxServer.vcxproj.user
│ ├── ScreenCaptureSession.cpp
│ ├── ScreenCaptureSession.h
│ ├── ServerConfig.cpp
│ ├── ServerConfig.h
│ ├── UIMainWindow.cpp
│ ├── UIMainWindow.h
│ ├── const.h
│ ├── hub.cfg
│ ├── input.cfg
│ ├── server.cfg
│ ├── stdafx.cpp
│ ├── stdafx.h
│ ├── targetver.h
│ ├── tmp
│ ├── cemu.png
│ ├── cuphead.png
│ ├── default_1.png
│ ├── default_2.png
│ ├── default_3.png
│ ├── default_4.png
│ └── pitpeople.png
│ └── winmain-inl.h
├── PinBoxTestProject
├── PinBoxTestProject.sln
└── PinBoxTestProject
│ ├── PPDecoder.cpp
│ ├── PPDecoder.h
│ ├── PPMessage.cpp
│ ├── PPMessage.h
│ ├── PPNetwork.cpp
│ ├── PPNetwork.h
│ ├── PPSession.cpp
│ ├── PPSession.h
│ ├── PPSessionManager.cpp
│ ├── PPSessionManager.h
│ ├── PinBoxTestProject.vcxproj
│ ├── PinBoxTestProject.vcxproj.filters
│ ├── PinBoxTestProject.vcxproj.user
│ ├── main.cpp
│ ├── yuv_rgb.c
│ └── yuv_rgb.h
├── README.md
├── ThirdParty
├── FakeInput
│ ├── LICENSE
│ ├── bin
│ │ └── lib
│ │ │ ├── Debug
│ │ │ └── fakeInput.lib
│ │ │ └── Release
│ │ │ └── fakeInput.lib
│ └── src
│ │ ├── actions
│ │ ├── action.hpp
│ │ ├── actions.hpp
│ │ ├── actionsequence.cpp
│ │ ├── actionsequence.hpp
│ │ ├── commandaction.cpp
│ │ ├── commandaction.hpp
│ │ ├── keyaction.cpp
│ │ ├── keyaction.hpp
│ │ ├── mouseaction.cpp
│ │ ├── mouseaction.hpp
│ │ ├── waitaction.cpp
│ │ └── waitaction.hpp
│ │ ├── config.hpp
│ │ ├── config.hpp.cmake
│ │ ├── display_unix.cpp
│ │ ├── display_unix.hpp
│ │ ├── fakeinput.hpp
│ │ ├── key.hpp
│ │ ├── key_base.cpp
│ │ ├── key_base.hpp
│ │ ├── key_unix.cpp
│ │ ├── key_unix.hpp
│ │ ├── key_win.cpp
│ │ ├── key_win.hpp
│ │ ├── keyboard.cpp
│ │ ├── keyboard.hpp
│ │ ├── keyboard_unix.cpp
│ │ ├── keyboard_win.cpp
│ │ ├── mapper.hpp
│ │ ├── mapper_unix.cpp
│ │ ├── mapper_win.cpp
│ │ ├── mouse.hpp
│ │ ├── mouse_unix.cpp
│ │ ├── mouse_win.cpp
│ │ ├── system.hpp
│ │ ├── system_unix.cpp
│ │ ├── system_win.cpp
│ │ └── types.hpp
├── ViGEm
│ ├── Debug (dynamic)
│ │ ├── ViGEmClient.dll
│ │ ├── ViGEmClient.exp
│ │ ├── ViGEmClient.ilk
│ │ ├── ViGEmClient.lib
│ │ └── ViGEmClient.pdb
│ ├── Debug (static)
│ │ └── ViGEmClient.lib
│ ├── Include
│ │ ├── ViGEmBusDriver.h
│ │ ├── ViGEmBusShared.h
│ │ ├── ViGEmClient.h
│ │ ├── ViGEmCommon.h
│ │ ├── ViGEmUtil.h
│ │ ├── XInputOverrides.h
│ │ └── XnaGuardianShared.h
│ ├── LICENSE
│ ├── Release (dynamic)
│ │ ├── ViGEmClient.dll
│ │ ├── ViGEmClient.exp
│ │ ├── ViGEmClient.iobj
│ │ ├── ViGEmClient.ipdb
│ │ ├── ViGEmClient.lib
│ │ └── ViGEmClient.pdb
│ ├── Release (static)
│ │ └── ViGEmClient.lib
│ ├── ViGEmBus_signed_Win7-10_x86_x64_latest.zip
│ └── ViGEmBus_signed_Win7-10_x86_x64_latest
│ │ ├── x64
│ │ ├── ViGEmBus.inf
│ │ ├── ViGEmBus.sys
│ │ ├── WdfCoinstaller01009.dll
│ │ └── vigembus.cat
│ │ └── x86
│ │ ├── ViGEmBus.inf
│ │ ├── ViGEmBus.sys
│ │ ├── WdfCoinstaller01009.dll
│ │ └── vigembus.cat
├── ffmpeg
│ ├── LICENSE.txt
│ ├── README.txt
│ ├── examples
│ │ ├── Makefile
│ │ ├── README
│ │ ├── avio_dir_cmd.c
│ │ ├── avio_reading.c
│ │ ├── decode_audio.c
│ │ ├── decode_video.c
│ │ ├── demuxing_decoding.c
│ │ ├── encode_audio.c
│ │ ├── encode_video.c
│ │ ├── extract_mvs.c
│ │ ├── filter_audio.c
│ │ ├── filtering_audio.c
│ │ ├── filtering_video.c
│ │ ├── http_multiclient.c
│ │ ├── hw_decode.c
│ │ ├── metadata.c
│ │ ├── muxing.c
│ │ ├── qsvdec.c
│ │ ├── remuxing.c
│ │ ├── resampling_audio.c
│ │ ├── scaling_video.c
│ │ ├── transcode_aac.c
│ │ ├── transcoding.c
│ │ ├── vaapi_encode.c
│ │ └── vaapi_transcode.c
│ ├── include
│ │ ├── libavcodec
│ │ │ ├── ac3_parser.h
│ │ │ ├── adts_parser.h
│ │ │ ├── avcodec.h
│ │ │ ├── avdct.h
│ │ │ ├── avfft.h
│ │ │ ├── d3d11va.h
│ │ │ ├── dirac.h
│ │ │ ├── dv_profile.h
│ │ │ ├── dxva2.h
│ │ │ ├── jni.h
│ │ │ ├── mediacodec.h
│ │ │ ├── qsv.h
│ │ │ ├── vaapi.h
│ │ │ ├── vdpau.h
│ │ │ ├── version.h
│ │ │ ├── videotoolbox.h
│ │ │ ├── vorbis_parser.h
│ │ │ └── xvmc.h
│ │ ├── libavdevice
│ │ │ ├── avdevice.h
│ │ │ └── version.h
│ │ ├── libavfilter
│ │ │ ├── avfilter.h
│ │ │ ├── buffersink.h
│ │ │ ├── buffersrc.h
│ │ │ └── version.h
│ │ ├── libavformat
│ │ │ ├── avformat.h
│ │ │ ├── avio.h
│ │ │ └── version.h
│ │ ├── libavutil
│ │ │ ├── adler32.h
│ │ │ ├── aes.h
│ │ │ ├── aes_ctr.h
│ │ │ ├── attributes.h
│ │ │ ├── audio_fifo.h
│ │ │ ├── avassert.h
│ │ │ ├── avconfig.h
│ │ │ ├── avstring.h
│ │ │ ├── avutil.h
│ │ │ ├── base64.h
│ │ │ ├── blowfish.h
│ │ │ ├── bprint.h
│ │ │ ├── bswap.h
│ │ │ ├── buffer.h
│ │ │ ├── camellia.h
│ │ │ ├── cast5.h
│ │ │ ├── channel_layout.h
│ │ │ ├── common.h
│ │ │ ├── cpu.h
│ │ │ ├── crc.h
│ │ │ ├── des.h
│ │ │ ├── dict.h
│ │ │ ├── display.h
│ │ │ ├── downmix_info.h
│ │ │ ├── encryption_info.h
│ │ │ ├── error.h
│ │ │ ├── eval.h
│ │ │ ├── ffversion.h
│ │ │ ├── fifo.h
│ │ │ ├── file.h
│ │ │ ├── frame.h
│ │ │ ├── hash.h
│ │ │ ├── hmac.h
│ │ │ ├── hwcontext.h
│ │ │ ├── hwcontext_cuda.h
│ │ │ ├── hwcontext_d3d11va.h
│ │ │ ├── hwcontext_drm.h
│ │ │ ├── hwcontext_dxva2.h
│ │ │ ├── hwcontext_mediacodec.h
│ │ │ ├── hwcontext_qsv.h
│ │ │ ├── hwcontext_vaapi.h
│ │ │ ├── hwcontext_vdpau.h
│ │ │ ├── hwcontext_videotoolbox.h
│ │ │ ├── imgutils.h
│ │ │ ├── intfloat.h
│ │ │ ├── intreadwrite.h
│ │ │ ├── lfg.h
│ │ │ ├── log.h
│ │ │ ├── lzo.h
│ │ │ ├── macros.h
│ │ │ ├── mastering_display_metadata.h
│ │ │ ├── mathematics.h
│ │ │ ├── md5.h
│ │ │ ├── mem.h
│ │ │ ├── motion_vector.h
│ │ │ ├── murmur3.h
│ │ │ ├── opt.h
│ │ │ ├── parseutils.h
│ │ │ ├── pixdesc.h
│ │ │ ├── pixelutils.h
│ │ │ ├── pixfmt.h
│ │ │ ├── random_seed.h
│ │ │ ├── rational.h
│ │ │ ├── rc4.h
│ │ │ ├── replaygain.h
│ │ │ ├── ripemd.h
│ │ │ ├── samplefmt.h
│ │ │ ├── sha.h
│ │ │ ├── sha512.h
│ │ │ ├── spherical.h
│ │ │ ├── stereo3d.h
│ │ │ ├── tea.h
│ │ │ ├── threadmessage.h
│ │ │ ├── time.h
│ │ │ ├── timecode.h
│ │ │ ├── timestamp.h
│ │ │ ├── tree.h
│ │ │ ├── twofish.h
│ │ │ ├── version.h
│ │ │ └── xtea.h
│ │ ├── libpostproc
│ │ │ ├── postprocess.h
│ │ │ └── version.h
│ │ ├── libswresample
│ │ │ ├── swresample.h
│ │ │ └── version.h
│ │ └── libswscale
│ │ │ ├── swscale.h
│ │ │ └── version.h
│ ├── lib
│ │ ├── avcodec-58.def
│ │ ├── avcodec.lib
│ │ ├── avdevice-58.def
│ │ ├── avdevice.lib
│ │ ├── avfilter-7.def
│ │ ├── avfilter.lib
│ │ ├── avformat-58.def
│ │ ├── avformat.lib
│ │ ├── avutil-56.def
│ │ ├── avutil.lib
│ │ ├── libavcodec.dll.a
│ │ ├── libavdevice.dll.a
│ │ ├── libavfilter.dll.a
│ │ ├── libavformat.dll.a
│ │ ├── libavutil.dll.a
│ │ ├── libpostproc.dll.a
│ │ ├── libswresample.dll.a
│ │ ├── libswscale.dll.a
│ │ ├── postproc-55.def
│ │ ├── postproc.lib
│ │ ├── swresample-3.def
│ │ ├── swresample.lib
│ │ ├── swscale-5.def
│ │ └── swscale.lib
│ └── shared
│ │ ├── avcodec-58.dll
│ │ ├── avdevice-58.dll
│ │ ├── avfilter-7.dll
│ │ ├── avformat-58.dll
│ │ ├── avutil-56.dll
│ │ ├── ffmpeg.exe
│ │ ├── ffplay.exe
│ │ ├── ffprobe.exe
│ │ ├── postproc-55.dll
│ │ ├── swresample-3.dll
│ │ └── swscale-5.dll
├── libopusenc
│ ├── AUTHORS
│ ├── include
│ │ └── opusenc.h
│ ├── src
│ │ ├── arch.h
│ │ ├── ogg_packer.c
│ │ ├── ogg_packer.h
│ │ ├── opus_header.c
│ │ ├── opus_header.h
│ │ ├── opusenc.c
│ │ ├── picture.c
│ │ ├── picture.h
│ │ ├── resample.c
│ │ ├── resample_sse.h
│ │ ├── speex_resampler.h
│ │ └── stack_alloc.h
│ └── win32
│ │ ├── config.h
│ │ └── opusenc
│ │ ├── .vs
│ │ └── opusenc
│ │ │ └── v14
│ │ │ └── .suo
│ │ ├── Debug
│ │ ├── opusenc.idb
│ │ ├── opusenc.lib
│ │ └── opusenc.pdb
│ │ └── Release
│ │ └── opusenc.lib
├── loopback
│ ├── cleanup.h
│ ├── common.h
│ ├── guid.cpp
│ ├── log.h
│ ├── loopback-capture.cpp
│ ├── loopback-capture.h
│ ├── main.cpp
│ ├── prefs.cpp
│ └── prefs.h
├── opus-1.2.1
│ ├── AUTHORS
│ ├── COPYING
│ ├── INSTALL
│ ├── include
│ │ ├── opus.h
│ │ ├── opus_custom.h
│ │ ├── opus_defines.h
│ │ ├── opus_multistream.h
│ │ └── opus_types.h
│ ├── src
│ │ ├── analysis.c
│ │ ├── analysis.h
│ │ ├── mlp.c
│ │ ├── mlp.h
│ │ ├── mlp_data.c
│ │ ├── opus.c
│ │ ├── opus_compare.c
│ │ ├── opus_decoder.c
│ │ ├── opus_demo.c
│ │ ├── opus_encoder.c
│ │ ├── opus_multistream.c
│ │ ├── opus_multistream_decoder.c
│ │ ├── opus_multistream_encoder.c
│ │ ├── opus_private.h
│ │ ├── repacketizer.c
│ │ ├── repacketizer_demo.c
│ │ └── tansig_table.h
│ └── win32
│ │ └── VS2015
│ │ ├── .vs
│ │ └── opus
│ │ │ └── v14
│ │ │ └── .suo
│ │ └── Win32
│ │ ├── Debug
│ │ ├── opus.lib
│ │ └── opus.pdb
│ │ └── Release
│ │ └── opus.lib
├── opusfile-0.9
│ ├── AUTHORS
│ ├── include
│ │ └── opusfile.h
│ ├── src
│ │ ├── http.c
│ │ ├── info.c
│ │ ├── internal.c
│ │ ├── internal.h
│ │ ├── opusfile.c
│ │ ├── stream.c
│ │ ├── wincerts.c
│ │ └── winerrno.h
│ └── win32
│ │ └── VS2015
│ │ ├── .vs
│ │ └── opusfile
│ │ │ └── v14
│ │ │ └── .suo
│ │ └── Win32
│ │ ├── Debug
│ │ ├── opusfile.lib
│ │ └── opusfile.pdb
│ │ ├── Release-NoHTTP
│ │ └── opusfile.lib
│ │ └── Release
│ │ └── opusfile.lib
├── screen_capture_lite - Copy
│ ├── LICENSE
│ ├── ScreenCapture.h
│ ├── include
│ │ ├── SCCommon.h
│ │ ├── ScreenCapture.h
│ │ ├── ThreadManager.h
│ │ ├── ios
│ │ │ ├── CGFrameProcessor.h
│ │ │ ├── NSMouseCapture.h
│ │ │ └── NSMouseProcessor.h
│ │ ├── linux
│ │ │ ├── X11FrameProcessor.h
│ │ │ └── X11MouseProcessor.h
│ │ └── windows
│ │ │ ├── DXFrameProcessor.h
│ │ │ ├── GDIFrameProcessor.h
│ │ │ ├── GDIHelpers.h
│ │ │ ├── GDIMouseProcessor.h
│ │ │ └── GDIWindowProcessor.h
│ └── src
│ │ ├── SCCommon.cpp
│ │ ├── ScreenCapture.cpp
│ │ ├── ThreadManager.cpp
│ │ ├── ios
│ │ ├── CGFrameProcessor.cpp
│ │ ├── GetMonitors.cpp
│ │ ├── GetWindows.cpp
│ │ ├── NSMouseCapture.m
│ │ ├── NSMouseProcessor.cpp
│ │ └── ThreadRunner.cpp
│ │ ├── linux
│ │ ├── GetMonitors.cpp
│ │ ├── GetWindows.cpp
│ │ ├── ThreadRunner.cpp
│ │ ├── X11FrameProcessor.cpp
│ │ └── X11MouseProcessor.cpp
│ │ └── windows
│ │ ├── DXFrameProcessor.cpp
│ │ ├── GDIFrameProcessor.cpp
│ │ ├── GDIMouseProcessor.cpp
│ │ ├── GDIWindowProcessor.cpp
│ │ ├── GetMonitors.cpp
│ │ ├── GetWindows.cpp
│ │ └── ThreadRunner.cpp
├── screen_capture_lite
│ └── include
│ │ └── ScreenCapture.h
└── x360ce.exe
└── _config.yml
/.github/ISSUE_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | Please, set a title for the issue that starts with "BUG" or "FEATURE REQUEST" accordingly. Use [the Pinbox Discord Server](https://discord.gg/9Qae7fT) for supporting issues.
2 |
3 |
4 |
5 | ## Expected Behavior
6 |
7 |
8 | ## Current Behavior
9 |
10 |
11 | ## Possible Solution
12 |
13 |
14 | ## Steps to Reproduce
15 |
16 |
17 | 1.
18 | 2.
19 | 3.
20 | 4.
21 |
22 | ## Context (Environment)
23 |
24 |
25 |
26 |
27 |
28 | ## Detailed Description
29 |
30 |
31 | ## Possible Implementation
32 |
33 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | Please, set a title for the pull request that starts with "BUG" or "FEATURE REQUEST" accordingly.
2 |
3 |
4 |
5 | ## Description
6 |
7 |
8 | ## Related Issue
9 |
10 |
11 |
12 |
13 |
14 | ## Motivation and Context
15 |
16 |
17 |
18 | ## How Has This Been Tested?
19 |
20 |
21 |
22 |
23 | ## Screenshots (if appropriate):
24 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | GLWT(Good Luck With That) Public License
2 | Copyright (c) Everyone, except Author
3 |
4 | Everyone is permitted to copy, distribute, modify, merge, sell, publish,
5 | sublicense or whatever they want with this software but at their OWN RISK.
6 |
7 | Preamble
8 |
9 | The author has absolutely no clue what the code in this project does.
10 | It might just work or not, there is no third option.
11 |
12 |
13 | GOOD LUCK WITH THAT PUBLIC LICENSE
14 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION, AND MODIFICATION
15 |
16 | 0. You just DO WHATEVER YOU WANT TO as long as you NEVER LEAVE A
17 | TRACE TO TRACK THE AUTHOR of the original product to blame for or hold
18 | responsible.
19 |
20 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23 | DEALINGS IN THE SOFTWARE.
24 |
25 | Good luck and Godspeed.
26 |
--------------------------------------------------------------------------------
/PinBox/PinBox.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 14
4 | VisualStudioVersion = 14.0.25420.1
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PinBox", "PinBox\PinBox.vcxproj", "{7C85BF63-9A1F-43F0-9560-6E51BA537C01}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Citra|x64 = Citra|x64
11 | Citra|x86 = Citra|x86
12 | Citra-QT|x64 = Citra-QT|x64
13 | Citra-QT|x86 = Citra-QT|x86
14 | Netlink|x64 = Netlink|x64
15 | Netlink|x86 = Netlink|x86
16 | EndGlobalSection
17 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
18 | {7C85BF63-9A1F-43F0-9560-6E51BA537C01}.Citra|x64.ActiveCfg = Citra|x64
19 | {7C85BF63-9A1F-43F0-9560-6E51BA537C01}.Citra|x64.Build.0 = Citra|x64
20 | {7C85BF63-9A1F-43F0-9560-6E51BA537C01}.Citra|x86.ActiveCfg = Citra|Win32
21 | {7C85BF63-9A1F-43F0-9560-6E51BA537C01}.Citra|x86.Build.0 = Citra|Win32
22 | {7C85BF63-9A1F-43F0-9560-6E51BA537C01}.Citra-QT|x64.ActiveCfg = Citra-QT|x64
23 | {7C85BF63-9A1F-43F0-9560-6E51BA537C01}.Citra-QT|x64.Build.0 = Citra-QT|x64
24 | {7C85BF63-9A1F-43F0-9560-6E51BA537C01}.Citra-QT|x86.ActiveCfg = Citra-QT|Win32
25 | {7C85BF63-9A1F-43F0-9560-6E51BA537C01}.Citra-QT|x86.Build.0 = Citra-QT|Win32
26 | {7C85BF63-9A1F-43F0-9560-6E51BA537C01}.Netlink|x64.ActiveCfg = Netlink|x64
27 | {7C85BF63-9A1F-43F0-9560-6E51BA537C01}.Netlink|x64.Build.0 = Netlink|x64
28 | {7C85BF63-9A1F-43F0-9560-6E51BA537C01}.Netlink|x86.ActiveCfg = Netlink|Win32
29 | {7C85BF63-9A1F-43F0-9560-6E51BA537C01}.Netlink|x86.Build.0 = Netlink|Win32
30 | EndGlobalSection
31 | GlobalSection(SolutionProperties) = preSolution
32 | HideSolutionNode = FALSE
33 | EndGlobalSection
34 | EndGlobal
35 |
--------------------------------------------------------------------------------
/PinBox/PinBox/PinBox.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | WindowsLocalDebugger
5 |
6 |
7 |
8 |
9 | WindowsLocalDebugger
10 |
11 |
12 |
--------------------------------------------------------------------------------
/PinBox/PinBox/assets/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/assets/banner.png
--------------------------------------------------------------------------------
/PinBox/PinBox/assets/banner.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/assets/banner.wav
--------------------------------------------------------------------------------
/PinBox/PinBox/assets/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/assets/icon.png
--------------------------------------------------------------------------------
/PinBox/PinBox/build-cia.bat:
--------------------------------------------------------------------------------
1 | start make clean & make all & make PinBox-strip.elf & make cia
--------------------------------------------------------------------------------
/PinBox/PinBox/create-smdh.bat:
--------------------------------------------------------------------------------
1 | start smdhtool --create "PinBox" "3DS Client - PC Desktop Streaming" "Namkazt" "E:\3ds\PinBoxStreaming\PinBox\PinBox\assets\icon.png" Pinbox.smdh
--------------------------------------------------------------------------------
/PinBox/PinBox/include/Anim.h:
--------------------------------------------------------------------------------
1 | #ifndef _PP_ANIM_H_
2 | #define _PP_ANIM_H_
3 |
4 | #include
5 | #include <3ds/services/am.h>
6 | #include <3ds/ndsp/ndsp.h>
7 | #include
8 |
9 | #define TIME_MILISECOND 1Ull
10 | #define TIME_SECOND 1000Ull
11 | #define TIME_MINUTE 3600000Ull
12 | #define TIME_HOUR 216000000Ull
13 |
14 | class Anim {
15 | struct AnimInfo
16 | {
17 | u32 idx;
18 | u64 startTime;
19 | u64 duration;
20 | float from;
21 | float to;
22 | easing_functions func;
23 | };
24 | };
25 |
26 |
27 | #endif
--------------------------------------------------------------------------------
/PinBox/PinBox/include/ConfigManager.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #ifndef _CONFIG_MANAGER_H_
3 | #define _CONFIG_MANAGER_H_
4 |
5 | #include <3ds.h>
6 | #include "libconfig.h"
7 | #include
8 | #include
9 |
10 | #define FORCE_OVERRIDE_VERSION 2
11 |
12 | typedef struct ServerConfig {
13 | std::string ip;
14 | std::string port;
15 | std::string name;
16 | };
17 |
18 | class ConfigManager
19 | {
20 | private:
21 | config_t _config;
22 | bool shouldCreateNewConfigFile();
23 | void createNewConfigFile();
24 | void loadConfigFile();
25 |
26 | public:
27 |
28 | ServerConfig* activateServer;
29 |
30 | std::vector servers;
31 | int lastUsingServer = -1;
32 |
33 | int videoBitRate;
34 | int videoGOP;
35 | int videoMaxBFrames;
36 |
37 | int audioBitRate;
38 |
39 | bool waitForSync;
40 | public:
41 | static ConfigManager* Get();
42 | ConfigManager();
43 |
44 | void InitConfig();
45 | void Save();
46 | void Destroy();
47 | };
48 |
49 |
50 | #endif
--------------------------------------------------------------------------------
/PinBox/PinBox/include/HubItem.h:
--------------------------------------------------------------------------------
1 | #ifndef _PP_HUB_TITEM_H_
2 | #define _PP_HUB_TITEM_H_
3 | #include <3ds.h>
4 |
5 | enum HubItemType
6 | {
7 | HUB_SCREEN = 0x0,
8 | HUB_APP,
9 | HUB_MOVIE,
10 | };
11 |
12 | class HubItem
13 | {
14 | public:
15 | std::string uuid;
16 |
17 | // app name
18 | std::string name;
19 |
20 | // thumb image should be 64x64 png image
21 | u8* thumbBuf;
22 | u32 thumbSize;
23 |
24 | HubItemType type;
25 | };
26 |
27 | #endif
--------------------------------------------------------------------------------
/PinBox/PinBox/include/Logger.h:
--------------------------------------------------------------------------------
1 | #ifndef _PP_LOGGER_H_
2 | #define _PP_LOGGER_H_
3 | #include
4 |
5 |
6 | class Logger
7 | {
8 | public:
9 | };
10 |
11 | #endif
--------------------------------------------------------------------------------
/PinBox/PinBox/include/Mutex.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include <3ds.h>
3 | #include <3ds/svc.h>
4 |
5 | class Mutex
6 | {
7 | private:
8 | LightLock _handler;
9 | bool _isLocked = false;
10 |
11 | public:
12 | Mutex();
13 | ~Mutex();
14 |
15 | void Lock();
16 | void TryLock();
17 | void Unlock();
18 | };
19 |
20 |
--------------------------------------------------------------------------------
/PinBox/PinBox/include/PPAudio.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #ifndef _PP_AUDIO_H_
3 | #define _PP_AUDIO_H_
4 |
5 | #include <3ds.h>
6 | #include
7 | #include "Mutex.h"
8 |
9 | #define MAX_AUDIO_BUF 2
10 |
11 |
12 | class PPAudio
13 | {
14 | private:
15 | bool _initialized = false;
16 | ndspWaveBuf _waveBuf[MAX_AUDIO_BUF];
17 | int _nextBuf = 0;
18 |
19 | public:
20 | ~PPAudio();
21 | static PPAudio* Get();
22 |
23 | void AudioInit();
24 | void AudioExit();
25 |
26 |
27 | void FillBuffer(u8* buffer, u32 size);
28 |
29 |
30 | };
31 |
32 | #endif
--------------------------------------------------------------------------------
/PinBox/PinBox/include/PPDecoder.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include <3ds.h>
3 | #include "Mutex.h"
4 | #include "yuv_rgb.h"
5 | #include <3ds/services/y2r.h>
6 | //ffmpeg
7 | extern "C" {
8 | #include
9 | #include
10 | #include
11 | #include
12 | #include
13 | #include
14 | #include
15 | #include
16 | #include
17 | }
18 |
19 | #define MEMORY_BUFFER_SIZE 0x1400000
20 | #define MEMORY_BUFFER_PADDING 0x04
21 |
22 | typedef struct MemoryBuffer {
23 | u8* pBufferAddr;
24 | u32 iCursor;
25 | u32 iSize;
26 | u32 iMaxSize;
27 | Mutex* pMutex;
28 |
29 | void write(u8* buf, u32 size)
30 | {
31 | if (iSize < size) return;
32 | pMutex->Lock();
33 | memcpy(pBufferAddr + iCursor, buf, size);
34 | iCursor += size;
35 | iSize -= size;
36 | pMutex->Unlock();
37 | }
38 |
39 | int read(u8* buf, u32 size)
40 | {
41 | if (iCursor == 0) return -1;
42 | pMutex->Lock();
43 | int ret = FFMIN(iCursor, size);
44 | memcpy(buf, pBufferAddr, ret);
45 | iSize += ret;
46 | iCursor -= ret;
47 | pMutex->Unlock();
48 | return ret;
49 | }
50 | }MemoryBuffer;
51 |
52 | typedef struct DecodeState{
53 | Y2RU_ConversionParams y2rParams;
54 | Handle endEvent;
55 | }DecodeState;
56 |
57 | class PPDecoder
58 | {
59 | private:
60 |
61 | // video stream
62 | //AVCodecParserContext* pVideoParser;
63 | AVCodecContext* pVideoContext;
64 | AVPacket* pVideoPacket;
65 | AVFrame* pVideoFrame;
66 | DecodeState* pDecodeState;
67 | u8* decodeVideoStream();
68 | void initY2RImageConverter();
69 | void convertColor();
70 |
71 | // audio stream
72 | AVCodecContext* pAudioContext;
73 | AVPacket* pAudioPacket;
74 | AVFrame* pAudioFrame;
75 |
76 | public:
77 | PPDecoder();
78 | ~PPDecoder();
79 |
80 | u32 iFrameWidth;
81 | u32 iFrameHeight;
82 |
83 | void initDecoder();
84 | void releaseDecoder();
85 |
86 | u8* appendVideoBuffer(u8* buffer, u32 size);
87 | void decodeAudioStream(u8* buffer, u32 size);
88 | };
--------------------------------------------------------------------------------
/PinBox/PinBox/include/PPMessage.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #ifndef _PP_MESSAGE_H_
3 | #define _PP_MESSAGE_H_
4 |
5 | #include <3ds.h>
6 | #include
7 | #include
8 | #include
9 | #include
10 |
11 | #define WRITE_CHAR_PTR(BUFFER, DATA, SIZE) memcpy(BUFFER, DATA, SIZE); BUFFER += SIZE;
12 | #define WRITE_U8(BUFFER, DATA) *(BUFFER++) = DATA & 0xff;
13 | #define WRITE_U16(BUFFER, DATA) *(BUFFER++) = DATA & 0xff; *(BUFFER++) = (DATA >> 8) & 0xff;
14 | #define WRITE_U32(BUFFER, DATA) *(BUFFER++) = DATA; *(BUFFER++) = DATA >> 8; *(BUFFER++) = DATA >> 16; *(BUFFER++) = DATA >> 24;
15 | #define READ_U8(BUFFER, INDEX) BUFFER[INDEX];
16 | #define READ_U16(BUFFER, INDEX) BUFFER[INDEX] | BUFFER[INDEX + 1] << 8;
17 | #define READ_U32(BUFFER, INDEX) BUFFER[INDEX] | BUFFER[INDEX + 1] << 8 | BUFFER[INDEX + 2] << 16 | BUFFER[INDEX + 3] << 24;
18 | #define IS_INVALID_CODE(BUFFER, INDEX) BUFFER[INDEX] != 'P' || BUFFER[INDEX+1] != 'P' || BUFFER[INDEX+2] != 'B' || BUFFER[INDEX+3] != 'X'
19 |
20 | class PPMessage
21 | {
22 | private:
23 | //-----------------------------------------------
24 | // message header - 9 bytes
25 | // [4b] validate code : "PPBX"
26 | // [1b] message code : 0 to 255 - define message type
27 | // [4b] message content size
28 | //-----------------------------------------------
29 | const char g_validateCode[4] = { 'P','P','B','X' };
30 | u8 g_code = 0;
31 | u32 g_contentSize = 0;
32 |
33 | //-----------------------------------------------
34 | // message content
35 | //-----------------------------------------------
36 | u8* g_content = nullptr;
37 | public:
38 | ~PPMessage();
39 | u32 GetMessageSize() const { return g_contentSize + 9; }
40 | u8* GetMessageContent() { return g_content; }
41 | u32 GetContentSize() { return g_contentSize; }
42 | u8 GetMessageCode() { return g_code; }
43 | //-----------------------------------------------
44 | // NOTE: after using this message, returned data must be free whenever it sent.
45 | //-----------------------------------------------
46 | u8* BuildMessage(u8* contentBuffer, u32 contentSize);
47 | u8* BuildMessageEmpty();
48 | void BuildMessageHeader(u8 code);
49 |
50 | bool ParseHeader(u8* buffer);
51 | void ClearHeader();
52 | };
53 |
54 | #endif
--------------------------------------------------------------------------------
/PinBox/PinBox/include/constant.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #define SOC_ALIGN 0x1000
4 | #define SOC_BUFFERSIZE 0x100000
5 |
6 | #define CONSOLE_DEBUG 1
7 | #define USE_CITRA 1
--------------------------------------------------------------------------------
/PinBox/PinBox/include/easing.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | enum easing_functions
4 | {
5 | EaseInSine,
6 | EaseOutSine,
7 | EaseInOutSine,
8 | EaseInQuad,
9 | EaseOutQuad,
10 | EaseInOutQuad,
11 | EaseInCubic,
12 | EaseOutCubic,
13 | EaseInOutCubic,
14 | EaseInQuart,
15 | EaseOutQuart,
16 | EaseInOutQuart,
17 | EaseInQuint,
18 | EaseOutQuint,
19 | EaseInOutQuint,
20 | EaseInExpo,
21 | EaseOutExpo,
22 | EaseInOutExpo,
23 | EaseInCirc,
24 | EaseOutCirc,
25 | EaseInOutCirc,
26 | EaseInBack,
27 | EaseOutBack,
28 | EaseInOutBack,
29 | EaseInElastic,
30 | EaseOutElastic,
31 | EaseInOutElastic,
32 | EaseInBounce,
33 | EaseOutBounce,
34 | EaseInOutBounce
35 | };
36 |
37 | typedef double(*easingFunction)(double);
38 |
39 | easingFunction getEasingFunction( easing_functions function );
40 |
41 |
--------------------------------------------------------------------------------
/PinBox/PinBox/romfs/assets/default_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/romfs/assets/default_1.png
--------------------------------------------------------------------------------
/PinBox/PinBox/romfs/assets/default_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/romfs/assets/default_2.png
--------------------------------------------------------------------------------
/PinBox/PinBox/romfs/assets/default_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/romfs/assets/default_3.png
--------------------------------------------------------------------------------
/PinBox/PinBox/romfs/assets/default_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/romfs/assets/default_4.png
--------------------------------------------------------------------------------
/PinBox/PinBox/romfs/assets/monitor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/romfs/assets/monitor.png
--------------------------------------------------------------------------------
/PinBox/PinBox/source/Mutex.cpp:
--------------------------------------------------------------------------------
1 | #include "Mutex.h"
2 |
3 |
4 |
5 | Mutex::Mutex()
6 | {
7 | _isLocked = false;
8 | LightLock_Init(&_handler);
9 | }
10 |
11 |
12 | Mutex::~Mutex()
13 | {
14 | if(_isLocked) LightLock_Unlock(&_handler);
15 | }
16 |
17 | void Mutex::Lock()
18 | {
19 | LightLock_Lock(&_handler);
20 | }
21 |
22 | void Mutex::TryLock()
23 | {
24 | if(!LightLock_TryLock(&_handler)) _isLocked = true;
25 | }
26 |
27 | void Mutex::Unlock()
28 | {
29 | LightLock_Unlock(&_handler);
30 | _isLocked = false;
31 | }
32 |
--------------------------------------------------------------------------------
/PinBox/PinBox/source/PPMessage.cpp:
--------------------------------------------------------------------------------
1 | #include "PPMessage.h"
2 |
3 | PPMessage::~PPMessage()
4 | {
5 | if (g_content != nullptr)
6 | free(g_content);
7 | }
8 |
9 | u8* PPMessage::BuildMessage(u8* contentBuffer, u32 contentSize)
10 | {
11 | g_contentSize = contentSize;
12 | //-----------------------------------------------
13 | // alloc msg buffer block
14 | u8* msgBuffer = (u8*)malloc(sizeof(u8) * (contentSize + 9));
15 | //-----------------------------------------------
16 | // build header
17 | u8* pointer = msgBuffer;
18 | // 1, validate code
19 | WRITE_CHAR_PTR(pointer, g_validateCode, 4);
20 | // 2, message code
21 | WRITE_U8(pointer, g_code);
22 | // 3, content size
23 | WRITE_U32(pointer, g_contentSize);
24 | //-----------------------------------------------
25 | // build content data
26 | if (g_contentSize > 0) {
27 | memcpy(msgBuffer + 9, contentBuffer, contentSize);
28 | }
29 | //-----------------------------------------------
30 | return msgBuffer;
31 | }
32 |
33 |
34 | u8* PPMessage::BuildMessageEmpty()
35 | {
36 | return BuildMessage(nullptr, 0);
37 | }
38 |
39 | void PPMessage::BuildMessageHeader(u8 code)
40 | {
41 | g_code = code;
42 | }
43 |
44 |
45 | bool PPMessage::ParseHeader(u8* buffer)
46 | {
47 | if (IS_INVALID_CODE(buffer, 0))
48 | {
49 | printf("Parse header failed. Validate code is incorrect: %c%c%c%c \n", buffer[0], buffer[1], buffer[2], buffer[3]);
50 | return false;
51 | }
52 | //-----------------------------------------------------------
53 | size_t readIndex = 4;
54 | g_code = READ_U8(buffer, readIndex); readIndex += 1;
55 | g_contentSize = READ_U32(buffer, readIndex); readIndex += 4;
56 | return true;
57 | }
58 |
59 | void PPMessage::ClearHeader()
60 | {
61 | g_code = 0;
62 | g_contentSize = 0;
63 | }
64 |
--------------------------------------------------------------------------------
/PinBox/PinBox/source/vshader.v.pica:
--------------------------------------------------------------------------------
1 | ; Uniforms
2 | .fvec projection[4]
3 |
4 | ; Constants
5 | .constf RGBA8_TO_FLOAT4(0.00392156862, 0, 0, 0)
6 | .constf ONES(1.0, 1.0, 1.0, 1.0)
7 |
8 | ; Outputs
9 | .out outpos position
10 | .out outtc0 texcoord0
11 | .out outclr color
12 |
13 | ; Inputs (defined as aliases for convenience)
14 | .alias inpos v0
15 | .alias inarg v1
16 |
17 | .proc main
18 |
19 | ; outpos = projection * in.pos
20 | dp4 outpos.x, projection[0], inpos
21 | dp4 outpos.y, projection[1], inpos
22 | dp4 outpos.z, projection[2], inpos
23 | dp4 outpos.w, projection[3], inpos
24 |
25 | ; outtc0 = in.texcoord
26 | mov outtc0, inarg
27 |
28 | ; outclr = RGBA8_TO_FLOAT4(in.color)
29 | mul outclr, RGBA8_TO_FLOAT4.xxxx, inarg
30 |
31 | end
32 | .end
33 |
--------------------------------------------------------------------------------
/PinBox/PinBox/tools/bannertool32.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/tools/bannertool32.exe
--------------------------------------------------------------------------------
/PinBox/PinBox/tools/bannertool64.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/tools/bannertool64.exe
--------------------------------------------------------------------------------
/PinBox/PinBox/tools/citra/Qt5Core.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/tools/citra/Qt5Core.dll
--------------------------------------------------------------------------------
/PinBox/PinBox/tools/citra/Qt5Gui.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/tools/citra/Qt5Gui.dll
--------------------------------------------------------------------------------
/PinBox/PinBox/tools/citra/Qt5Multimedia.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/tools/citra/Qt5Multimedia.dll
--------------------------------------------------------------------------------
/PinBox/PinBox/tools/citra/Qt5Network.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/tools/citra/Qt5Network.dll
--------------------------------------------------------------------------------
/PinBox/PinBox/tools/citra/Qt5OpenGL.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/tools/citra/Qt5OpenGL.dll
--------------------------------------------------------------------------------
/PinBox/PinBox/tools/citra/Qt5Widgets.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/tools/citra/Qt5Widgets.dll
--------------------------------------------------------------------------------
/PinBox/PinBox/tools/citra/SDL2.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/tools/citra/SDL2.dll
--------------------------------------------------------------------------------
/PinBox/PinBox/tools/citra/citra-qt.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/tools/citra/citra-qt.exe
--------------------------------------------------------------------------------
/PinBox/PinBox/tools/citra/citra-room.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/tools/citra/citra-room.exe
--------------------------------------------------------------------------------
/PinBox/PinBox/tools/citra/citra.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/tools/citra/citra.exe
--------------------------------------------------------------------------------
/PinBox/PinBox/tools/citra/imageformats/qgif.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/tools/citra/imageformats/qgif.dll
--------------------------------------------------------------------------------
/PinBox/PinBox/tools/citra/imageformats/qicns.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/tools/citra/imageformats/qicns.dll
--------------------------------------------------------------------------------
/PinBox/PinBox/tools/citra/imageformats/qico.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/tools/citra/imageformats/qico.dll
--------------------------------------------------------------------------------
/PinBox/PinBox/tools/citra/imageformats/qjpeg.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/tools/citra/imageformats/qjpeg.dll
--------------------------------------------------------------------------------
/PinBox/PinBox/tools/citra/imageformats/qtga.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/tools/citra/imageformats/qtga.dll
--------------------------------------------------------------------------------
/PinBox/PinBox/tools/citra/imageformats/qtiff.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/tools/citra/imageformats/qtiff.dll
--------------------------------------------------------------------------------
/PinBox/PinBox/tools/citra/imageformats/qwbmp.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/tools/citra/imageformats/qwbmp.dll
--------------------------------------------------------------------------------
/PinBox/PinBox/tools/citra/imageformats/qwebp.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/tools/citra/imageformats/qwebp.dll
--------------------------------------------------------------------------------
/PinBox/PinBox/tools/citra/libgcc_s_seh-1.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/tools/citra/libgcc_s_seh-1.dll
--------------------------------------------------------------------------------
/PinBox/PinBox/tools/citra/libpng16-16.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/tools/citra/libpng16-16.dll
--------------------------------------------------------------------------------
/PinBox/PinBox/tools/citra/libsamplerate-0.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/tools/citra/libsamplerate-0.dll
--------------------------------------------------------------------------------
/PinBox/PinBox/tools/citra/libstdc++-6.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/tools/citra/libstdc++-6.dll
--------------------------------------------------------------------------------
/PinBox/PinBox/tools/citra/libwinpthread-1.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/tools/citra/libwinpthread-1.dll
--------------------------------------------------------------------------------
/PinBox/PinBox/tools/citra/mediaservice/dsengine.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/tools/citra/mediaservice/dsengine.dll
--------------------------------------------------------------------------------
/PinBox/PinBox/tools/citra/mediaservice/qtmedia_audioengine.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/tools/citra/mediaservice/qtmedia_audioengine.dll
--------------------------------------------------------------------------------
/PinBox/PinBox/tools/citra/mediaservice/wmfengine.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/tools/citra/mediaservice/wmfengine.dll
--------------------------------------------------------------------------------
/PinBox/PinBox/tools/citra/platforms/qwindows.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/tools/citra/platforms/qwindows.dll
--------------------------------------------------------------------------------
/PinBox/PinBox/tools/citra/styles/qwindowsvistastyle.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/tools/citra/styles/qwindowsvistastyle.dll
--------------------------------------------------------------------------------
/PinBox/PinBox/tools/citra/zlib1.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/tools/citra/zlib1.dll
--------------------------------------------------------------------------------
/PinBox/PinBox/tools/makerom32.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/tools/makerom32.exe
--------------------------------------------------------------------------------
/PinBox/PinBox/tools/makerom64.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBox/PinBox/tools/makerom64.exe
--------------------------------------------------------------------------------
/PinBoxServer/Check-Pinbox-Firewall-Rules.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | title = Pinbox Firewall Setup
3 | echo Checking PinBox Server executable...
4 | IF NOT EXIST %~dp0PinBoxServer.exe GOTO pinnotdetected
5 | echo PinBox Executable found!
6 | echo Elevating privilegies...
7 | if not "%1"=="am_admin" (powershell start -verb runas '%0' am_admin & exit /b)
8 |
9 | echo Admin detected.
10 | echo Adding rules...
11 | rem REMEMBER TO CHANGE THE PROGRAM NAME IF THE BINARY FILE NAME CHANGES
12 | netsh advfirewall firewall add rule name="PinboxOut" dir=out action=allow profile=any program= "%~dp0PinBoxServer.exe" enable=yes
13 | netsh advfirewall firewall add rule name="PinBoxIn" dir=in action=allow profile=any program= "%~dp0PinBoxServer.exe" enable=yes
14 | echo Done
15 | pause
16 | exit
17 |
18 | :pinnotdetected
19 | echo PinBoxServer.exe doesn't exists. Remember to run this script in THE SAME FOLDER AS THE EXECUTABLE.
20 | pause exit
--------------------------------------------------------------------------------
/PinBoxServer/PinBoxServer.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 14
4 | VisualStudioVersion = 14.0.25420.1
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PinBoxServer", "PinBoxServer\PinBoxServer.vcxproj", "{944CB352-A2A2-4B65-AB3B-18566D0ABFA2}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|x64 = Debug|x64
11 | Debug|x86 = Debug|x86
12 | Release|x64 = Release|x64
13 | Release|x86 = Release|x86
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {944CB352-A2A2-4B65-AB3B-18566D0ABFA2}.Debug|x64.ActiveCfg = Debug|x64
17 | {944CB352-A2A2-4B65-AB3B-18566D0ABFA2}.Debug|x64.Build.0 = Debug|x64
18 | {944CB352-A2A2-4B65-AB3B-18566D0ABFA2}.Debug|x86.ActiveCfg = Debug|Win32
19 | {944CB352-A2A2-4B65-AB3B-18566D0ABFA2}.Debug|x86.Build.0 = Debug|Win32
20 | {944CB352-A2A2-4B65-AB3B-18566D0ABFA2}.Release|x64.ActiveCfg = Release|x64
21 | {944CB352-A2A2-4B65-AB3B-18566D0ABFA2}.Release|x64.Build.0 = Release|x64
22 | {944CB352-A2A2-4B65-AB3B-18566D0ABFA2}.Release|x86.ActiveCfg = Release|Win32
23 | {944CB352-A2A2-4B65-AB3B-18566D0ABFA2}.Release|x86.Build.0 = Release|Win32
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | EndGlobal
29 |
--------------------------------------------------------------------------------
/PinBoxServer/PinBoxServer/AudioStreamSession.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #ifndef _AUDIO_STREAM_SESSION_H__
3 | #define _AUDIO_STREAM_SESSION_H__
4 |
5 | #include
6 | #include
7 | #include
8 | #include
9 | #include "PPMessage.h"
10 | #include
11 |
12 | class AudioStreamSession
13 | {
14 | private:
15 | IAudioClient *_pAudioClient;
16 | IMMDevice *_pMMDevice;
17 | HANDLE _stopEvent;
18 | std::thread _thread;
19 | bool _isPaused = false;
20 |
21 |
22 |
23 | std::mutex *_mutex;
24 |
25 |
26 |
27 | void useDefaultDevice();
28 |
29 |
30 | public:
31 |
32 | u32 audioBufferSize = 0;
33 | u8* audioBuffer = nullptr;
34 |
35 | int audioFrames = 0;
36 | u32 sampleRate = 0;
37 | public:
38 |
39 | // Start audio stream session ( init every thing relate )
40 | void StartAudioStream();
41 | void Pause();
42 | void Resume();
43 | // Stop audio stream session ( release every thing relate )
44 | void StopStreaming();
45 |
46 | // Read input amount of stored audio buffer if available
47 | void ReadFromBuffer(u8* outBuf, u32 readSize);
48 | // Reset storage buffer to zero ( in case of user want to avoid read old data to avoid laggy )
49 | void ResetStorageBuffer();
50 |
51 | void loopbackThread();
52 | };
53 |
54 | #endif
--------------------------------------------------------------------------------
/PinBoxServer/PinBoxServer/Check-Pinbox-Firewall-Rules.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | title = Pinbox Firewall Setup
3 | echo Checking PinBox Server executable...
4 | IF NOT EXIST %~dp0PinBoxServer.exe GOTO pinnotdetected
5 | echo PinBox Executable found!
6 | echo Elevating privilegies...
7 | if not "%1"=="am_admin" (powershell start -verb runas '%0' am_admin & exit /b)
8 |
9 | echo Admin detected.
10 | echo Adding rules...
11 | rem REMEMBER TO CHANGE THE PROGRAM NAME IF THE BINARY FILE NAME CHANGES
12 | netsh advfirewall firewall add rule name="PinboxOut" dir=out action=allow profile=any program= "%~dp0PinBoxServer.exe" enable=yes
13 | netsh advfirewall firewall add rule name="PinBoxIn" dir=in action=allow profile=any program= "%~dp0PinBoxServer.exe" enable=yes
14 | echo Done
15 | pause
16 | exit
17 |
18 | :pinnotdetected
19 | echo PinBoxServer.exe doesn't exists. Remember to run this script in THE SAME FOLDER AS THE EXECUTABLE.
20 | pause exit
--------------------------------------------------------------------------------
/PinBoxServer/PinBoxServer/HubItem.h:
--------------------------------------------------------------------------------
1 | #ifndef _PP_HUB_TITEM_H_
2 | #define _PP_HUB_TITEM_H_
3 | #include "PPMessage.h"
4 |
5 | enum HubItemType
6 | {
7 | HUB_SCREEN = 0x0,
8 | HUB_APP,
9 | HUB_MOVIE,
10 | };
11 |
12 | class HubItem
13 | {
14 | public:
15 | std::string uuid;
16 |
17 | // app name
18 | std::string name;
19 |
20 | // thumb image should be 64x64 png image
21 | u8* thumbBuf;
22 | u32 thumbSize;
23 |
24 | HubItemType type;
25 |
26 |
27 | // data
28 | std::string thumbImage;
29 | std::string exePath;
30 | std::string processName;
31 | };
32 |
33 | #endif
--------------------------------------------------------------------------------
/PinBoxServer/PinBoxServer/PPMessage.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 | #include "PPMessage.h"
3 |
4 |
5 | PPMessage::~PPMessage()
6 | {
7 | if (g_content != nullptr)
8 | free(g_content);
9 | }
10 |
11 | u8* PPMessage::BuildMessage(u8* contentBuffer, u32 contentSize)
12 | {
13 |
14 | g_contentSize = contentSize;
15 | //-----------------------------------------------
16 | // alloc msg buffer block
17 | u8* msgBuffer = (u8*)malloc(sizeof(u8) * (contentSize + 9));
18 | //-----------------------------------------------
19 | // build header
20 | u8* pointer = msgBuffer;
21 | // 1, validate code
22 | WRITE_CHAR_PTR(pointer, g_validateCode, 4);
23 | // 2, message code
24 | WRITE_U8(pointer, g_code);
25 | // 3, content size
26 | WRITE_U32(pointer, g_contentSize);
27 |
28 | //TODO: corrupted when save g_contentSize ??
29 | //-----------------------------------------------
30 | // build content data
31 | if (g_contentSize > 0) {
32 | memcpy(msgBuffer+9, contentBuffer, contentSize);
33 | }
34 | //-----------------------------------------------
35 | return msgBuffer;
36 | }
37 |
38 | u8* PPMessage::BuildMessageEmpty()
39 | {
40 | return BuildMessage(nullptr, 0);
41 | }
42 |
43 | void PPMessage::BuildMessageHeader(u8 code)
44 | {
45 | g_code = code;
46 | }
47 |
48 | bool PPMessage::ParseHeader(u8* buffer)
49 | {
50 |
51 | if (IS_INVALID_CODE(buffer, 0))
52 | {
53 | printf("Parse header failed. Validate code is incorrect \n");
54 | return false;
55 | }
56 | size_t readIndex = 4;
57 | g_code = READ_U8(buffer, readIndex); readIndex += 1;
58 | g_contentSize = READ_U32(buffer, readIndex); readIndex += 4;
59 | return true;
60 | }
61 |
62 | void PPMessage::ClearHeader()
63 | {
64 | g_code = 0;
65 | g_contentSize = 0;
66 | }
67 |
--------------------------------------------------------------------------------
/PinBoxServer/PinBoxServer/PPServer.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #ifndef _PP_SERVER_H__
4 | #define _PP_SERVER_H__
5 |
6 | // socket
7 | #include
8 | #include
9 | #include
10 | #include
11 |
12 | // evpp
13 | #include
14 | #include
15 | #include
16 | #include
17 |
18 | #include "PPClientSession.h"
19 | #include "ScreenCaptureSession.h"
20 | #include "InputStreamSession.h"
21 |
22 | class PPServer
23 | {
24 |
25 |
26 | public:
27 | static void PrintIPAddressList();
28 | public:
29 | ScreenCaptureSession* ScreenCapturer;
30 | InputStreamSession* InputStreamer;
31 |
32 | void InitServer();
33 | };
34 |
35 |
36 | #endif
--------------------------------------------------------------------------------
/PinBoxServer/PinBoxServer/PinBoxServer.cpp:
--------------------------------------------------------------------------------
1 | // PinBoxServer.cpp : Defines the entry point for the console application.
2 | //
3 |
4 | #include "stdafx.h"
5 | #include "PPServer.h"
6 |
7 | int main(int argc, char *argv[])
8 | {
9 | PPServer *server = new PPServer();
10 | server->InitServer();
11 |
12 | return 0;
13 | }
14 |
15 | #include "winmain-inl.h"
--------------------------------------------------------------------------------
/PinBoxServer/PinBoxServer/PinBoxServer.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/PinBoxServer/PinBoxServer/ServerConfig.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #ifndef _PP_SERVER_CONFIG_H__
3 | #define _PP_SERVER_CONFIG_H__
4 | #include
5 | #include
6 | #include "HubItem.h"
7 | #include
8 |
9 | class ServerConfig
10 | {
11 | public:
12 | ServerConfig();
13 | ~ServerConfig();
14 |
15 | static ServerConfig* Get();
16 |
17 | int MonitorIndex = 0;
18 | int CaptureFPS = 30;
19 | int NetworkThread = 2;
20 | int ServerPort = 1234;
21 | void LoadConfig();
22 |
23 | std::vector HubItems;
24 | void LoadHubItems();
25 | };
26 |
27 | #endif
--------------------------------------------------------------------------------
/PinBoxServer/PinBoxServer/UIMainWindow.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 | #include "UIMainWindow.h"
3 |
4 |
5 |
6 | UIMainWindow::UIMainWindow(QWidget* parent) : QMainWindow(parent), ui(new UIMainWindow)
7 | {
8 |
9 | }
10 |
11 | UIMainWindow::~UIMainWindow()
12 | {
13 | delete ui;
14 | }
15 |
--------------------------------------------------------------------------------
/PinBoxServer/PinBoxServer/UIMainWindow.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include
3 |
4 | class UIMainWindow : public QMainWindow
5 | {
6 | Q_OBJECT
7 | public:
8 | explicit UIMainWindow(QWidget *parent = 0);
9 | ~UIMainWindow();
10 | private:
11 | UIMainWindow *ui;
12 | };
13 |
14 |
--------------------------------------------------------------------------------
/PinBoxServer/PinBoxServer/const.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #define RESET "\033[0m"
3 | #define BLACK "\033[30m" /* Black */
4 | #define RED "\033[31m" /* Red */
5 | #define GREEN "\033[32m" /* Green */
6 | #define YELLOW "\033[33m" /* Yellow */
7 | #define BLUE "\033[34m" /* Blue */
8 | #define MAGENTA "\033[35m" /* Magenta */
9 | #define CYAN "\033[36m" /* Cyan */
10 | #define WHITE "\033[37m" /* White */
11 | #define BOLDBLACK "\033[1m\033[30m" /* Bold Black */
12 | #define BOLDRED "\033[1m\033[31m" /* Bold Red */
13 | #define BOLDGREEN "\033[1m\033[32m" /* Bold Green */
14 | #define BOLDYELLOW "\033[1m\033[33m" /* Bold Yellow */
15 | #define BOLDBLUE "\033[1m\033[34m" /* Bold Blue */
16 | #define BOLDMAGENTA "\033[1m\033[35m" /* Bold Magenta */
17 | #define BOLDCYAN "\033[1m\033[36m" /* Bold Cyan */
18 | #define BOLDWHITE "\033[1m\033[37m" /* Bold White */
--------------------------------------------------------------------------------
/PinBoxServer/PinBoxServer/hub.cfg:
--------------------------------------------------------------------------------
1 | //--------------------------------------------
2 | // PinBox hub
3 | //--------------------------------------------
4 | hub =
5 | (
6 | {
7 | name = "Cemu";
8 | uuid = "dd8501b5";
9 | thumbImage = "cemu.png";
10 | exePath = "F:\Games\Cemu\cemu_1.11.1\Cemu.exe";
11 | processName = "Cemu 1.12.2d";
12 | },
13 |
14 | {
15 | name = "Cup Head";
16 | uuid = "cadfdc5e";
17 | thumbImage = "cuphead.png";
18 | exePath = "F:\Games\Cuphead\Cuphead.exe";
19 | processName = "Cuphead";
20 | },
21 |
22 | {
23 | name = "Pit People";
24 | uuid = "58b09523";
25 | thumbImage = "pitpeople.png";
26 | exePath = "F:\Games\PitPeople\pitpeople.exe";
27 | processName = "Pit People";
28 | }
29 | );
30 |
--------------------------------------------------------------------------------
/PinBoxServer/PinBoxServer/input.cfg:
--------------------------------------------------------------------------------
1 | //--------------------------------------------
2 | // PinBox input config
3 | //--------------------------------------------
4 |
5 | //--------------------------------------------
6 | // mouse speed when use circle pad
7 | // form: mouse speed * pos percent ( 0 -> 100%) * direction
8 | //--------------------------------------------
9 | mouse_speed = 15
10 |
11 | //--------------------------------------------
12 | // deadzone of circle pad ( min: 0 max: 156 default: 15)
13 | // this value should be around 5 ~ 20 -> 15 is best
14 | //--------------------------------------------
15 | circle_pad_deadzone = 15
16 |
17 |
18 | //--------------------------------------------
19 | // input profiles
20 | //--------------------------------------------
21 | input_profiles =
22 | (
23 | {
24 | //------------------------------------
25 | // [ REQUIRE PART ]
26 | //------------------------------------
27 |
28 | // max 255 char
29 | name = "Mouse Support";
30 |
31 | type = "keyboard";
32 |
33 | btn_A = "L";
34 | btn_B = "K";
35 | btn_X = "I";
36 | btn_Y = "J";
37 |
38 | btn_DPAD_UP = "W";
39 | btn_DPAD_DOWN = "S";
40 | btn_DPAD_LEFT = "A";
41 | btn_DPAD_RIGHT = "D";
42 |
43 | btn_START = "Z";
44 | btn_SELECT = "X";
45 |
46 | btn_L = "U";
47 | btn_R = "O";
48 |
49 | //------------------------------------
50 | // [ OPTIONAL PART ]
51 | //------------------------------------
52 |
53 | // use circle pad as mouse
54 | circle_pad_as_mouse = true;
55 |
56 | //new 3ds only
57 | zl_zr_as_mouse_button = true;
58 |
59 | // if not use as mouse then set it as button
60 | //btn_ZL = "Y";
61 | //btn_ZR = "P";
62 | },
63 |
64 | {
65 | //------------------------------------
66 | // [ REQUIRE PART ]
67 | //------------------------------------
68 |
69 | // max 255 char
70 | name = "Xbox 360";
71 |
72 | // simulate xbox 360 controller
73 | type = "x360";
74 |
75 | }
76 |
77 | );
--------------------------------------------------------------------------------
/PinBoxServer/PinBoxServer/server.cfg:
--------------------------------------------------------------------------------
1 | //--------------------------------------------
2 | // PinBox server config
3 | //--------------------------------------------
4 |
5 | //--------------------------------------------
6 | // index of monitor to capture
7 | // start from 0 to number of your monitor
8 | // eg: i have 3 monitor then index should be in range 0 .. 2
9 | //--------------------------------------------
10 | monitor_index = 1;
11 |
12 | //--------------------------------------------
13 | // FPS : should be set to 30 for now
14 | //--------------------------------------------
15 | capture_fps = 30;
16 |
17 | //--------------------------------------------
18 | // Network threads
19 | //--------------------------------------------
20 | network_threads = 2;
21 |
22 | //--------------------------------------------
23 | // Server port
24 | //--------------------------------------------
25 | server_port = 1234;
26 |
--------------------------------------------------------------------------------
/PinBoxServer/PinBoxServer/stdafx.cpp:
--------------------------------------------------------------------------------
1 | // stdafx.cpp : source file that includes just the standard includes
2 | // PinBoxServer.pch will be the pre-compiled header
3 | // stdafx.obj will contain the pre-compiled type information
4 |
5 | #include "stdafx.h"
6 |
7 | // TODO: reference any additional headers you need in STDAFX.H
8 | // and not in this file
9 |
--------------------------------------------------------------------------------
/PinBoxServer/PinBoxServer/stdafx.h:
--------------------------------------------------------------------------------
1 | // stdafx.h : include file for standard system include files,
2 | // or project specific include files that are used frequently, but
3 | // are changed infrequently
4 | //
5 |
6 | #pragma once
7 |
8 | #include "targetver.h"
9 |
10 | #include
11 | #include
12 |
13 |
14 |
15 | // TODO: reference additional headers your program requires here
16 |
--------------------------------------------------------------------------------
/PinBoxServer/PinBoxServer/targetver.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | // Including SDKDDKVer.h defines the highest available Windows platform.
4 |
5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.
7 |
8 | #include
9 |
--------------------------------------------------------------------------------
/PinBoxServer/PinBoxServer/tmp/cemu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBoxServer/PinBoxServer/tmp/cemu.png
--------------------------------------------------------------------------------
/PinBoxServer/PinBoxServer/tmp/cuphead.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBoxServer/PinBoxServer/tmp/cuphead.png
--------------------------------------------------------------------------------
/PinBoxServer/PinBoxServer/tmp/default_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBoxServer/PinBoxServer/tmp/default_1.png
--------------------------------------------------------------------------------
/PinBoxServer/PinBoxServer/tmp/default_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBoxServer/PinBoxServer/tmp/default_2.png
--------------------------------------------------------------------------------
/PinBoxServer/PinBoxServer/tmp/default_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBoxServer/PinBoxServer/tmp/default_3.png
--------------------------------------------------------------------------------
/PinBoxServer/PinBoxServer/tmp/default_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBoxServer/PinBoxServer/tmp/default_4.png
--------------------------------------------------------------------------------
/PinBoxServer/PinBoxServer/tmp/pitpeople.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/PinBoxServer/PinBoxServer/tmp/pitpeople.png
--------------------------------------------------------------------------------
/PinBoxServer/PinBoxServer/winmain-inl.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | namespace {
4 | struct OnApp {
5 | OnApp() {
6 | #ifdef WIN32
7 | // Initialize Winsock 2.2
8 | WSADATA wsaData;
9 | int err = WSAStartup(MAKEWORD(2, 2), &wsaData);
10 |
11 | if (err) {
12 | std::cout << "WSAStartup() failed with error: %d" << err;
13 | }
14 | #endif
15 | }
16 | ~OnApp() {
17 | #ifdef WIN32
18 | system("pause");
19 | WSACleanup();
20 | #endif
21 | }
22 | } __s_onexit_pause;
23 | }
24 |
--------------------------------------------------------------------------------
/PinBoxTestProject/PinBoxTestProject.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 14
4 | VisualStudioVersion = 14.0.25420.1
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PinBoxTestProject", "PinBoxTestProject\PinBoxTestProject.vcxproj", "{901BAB37-7D47-4095-9D2A-F203382FDA88}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|x64 = Debug|x64
11 | Debug|x86 = Debug|x86
12 | Release|x64 = Release|x64
13 | Release|x86 = Release|x86
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {901BAB37-7D47-4095-9D2A-F203382FDA88}.Debug|x64.ActiveCfg = Debug|x64
17 | {901BAB37-7D47-4095-9D2A-F203382FDA88}.Debug|x64.Build.0 = Debug|x64
18 | {901BAB37-7D47-4095-9D2A-F203382FDA88}.Debug|x86.ActiveCfg = Debug|Win32
19 | {901BAB37-7D47-4095-9D2A-F203382FDA88}.Debug|x86.Build.0 = Debug|Win32
20 | {901BAB37-7D47-4095-9D2A-F203382FDA88}.Release|x64.ActiveCfg = Release|x64
21 | {901BAB37-7D47-4095-9D2A-F203382FDA88}.Release|x64.Build.0 = Release|x64
22 | {901BAB37-7D47-4095-9D2A-F203382FDA88}.Release|x86.ActiveCfg = Release|Win32
23 | {901BAB37-7D47-4095-9D2A-F203382FDA88}.Release|x86.Build.0 = Release|Win32
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | EndGlobal
29 |
--------------------------------------------------------------------------------
/PinBoxTestProject/PinBoxTestProject/PPMessage.cpp:
--------------------------------------------------------------------------------
1 | #include "PPMessage.h"
2 |
3 |
4 | PPMessage::~PPMessage()
5 | {
6 | if (g_content != nullptr)
7 | free(g_content);
8 | }
9 |
10 | u8* PPMessage::BuildMessage(u8* contentBuffer, u32 contentSize)
11 | {
12 |
13 | g_contentSize = contentSize;
14 | //-----------------------------------------------
15 | // alloc msg buffer block
16 | u8* msgBuffer = (u8*)malloc(sizeof(u8) * (contentSize + 9));
17 | //-----------------------------------------------
18 | // build header
19 | u8* pointer = msgBuffer;
20 | // 1, validate code
21 | WRITE_CHAR_PTR(pointer, g_validateCode, 4);
22 | // 2, message code
23 | WRITE_U8(pointer, g_code);
24 | // 3, content size
25 | WRITE_U32(pointer, g_contentSize);
26 |
27 | //-----------------------------------------------
28 | // build content data
29 | if (g_contentSize > 0) {
30 | memcpy(msgBuffer + 9, contentBuffer, contentSize);
31 | }
32 | //-----------------------------------------------
33 | return msgBuffer;
34 | }
35 |
36 | u8* PPMessage::BuildMessageEmpty()
37 | {
38 | return BuildMessage(nullptr, 0);
39 | }
40 |
41 | void PPMessage::BuildMessageHeader(u8 code)
42 | {
43 | g_code = code;
44 | }
45 |
46 | bool PPMessage::ParseHeader(u8* buffer)
47 | {
48 | char* validateCode = (char*)malloc(4);
49 | size_t readIndex = 0;
50 | memcpy(validateCode, buffer + readIndex, 4); readIndex += 4;
51 | if (!std::strcmp(validateCode, "PPBX"))
52 | {
53 | printf("Parse header failed. Validate code is incorrect : %s", validateCode);
54 | return false;
55 | }
56 | free(validateCode);
57 | validateCode = nullptr;
58 | //-----------------------------------------------------------
59 | g_code = READ_U8(buffer, readIndex); readIndex += 1;
60 | g_contentSize = READ_U32(buffer, readIndex); readIndex += 4;
61 | return true;
62 | }
63 |
--------------------------------------------------------------------------------
/PinBoxTestProject/PinBoxTestProject/PPMessage.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #ifndef _PP_MESSAGE_H_
3 | #define _PP_MESSAGE_H_
4 |
5 | #include
6 | #include
7 | #include
8 | #include
9 |
10 | typedef unsigned char u8;
11 | typedef unsigned short u16;
12 | typedef unsigned int u32;
13 |
14 | #define WRITE_CHAR_PTR(BUFFER, DATA, SIZE) memcpy(BUFFER, DATA, SIZE); BUFFER += SIZE;
15 | #define WRITE_U8(BUFFER, DATA) *(BUFFER++) = DATA;
16 | #define WRITE_U16(BUFFER, DATA) *(BUFFER++) = DATA; *(BUFFER++) = DATA >> 8;
17 | #define WRITE_U32(BUFFER, DATA) *(BUFFER++) = DATA; *(BUFFER++) = DATA >> 8; *(BUFFER++) = DATA >> 16; *(BUFFER++) = DATA >> 24;
18 | #define READ_U8(BUFFER, INDEX) BUFFER[INDEX];
19 | #define READ_U16(BUFFER, INDEX) BUFFER[INDEX] | BUFFER[INDEX + 1] << 8;
20 | #define READ_U32(BUFFER, INDEX) BUFFER[INDEX] | BUFFER[INDEX + 1] << 8 | BUFFER[INDEX + 2] << 16 | BUFFER[INDEX + 3] << 24;
21 | #define IS_INVALID_CODE(BUFFER, INDEX) BUFFER[INDEX] != 'P' || BUFFER[INDEX+1] != 'P' || BUFFER[INDEX+2] != 'B' || BUFFER[INDEX+3] != 'X'
22 |
23 | class PPMessage
24 | {
25 | private:
26 | //-----------------------------------------------
27 | // message header - 9 bytes
28 | // [4b] validate code : "PPBX"
29 | // [1b] message code : 0 to 255 - define message type
30 | // [4b] message content size
31 | //-----------------------------------------------
32 | const char g_validateCode[4] = { 'P','P','B','X' };
33 | u8 g_code = 0;
34 | u32 g_contentSize = 0;
35 |
36 | //-----------------------------------------------
37 | // message content
38 | //-----------------------------------------------
39 | u8* g_content = nullptr;
40 | public:
41 | ~PPMessage();
42 | u32 GetMessageSize() const { return g_contentSize + 9; }
43 | u8* GetMessageContent() { return g_content; }
44 | u32 GetContentSize() { return g_contentSize; }
45 | u8 GetMessageCode() { return g_code; }
46 | //-----------------------------------------------
47 | // NOTE: after using this message, returned data must be free whenever it sent.
48 | //-----------------------------------------------
49 | u8* BuildMessage(u8* contentBuffer, u32 contentSize);
50 | u8* BuildMessageEmpty();
51 | void BuildMessageHeader(u8 code);
52 |
53 | bool ParseHeader(u8* buffer);
54 | };
55 |
56 | #endif
--------------------------------------------------------------------------------
/PinBoxTestProject/PinBoxTestProject/PPSessionManager.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include
3 | #include "PPSession.h"
4 | #include
5 | #include "opusfile.h"
6 | #include "PPDecoder.h"
7 |
8 | #ifdef _WIN32
9 | //===========================================================
10 | // for test only
11 | // openCV
12 | #include
13 | #include
14 | #include
15 | #include
16 | //===========================================================
17 | #endif
18 |
19 | #define VideoBufferSize 0xA00000
20 |
21 | class PPSessionManager
22 | {
23 | private:
24 | PPDecoder* m_decoder;
25 | std::vector m_screenCaptureSessions;
26 | int m_commandSessionIndex = 0;
27 | u32 m_connectedSession = 0;
28 | void _startStreaming();
29 | std::map m_frameTracker;
30 | std::mutex m_frameTrackerMutex;
31 | u32 m_currentDisplayFrame = 0;
32 | public:
33 | PPSessionManager();
34 | ~PPSessionManager();
35 |
36 | u8* m_staticVideoBuffer = nullptr;
37 | u32 m_videoBufferCursor = 0;
38 | u32 m_videoBufferSize = 0;
39 |
40 |
41 | void InitScreenCapture(u32 numberOfSessions);
42 | void StartStreaming(const char* ip, const char* port);
43 | void StopStreaming();
44 | void Close();
45 |
46 | void AppendBuffer(u8* buffer, u32 size);
47 |
48 | void DecodeVideo();
49 | };
50 |
51 |
--------------------------------------------------------------------------------
/PinBoxTestProject/PinBoxTestProject/PinBoxTestProject.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
10 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
11 |
12 |
13 |
14 |
15 | Source Files
16 |
17 |
18 | Source Files
19 |
20 |
21 | Source Files
22 |
23 |
24 | Source Files
25 |
26 |
27 | Source Files
28 |
29 |
30 | Source Files
31 |
32 |
33 | Source Files
34 |
35 |
36 |
37 |
38 | Source Files
39 |
40 |
41 | Source Files
42 |
43 |
44 | Source Files
45 |
46 |
47 | Source Files
48 |
49 |
50 | Source Files
51 |
52 |
53 | Source Files
54 |
55 |
56 |
--------------------------------------------------------------------------------
/PinBoxTestProject/PinBoxTestProject/PinBoxTestProject.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/PinBoxTestProject/PinBoxTestProject/main.cpp:
--------------------------------------------------------------------------------
1 |
2 | #include
3 | #include "PPSessionManager.h"
4 | #define __STDC_CONSTANT_MACROS
5 |
6 | void updateSessionManager(void* arg)
7 | {
8 | PPSessionManager* sm = (PPSessionManager*)arg;
9 | if( sm != nullptr)
10 | {
11 | while(true)
12 | {
13 | sm->DecodeVideo();
14 | }
15 | }
16 | }
17 |
18 |
19 | int main()
20 | {
21 |
22 | #ifdef _WIN32
23 | WSADATA wsaData;
24 | WSAStartup(MAKEWORD(2, 2), &wsaData);
25 | #endif
26 |
27 | std::cout << "==============================================================\n";
28 | std::cout << "= Test application for PinBox. Simulation client side (3ds) =\n";
29 | std::cout << "==============================================================\n";
30 | PPSessionManager* sm = new PPSessionManager();
31 | sm->InitScreenCapture(1);
32 |
33 | std::thread g_thread = std::thread(updateSessionManager, sm);
34 | g_thread.detach();
35 |
36 | std::cout << "Press Q to exit.\nInput: ";
37 | char input;
38 | while(true)
39 | {
40 | std::cin >> input;
41 | if (input == 'q') break;
42 | if(input == 'a')
43 | {
44 | sm->StartStreaming("192.168.31.183", "1234");
45 | }
46 | if (input == 's')
47 | {
48 | sm->StopStreaming();
49 | }
50 | input = ' ';
51 | //-----------------------------------------
52 | }
53 | std::cout << "\nClosing session.\n";
54 | sm->Close();
55 | return 0;
56 | }
57 |
--------------------------------------------------------------------------------
/ThirdParty/FakeInput/LICENSE:
--------------------------------------------------------------------------------
1 | MIT license
2 | -----------
3 |
4 | Copyright (C) 2011 by Richard Jedlicka
5 |
6 | Permission is hereby granted, free of charge, to any person obtaining a copy
7 | of this software and associated documentation files (the "Software"), to deal
8 | in the Software without restriction, including without limitation the rights
9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | copies of the Software, and to permit persons to whom the Software is
11 | furnished to do so, subject to the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be included in
14 | all copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | THE SOFTWARE.
23 |
--------------------------------------------------------------------------------
/ThirdParty/FakeInput/bin/lib/Debug/fakeInput.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/FakeInput/bin/lib/Debug/fakeInput.lib
--------------------------------------------------------------------------------
/ThirdParty/FakeInput/bin/lib/Release/fakeInput.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/FakeInput/bin/lib/Release/fakeInput.lib
--------------------------------------------------------------------------------
/ThirdParty/FakeInput/src/actions/action.hpp:
--------------------------------------------------------------------------------
1 | /**
2 | * This file is part of the FakeInput library (https://github.com/uiii/FakeInput)
3 | *
4 | * Copyright (C) 2011 by Richard Jedlicka
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in
14 | * all copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | * THE SOFTWARE.
23 | */
24 |
25 | #ifndef FI_ACTION_HPP
26 | #define FI_ACTION_HPP
27 |
28 | namespace FakeInput
29 | {
30 | /** Abstract class representing arbitrary action which can be sent. */
31 | class Action
32 | {
33 | public:
34 | /** Creates new copy of this action.
35 | *
36 | * @returns
37 | * New copy of this action allocated on heap.
38 | */
39 | virtual Action* clone() const = 0;
40 |
41 | /** Performs the action. */
42 | virtual void send() const = 0;
43 | };
44 | }
45 |
46 | #endif
47 |
--------------------------------------------------------------------------------
/ThirdParty/FakeInput/src/actions/actions.hpp:
--------------------------------------------------------------------------------
1 | /**
2 | * This file is part of the FakeInput library (https://github.com/uiii/FakeInput)
3 | *
4 | * Copyright (C) 2011 by Richard Jedlicka
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in
14 | * all copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | * THE SOFTWARE.
23 | */
24 |
25 | #include "actionsequence.hpp"
26 | #include "commandaction.hpp"
27 | #include "keyaction.hpp"
28 | #include "mouseaction.hpp"
29 | #include "waitaction.hpp"
30 |
--------------------------------------------------------------------------------
/ThirdParty/FakeInput/src/actions/commandaction.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | * This file is part of the FakeInput library (https://github.com/uiii/FakeInput)
3 | *
4 | * Copyright (C) 2011 by Richard Jedlicka
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in
14 | * all copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | * THE SOFTWARE.
23 | */
24 |
25 | #include "commandaction.hpp"
26 |
27 | #include "system.hpp"
28 |
29 | namespace FakeInput
30 | {
31 | CommandRun::CommandRun(const std::string& cmd):
32 | cmd_(cmd)
33 | {
34 | }
35 |
36 | Action* CommandRun::clone() const
37 | {
38 | return new CommandRun(cmd_);
39 | }
40 |
41 | void CommandRun::send() const
42 | {
43 | System::run(cmd_);
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/ThirdParty/FakeInput/src/actions/commandaction.hpp:
--------------------------------------------------------------------------------
1 | /**
2 | * This file is part of the FakeInput library (https://github.com/uiii/FakeInput)
3 | *
4 | * Copyright (C) 2011 by Richard Jedlicka
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in
14 | * all copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | * THE SOFTWARE.
23 | */
24 |
25 | #ifndef FI_COMMANDACTION_HPP
26 | #define FI_COMMANDACTION_HPP
27 |
28 | #include
29 |
30 | #include "action.hpp"
31 |
32 | namespace FakeInput
33 | {
34 | /** Represents a command run action.
35 | *
36 | * Runs a specified command-line command.
37 | */
38 | class CommandRun : public Action
39 | {
40 | public:
41 | /** CommandRun action constructor.
42 | *
43 | * @param cmd
44 | * Command to run.
45 | */
46 | CommandRun(const std::string& cmd);
47 |
48 | /** Creates new copy of this action.
49 | *
50 | * @returns
51 | * New copy of this action allocated on heap.
52 | */
53 | Action* clone() const;
54 |
55 | /** Performs this action. */
56 | void send() const;
57 |
58 | private:
59 | /** Command to run. */
60 | std::string cmd_;
61 | };
62 | }
63 |
64 | #endif
65 |
--------------------------------------------------------------------------------
/ThirdParty/FakeInput/src/actions/keyaction.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | * This file is part of the FakeInput library (https://github.com/uiii/FakeInput)
3 | *
4 | * Copyright (C) 2011 by Richard Jedlicka
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in
14 | * all copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | * THE SOFTWARE.
23 | */
24 |
25 | #include "keyaction.hpp"
26 |
27 | #include "keyboard.hpp"
28 |
29 | namespace FakeInput
30 | {
31 | KeyAction::KeyAction(KeyActionCallback callback, Key key):
32 | callback_(callback),
33 | key_(key)
34 | {
35 | }
36 |
37 | Action* KeyAction::clone() const
38 | {
39 | return new KeyAction(callback_, key_);
40 | }
41 |
42 | void KeyAction::send() const
43 | {
44 | callback_(key_);
45 | }
46 |
47 | KeyboardPress::KeyboardPress(Key key):
48 | KeyAction(Keyboard::pressKey, key)
49 | {
50 | }
51 |
52 | KeyboardPress::KeyboardPress(KeyType keyType):
53 | KeyAction(Keyboard::pressKey, Key(keyType))
54 | {
55 | }
56 |
57 | KeyboardRelease::KeyboardRelease(Key key):
58 | KeyAction(Keyboard::releaseKey, key)
59 | {
60 | }
61 |
62 | KeyboardRelease::KeyboardRelease(KeyType keyType):
63 | KeyAction(Keyboard::releaseKey, Key(keyType))
64 | {
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/ThirdParty/FakeInput/src/actions/waitaction.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | * This file is part of the FakeInput library (https://github.com/uiii/FakeInput)
3 | *
4 | * Copyright (C) 2011 by Richard Jedlicka
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in
14 | * all copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | * THE SOFTWARE.
23 | */
24 |
25 | #include "waitaction.hpp"
26 |
27 | #include "system.hpp"
28 |
29 | namespace FakeInput
30 | {
31 | Wait::Wait(unsigned int milisec):
32 | milisec_(milisec)
33 | {
34 | }
35 |
36 | Action* Wait::clone() const
37 | {
38 | return new Wait(milisec_);
39 | }
40 |
41 | void Wait::send() const
42 | {
43 | System::wait(milisec_);
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/ThirdParty/FakeInput/src/actions/waitaction.hpp:
--------------------------------------------------------------------------------
1 | /**
2 | * This file is part of the FakeInput library (https://github.com/uiii/FakeInput)
3 | *
4 | * Copyright (C) 2011 by Richard Jedlicka
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in
14 | * all copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | * THE SOFTWARE.
23 | */
24 |
25 | #ifndef FI_WAITACTION_HPP
26 | #define FI_WAITACTION_HPP
27 |
28 | #include "action.hpp"
29 |
30 | namespace FakeInput
31 | {
32 | /** Represents a wait action.
33 | *
34 | * Waits specified amount of time in miliseconds.
35 | */
36 | class Wait : public Action
37 | {
38 | public:
39 | /** Wait action constructor.
40 | *
41 | * @param milisec
42 | * Amount of time to wait in miliseconds.
43 | */
44 | Wait(unsigned int milisec);
45 |
46 | /** Creates new copy of this action.
47 | *
48 | * @returns
49 | * New copy of this action allocated on heap.
50 | */
51 | Action* clone() const;
52 |
53 | /** Performs this action. */
54 | void send() const;
55 |
56 | private:
57 | unsigned int milisec_;
58 | };
59 | }
60 |
61 | #endif
62 |
--------------------------------------------------------------------------------
/ThirdParty/FakeInput/src/config.hpp:
--------------------------------------------------------------------------------
1 | /**
2 | * This file is part of the FakeInput library (https://github.com/uiii/FakeInput)
3 | *
4 | * Copyright (C) 2011 by Richard Jedlicka
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in
14 | * all copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | * THE SOFTWARE.
23 | */
24 |
25 | #ifndef WC_CONFIG_HPP
26 | #define WC_CONFIG_HPP
27 |
28 | /* #undef TEST_APP */
29 |
30 | #ifndef UNIX
31 | /* #undef UNIX */
32 | #endif
33 |
34 | #ifndef WIN32
35 | #define WIN32
36 | #endif
37 |
38 | #endif
39 |
--------------------------------------------------------------------------------
/ThirdParty/FakeInput/src/config.hpp.cmake:
--------------------------------------------------------------------------------
1 | /**
2 | * This file is part of the FakeInput library (https://github.com/uiii/FakeInput)
3 | *
4 | * Copyright (C) 2011 by Richard Jedlicka
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in
14 | * all copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | * THE SOFTWARE.
23 | */
24 |
25 | #ifndef WC_CONFIG_HPP
26 | #define WC_CONFIG_HPP
27 |
28 | #cmakedefine TEST_APP
29 |
30 | #ifndef UNIX
31 | #cmakedefine UNIX
32 | #endif
33 |
34 | #ifndef WIN32
35 | #cmakedefine WIN32
36 | #endif
37 |
38 | #endif
39 |
--------------------------------------------------------------------------------
/ThirdParty/FakeInput/src/display_unix.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | * This file is part of the FakeInput library (https://github.com/uiii/FakeInput)
3 | *
4 | * Copyright (C) 2011 by Richard Jedlicka
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in
14 | * all copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | * THE SOFTWARE.
23 | */
24 |
25 | #include "display_unix.hpp"
26 |
27 | namespace FakeInput
28 | {
29 | Display* display()
30 | {
31 | static Display* display = XOpenDisplay(0);
32 | return display;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/ThirdParty/FakeInput/src/display_unix.hpp:
--------------------------------------------------------------------------------
1 | /**
2 | * This file is part of the FakeInput library (https://github.com/uiii/FakeInput)
3 | *
4 | * Copyright (C) 2011 by Richard Jedlicka
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in
14 | * all copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | * THE SOFTWARE.
23 | */
24 |
25 | #ifndef FI_DISPLAY_UNIX_HPP
26 | #define FI_DISPLAY_UNIX_HPP
27 |
28 | #include "config.hpp"
29 |
30 | #include
31 |
32 | namespace FakeInput
33 | {
34 | /** Get connection to the X server
35 | *
36 | * @warning @image html tux.png
37 | * Unix-like platform only
38 | */
39 | Display* display();
40 | }
41 |
42 | #endif
43 |
--------------------------------------------------------------------------------
/ThirdParty/FakeInput/src/fakeinput.hpp:
--------------------------------------------------------------------------------
1 | /**
2 | * This file is part of the FakeInput library (https://github.com/uiii/FakeInput)
3 | *
4 | * Copyright (C) 2011 by Richard Jedlicka
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in
14 | * all copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | * THE SOFTWARE.
23 | */
24 |
25 | // include core
26 | #include "keyboard.hpp"
27 | #include "mouse.hpp"
28 | #include "system.hpp"
29 |
--------------------------------------------------------------------------------
/ThirdParty/FakeInput/src/key.hpp:
--------------------------------------------------------------------------------
1 | /**
2 | * This file is part of the FakeInput library (https://github.com/uiii/FakeInput)
3 | *
4 | * Copyright (C) 2011 by Richard Jedlicka
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in
14 | * all copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | * THE SOFTWARE.
23 | */
24 |
25 | #ifndef FI_KEY_HPP
26 | #define FI_KEY_HPP
27 |
28 | #include "config.hpp"
29 |
30 | #ifdef UNIX
31 | #include "key_unix.hpp"
32 | #elif WIN32
33 | #include "key_win.hpp"
34 | #endif
35 |
36 | namespace FakeInput
37 | {
38 | #ifdef UNIX
39 | /** Class representing a real key.
40 | *
41 | * @image html tux.png
42 | * On Unix-like platform derived from Key_unix
43 | */
44 | typedef Key_unix Key;
45 | #elif WIN32
46 | /**
47 | * @image html windows.png
48 | * On Windows derived from Key_win
49 | */
50 | typedef Key_win Key;
51 | #endif
52 | }
53 |
54 | #endif
55 |
--------------------------------------------------------------------------------
/ThirdParty/FakeInput/src/key_base.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | * This file is part of the FakeInput library (https://github.com/uiii/FakeInput)
3 | *
4 | * Copyright (C) 2011 by Richard Jedlicka
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in
14 | * all copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | * THE SOFTWARE.
23 | */
24 |
25 | #include "key_base.hpp"
26 |
27 | #include
28 | #include
29 |
30 | namespace FakeInput
31 | {
32 | Key_base::Key_base()
33 | {
34 | code_ = 0;
35 | name_ = "";
36 | }
37 |
38 | unsigned int Key_base::code() const
39 | {
40 | return code_;
41 | }
42 |
43 | const std::string& Key_base::name() const
44 | {
45 | return name_;
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/ThirdParty/FakeInput/src/key_base.hpp:
--------------------------------------------------------------------------------
1 | /**
2 | * This file is part of the FakeInput library (https://github.com/uiii/FakeInput)
3 | *
4 | * Copyright (C) 2011 by Richard Jedlicka
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in
14 | * all copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | * THE SOFTWARE.
23 | */
24 |
25 | #ifndef FI_KEY_BASE_HPP
26 | #define FI_KEY_BASE_HPP
27 |
28 | #include "config.hpp"
29 |
30 | #include
31 |
32 | namespace FakeInput
33 | {
34 | /** Represents real keyboard button.
35 | */
36 | class Key_base
37 | {
38 | public:
39 | /** Gives the hardware code of the key.
40 | *
41 | * @returns
42 | * Device dependend code of the key.
43 | */
44 | virtual unsigned int code() const;
45 |
46 | /** Gives the name of the key.
47 | *
48 | * @returns
49 | * The name of the key.
50 | */
51 | virtual const std::string& name() const;
52 |
53 | protected:
54 | /** Key_base constructor.
55 | *
56 | * Creates key representing no real key.
57 | */
58 | Key_base();
59 |
60 | unsigned int code_;
61 | std::string name_;
62 | };
63 | }
64 |
65 | #endif
66 |
--------------------------------------------------------------------------------
/ThirdParty/FakeInput/src/keyboard.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | * This file is part of the FakeInput library (https://github.com/uiii/FakeInput)
3 | *
4 | * Copyright (C) 2011 by Richard Jedlicka
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in
14 | * all copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | * THE SOFTWARE.
23 | */
24 |
25 | #include "keyboard.hpp"
26 |
27 | namespace FakeInput
28 | {
29 | void Keyboard::pressKey(Key key)
30 | {
31 | sendKeyEvent_(key, true);
32 | }
33 |
34 | void Keyboard::releaseKey(Key key)
35 | {
36 | sendKeyEvent_(key, false);
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/ThirdParty/FakeInput/src/keyboard_unix.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | * This file is part of the FakeInput library (https://github.com/uiii/FakeInput)
3 | *
4 | * Copyright (C) 2011 by Richard Jedlicka
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in
14 | * all copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | * THE SOFTWARE.
23 | */
24 |
25 | #include "keyboard.hpp"
26 |
27 | #include
28 | #include
29 |
30 | #include "display_unix.hpp"
31 |
32 | #include
33 |
34 | namespace FakeInput
35 | {
36 | void Keyboard::sendKeyEvent_(Key key, bool isPress)
37 | {
38 | if(key.keysym() == NoSymbol)
39 | {
40 | std::cerr << "Cannot send event" << std::endl;
41 | }
42 | else
43 | {
44 | XTestFakeKeyEvent(display(), key.code(), isPress, CurrentTime);
45 | XFlush(display());
46 | }
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/ThirdParty/FakeInput/src/keyboard_win.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | * This file is part of the FakeInput library (https://github.com/uiii/FakeInput)
3 | *
4 | * Copyright (C) 2011 by Richard Jedlicka
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in
14 | * all copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | * THE SOFTWARE.
23 | */
24 |
25 | #include "keyboard.hpp"
26 |
27 | #include
28 |
29 | #include
30 |
31 | namespace FakeInput
32 | {
33 | void Keyboard::sendKeyEvent_(Key key, bool isPress)
34 | {
35 | if(key.code() == 0)
36 | {
37 | std::cerr << "Cannot send event" << std::endl;
38 | }
39 | else
40 | {
41 | INPUT input;
42 | ZeroMemory(&input, sizeof(INPUT));
43 | input.type = INPUT_KEYBOARD;
44 | input.ki.wVk = key.virtualKey();
45 | input.ki.dwFlags = (isPress) ? 0 : KEYEVENTF_KEYUP;
46 | SendInput(1, &input, sizeof(INPUT));
47 | }
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/ThirdParty/FakeInput/src/mapper.hpp:
--------------------------------------------------------------------------------
1 | /**
2 | * This file is part of the FakeInput library (https://github.com/uiii/FakeInput)
3 | *
4 | * Copyright (C) 2011 by Richard Jedlicka
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in
14 | * all copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | * THE SOFTWARE.
23 | */
24 |
25 | #ifndef FI_MAPPER_HPP
26 | #define FI_MAPPER_HPP
27 |
28 | #include "mouse.hpp"
29 | #include "key.hpp"
30 |
31 | namespace FakeInput
32 | {
33 | /** Translates MouseButton to the platform's representation of the button. */
34 | long translateMouseButton(MouseButton button);
35 |
36 | /** Translates KeyType to the platform's representation of the key. */
37 | unsigned long translateKey(KeyType key);
38 | }
39 |
40 | #endif
41 |
--------------------------------------------------------------------------------
/ThirdParty/FakeInput/src/system.hpp:
--------------------------------------------------------------------------------
1 | /**
2 | * This file is part of the FakeInput library (https://github.com/uiii/FakeInput)
3 | *
4 | * Copyright (C) 2011 by Richard Jedlicka
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in
14 | * all copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | * THE SOFTWARE.
23 | */
24 |
25 | #ifndef FI_SYSTEM_HPP
26 | #define FI_SYSTEM_HPP
27 |
28 | #include "config.hpp"
29 |
30 | #include
31 |
32 | namespace FakeInput
33 | {
34 | /** Handler of some system operations.
35 | *
36 | * Allows you to run command-line commands
37 | * and wait for specified time
38 | */
39 | class System
40 | {
41 | public:
42 | /** Executes command-line command.
43 | *
44 | * @param cmd
45 | * %Command to run.
46 | */
47 | static void run(const std::string& cmd);
48 |
49 | /** Sleeps the current thread and wait for specified time.
50 | *
51 | * @param milisec
52 | * time to wait in miliseconds
53 | */
54 | static void wait(unsigned int milisec);
55 | };
56 | }
57 |
58 | #endif
59 |
--------------------------------------------------------------------------------
/ThirdParty/FakeInput/src/system_unix.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | * This file is part of the FakeInput library (https://github.com/uiii/FakeInput)
3 | *
4 | * Copyright (C) 2011 by Richard Jedlicka
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in
14 | * all copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | * THE SOFTWARE.
23 | */
24 |
25 | #include "system.hpp"
26 |
27 | #include
28 | #include
29 |
30 | namespace FakeInput
31 | {
32 | void System::run(const std::string& cmd)
33 | {
34 | std::string command = cmd + " &";
35 |
36 | system(command.c_str());
37 | }
38 |
39 | void System::wait(unsigned int milisec)
40 | {
41 | timespec tm;
42 | tm.tv_sec = milisec / 1000;
43 | tm.tv_nsec = (milisec % 1000) * 1000000;
44 |
45 | nanosleep(&tm, NULL);
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/ThirdParty/FakeInput/src/system_win.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | * This file is part of the FakeInput library (https://github.com/uiii/FakeInput)
3 | *
4 | * Copyright (C) 2011 by Richard Jedlicka
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in
14 | * all copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | * THE SOFTWARE.
23 | */
24 |
25 | #include "system.hpp"
26 |
27 | #include
28 | #include
29 |
30 | namespace FakeInput
31 | {
32 | void System::run(const std::string& cmd)
33 | {
34 | std::string command = "start " + cmd;
35 |
36 | system(command.c_str());
37 | }
38 |
39 | void System::wait(unsigned int milisec)
40 | {
41 | Sleep(milisec);
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/ThirdParty/ViGEm/Debug (dynamic)/ViGEmClient.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ViGEm/Debug (dynamic)/ViGEmClient.dll
--------------------------------------------------------------------------------
/ThirdParty/ViGEm/Debug (dynamic)/ViGEmClient.exp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ViGEm/Debug (dynamic)/ViGEmClient.exp
--------------------------------------------------------------------------------
/ThirdParty/ViGEm/Debug (dynamic)/ViGEmClient.ilk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ViGEm/Debug (dynamic)/ViGEmClient.ilk
--------------------------------------------------------------------------------
/ThirdParty/ViGEm/Debug (dynamic)/ViGEmClient.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ViGEm/Debug (dynamic)/ViGEmClient.lib
--------------------------------------------------------------------------------
/ThirdParty/ViGEm/Debug (dynamic)/ViGEmClient.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ViGEm/Debug (dynamic)/ViGEmClient.pdb
--------------------------------------------------------------------------------
/ThirdParty/ViGEm/Debug (static)/ViGEmClient.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ViGEm/Debug (static)/ViGEmClient.lib
--------------------------------------------------------------------------------
/ThirdParty/ViGEm/Include/ViGEmBusDriver.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ViGEm/Include/ViGEmBusDriver.h
--------------------------------------------------------------------------------
/ThirdParty/ViGEm/Include/ViGEmBusShared.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ViGEm/Include/ViGEmBusShared.h
--------------------------------------------------------------------------------
/ThirdParty/ViGEm/Include/ViGEmClient.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ViGEm/Include/ViGEmClient.h
--------------------------------------------------------------------------------
/ThirdParty/ViGEm/Include/ViGEmCommon.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ViGEm/Include/ViGEmCommon.h
--------------------------------------------------------------------------------
/ThirdParty/ViGEm/Include/XInputOverrides.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ViGEm/Include/XInputOverrides.h
--------------------------------------------------------------------------------
/ThirdParty/ViGEm/Include/XnaGuardianShared.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ViGEm/Include/XnaGuardianShared.h
--------------------------------------------------------------------------------
/ThirdParty/ViGEm/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2016 Benjamin Höglinger
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/ThirdParty/ViGEm/Release (dynamic)/ViGEmClient.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ViGEm/Release (dynamic)/ViGEmClient.dll
--------------------------------------------------------------------------------
/ThirdParty/ViGEm/Release (dynamic)/ViGEmClient.exp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ViGEm/Release (dynamic)/ViGEmClient.exp
--------------------------------------------------------------------------------
/ThirdParty/ViGEm/Release (dynamic)/ViGEmClient.iobj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ViGEm/Release (dynamic)/ViGEmClient.iobj
--------------------------------------------------------------------------------
/ThirdParty/ViGEm/Release (dynamic)/ViGEmClient.ipdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ViGEm/Release (dynamic)/ViGEmClient.ipdb
--------------------------------------------------------------------------------
/ThirdParty/ViGEm/Release (dynamic)/ViGEmClient.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ViGEm/Release (dynamic)/ViGEmClient.lib
--------------------------------------------------------------------------------
/ThirdParty/ViGEm/Release (dynamic)/ViGEmClient.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ViGEm/Release (dynamic)/ViGEmClient.pdb
--------------------------------------------------------------------------------
/ThirdParty/ViGEm/Release (static)/ViGEmClient.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ViGEm/Release (static)/ViGEmClient.lib
--------------------------------------------------------------------------------
/ThirdParty/ViGEm/ViGEmBus_signed_Win7-10_x86_x64_latest.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ViGEm/ViGEmBus_signed_Win7-10_x86_x64_latest.zip
--------------------------------------------------------------------------------
/ThirdParty/ViGEm/ViGEmBus_signed_Win7-10_x86_x64_latest/x64/ViGEmBus.inf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ViGEm/ViGEmBus_signed_Win7-10_x86_x64_latest/x64/ViGEmBus.inf
--------------------------------------------------------------------------------
/ThirdParty/ViGEm/ViGEmBus_signed_Win7-10_x86_x64_latest/x64/ViGEmBus.sys:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ViGEm/ViGEmBus_signed_Win7-10_x86_x64_latest/x64/ViGEmBus.sys
--------------------------------------------------------------------------------
/ThirdParty/ViGEm/ViGEmBus_signed_Win7-10_x86_x64_latest/x64/WdfCoinstaller01009.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ViGEm/ViGEmBus_signed_Win7-10_x86_x64_latest/x64/WdfCoinstaller01009.dll
--------------------------------------------------------------------------------
/ThirdParty/ViGEm/ViGEmBus_signed_Win7-10_x86_x64_latest/x64/vigembus.cat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ViGEm/ViGEmBus_signed_Win7-10_x86_x64_latest/x64/vigembus.cat
--------------------------------------------------------------------------------
/ThirdParty/ViGEm/ViGEmBus_signed_Win7-10_x86_x64_latest/x86/ViGEmBus.inf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ViGEm/ViGEmBus_signed_Win7-10_x86_x64_latest/x86/ViGEmBus.inf
--------------------------------------------------------------------------------
/ThirdParty/ViGEm/ViGEmBus_signed_Win7-10_x86_x64_latest/x86/ViGEmBus.sys:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ViGEm/ViGEmBus_signed_Win7-10_x86_x64_latest/x86/ViGEmBus.sys
--------------------------------------------------------------------------------
/ThirdParty/ViGEm/ViGEmBus_signed_Win7-10_x86_x64_latest/x86/WdfCoinstaller01009.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ViGEm/ViGEmBus_signed_Win7-10_x86_x64_latest/x86/WdfCoinstaller01009.dll
--------------------------------------------------------------------------------
/ThirdParty/ViGEm/ViGEmBus_signed_Win7-10_x86_x64_latest/x86/vigembus.cat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ViGEm/ViGEmBus_signed_Win7-10_x86_x64_latest/x86/vigembus.cat
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/examples/Makefile:
--------------------------------------------------------------------------------
1 | # use pkg-config for getting CFLAGS and LDLIBS
2 | FFMPEG_LIBS= libavdevice \
3 | libavformat \
4 | libavfilter \
5 | libavcodec \
6 | libswresample \
7 | libswscale \
8 | libavutil \
9 |
10 | CFLAGS += -Wall -g
11 | CFLAGS := $(shell pkg-config --cflags $(FFMPEG_LIBS)) $(CFLAGS)
12 | LDLIBS := $(shell pkg-config --libs $(FFMPEG_LIBS)) $(LDLIBS)
13 |
14 | EXAMPLES= avio_dir_cmd \
15 | avio_reading \
16 | decode_audio \
17 | decode_video \
18 | demuxing_decoding \
19 | encode_audio \
20 | encode_video \
21 | extract_mvs \
22 | filtering_video \
23 | filtering_audio \
24 | http_multiclient \
25 | hw_decode \
26 | metadata \
27 | muxing \
28 | remuxing \
29 | resampling_audio \
30 | scaling_video \
31 | transcode_aac \
32 | transcoding \
33 |
34 | OBJS=$(addsuffix .o,$(EXAMPLES))
35 |
36 | # the following examples make explicit use of the math library
37 | avcodec: LDLIBS += -lm
38 | encode_audio: LDLIBS += -lm
39 | muxing: LDLIBS += -lm
40 | resampling_audio: LDLIBS += -lm
41 |
42 | .phony: all clean-test clean
43 |
44 | all: $(OBJS) $(EXAMPLES)
45 |
46 | clean-test:
47 | $(RM) test*.pgm test.h264 test.mp2 test.sw test.mpg
48 |
49 | clean: clean-test
50 | $(RM) $(EXAMPLES) $(OBJS)
51 |
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/examples/README:
--------------------------------------------------------------------------------
1 | FFmpeg examples README
2 | ----------------------
3 |
4 | Both following use cases rely on pkg-config and make, thus make sure
5 | that you have them installed and working on your system.
6 |
7 |
8 | Method 1: build the installed examples in a generic read/write user directory
9 |
10 | Copy to a read/write user directory and just use "make", it will link
11 | to the libraries on your system, assuming the PKG_CONFIG_PATH is
12 | correctly configured.
13 |
14 | Method 2: build the examples in-tree
15 |
16 | Assuming you are in the source FFmpeg checkout directory, you need to build
17 | FFmpeg (no need to make install in any prefix). Then just run "make examples".
18 | This will build the examples using the FFmpeg build system. You can clean those
19 | examples using "make examplesclean"
20 |
21 | If you want to try the dedicated Makefile examples (to emulate the first
22 | method), go into doc/examples and run a command such as
23 | PKG_CONFIG_PATH=pc-uninstalled make.
24 |
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/examples/metadata.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2011 Reinhard Tartler
3 | *
4 | * Permission is hereby granted, free of charge, to any person obtaining a copy
5 | * of this software and associated documentation files (the "Software"), to deal
6 | * in the Software without restriction, including without limitation the rights
7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | * copies of the Software, and to permit persons to whom the Software is
9 | * furnished to do so, subject to the following conditions:
10 | *
11 | * The above copyright notice and this permission notice shall be included in
12 | * all copies or substantial portions of the Software.
13 | *
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17 | * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 | * THE SOFTWARE.
21 | */
22 |
23 | /**
24 | * @file
25 | * Shows how the metadata API can be used in application programs.
26 | * @example metadata.c
27 | */
28 |
29 | #include
30 |
31 | #include
32 | #include
33 |
34 | int main (int argc, char **argv)
35 | {
36 | AVFormatContext *fmt_ctx = NULL;
37 | AVDictionaryEntry *tag = NULL;
38 | int ret;
39 |
40 | if (argc != 2) {
41 | printf("usage: %s \n"
42 | "example program to demonstrate the use of the libavformat metadata API.\n"
43 | "\n", argv[0]);
44 | return 1;
45 | }
46 |
47 | if ((ret = avformat_open_input(&fmt_ctx, argv[1], NULL, NULL)))
48 | return ret;
49 |
50 | while ((tag = av_dict_get(fmt_ctx->metadata, "", tag, AV_DICT_IGNORE_SUFFIX)))
51 | printf("%s=%s\n", tag->key, tag->value);
52 |
53 | avformat_close_input(&fmt_ctx);
54 | return 0;
55 | }
56 |
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/include/libavcodec/ac3_parser.h:
--------------------------------------------------------------------------------
1 | /*
2 | * AC-3 parser prototypes
3 | * Copyright (c) 2003 Fabrice Bellard
4 | * Copyright (c) 2003 Michael Niedermayer
5 | *
6 | * This file is part of FFmpeg.
7 | *
8 | * FFmpeg is free software; you can redistribute it and/or
9 | * modify it under the terms of the GNU Lesser General Public
10 | * License as published by the Free Software Foundation; either
11 | * version 2.1 of the License, or (at your option) any later version.
12 | *
13 | * FFmpeg is distributed in the hope that it will be useful,
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 | * Lesser General Public License for more details.
17 | *
18 | * You should have received a copy of the GNU Lesser General Public
19 | * License along with FFmpeg; if not, write to the Free Software
20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21 | */
22 |
23 | #ifndef AVCODEC_AC3_PARSER_H
24 | #define AVCODEC_AC3_PARSER_H
25 |
26 | #include
27 | #include
28 |
29 | /**
30 | * Extract the bitstream ID and the frame size from AC-3 data.
31 | */
32 | int av_ac3_parse_header(const uint8_t *buf, size_t size,
33 | uint8_t *bitstream_id, uint16_t *frame_size);
34 |
35 |
36 | #endif /* AVCODEC_AC3_PARSER_H */
37 |
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/include/libavcodec/adts_parser.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of FFmpeg.
3 | *
4 | * FFmpeg is free software; you can redistribute it and/or
5 | * modify it under the terms of the GNU Lesser General Public
6 | * License as published by the Free Software Foundation; either
7 | * version 2.1 of the License, or (at your option) any later version.
8 | *
9 | * FFmpeg is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 | * Lesser General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU Lesser General Public
15 | * License along with FFmpeg; if not, write to the Free Software
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 | */
18 |
19 | #ifndef AVCODEC_ADTS_PARSER_H
20 | #define AVCODEC_ADTS_PARSER_H
21 |
22 | #include
23 | #include
24 |
25 | #define AV_AAC_ADTS_HEADER_SIZE 7
26 |
27 | /**
28 | * Extract the number of samples and frames from AAC data.
29 | * @param[in] buf pointer to AAC data buffer
30 | * @param[out] samples Pointer to where number of samples is written
31 | * @param[out] frames Pointer to where number of frames is written
32 | * @return Returns 0 on success, error code on failure.
33 | */
34 | int av_adts_header_parse(const uint8_t *buf, uint32_t *samples,
35 | uint8_t *frames);
36 |
37 | #endif /* AVCODEC_ADTS_PARSER_H */
38 |
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/include/libavcodec/jni.h:
--------------------------------------------------------------------------------
1 | /*
2 | * JNI public API functions
3 | *
4 | * Copyright (c) 2015-2016 Matthieu Bouron
5 | *
6 | * This file is part of FFmpeg.
7 | *
8 | * FFmpeg is free software; you can redistribute it and/or
9 | * modify it under the terms of the GNU Lesser General Public
10 | * License as published by the Free Software Foundation; either
11 | * version 2.1 of the License, or (at your option) any later version.
12 | *
13 | * FFmpeg is distributed in the hope that it will be useful,
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 | * Lesser General Public License for more details.
17 | *
18 | * You should have received a copy of the GNU Lesser General Public
19 | * License along with FFmpeg; if not, write to the Free Software
20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21 | */
22 |
23 | #ifndef AVCODEC_JNI_H
24 | #define AVCODEC_JNI_H
25 |
26 | /*
27 | * Manually set a Java virtual machine which will be used to retrieve the JNI
28 | * environment. Once a Java VM is set it cannot be changed afterwards, meaning
29 | * you can call multiple times av_jni_set_java_vm with the same Java VM pointer
30 | * however it will error out if you try to set a different Java VM.
31 | *
32 | * @param vm Java virtual machine
33 | * @param log_ctx context used for logging, can be NULL
34 | * @return 0 on success, < 0 otherwise
35 | */
36 | int av_jni_set_java_vm(void *vm, void *log_ctx);
37 |
38 | /*
39 | * Get the Java virtual machine which has been set with av_jni_set_java_vm.
40 | *
41 | * @param vm Java virtual machine
42 | * @return a pointer to the Java virtual machine
43 | */
44 | void *av_jni_get_java_vm(void *log_ctx);
45 |
46 | #endif /* AVCODEC_JNI_H */
47 |
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/include/libavdevice/version.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of FFmpeg.
3 | *
4 | * FFmpeg is free software; you can redistribute it and/or
5 | * modify it under the terms of the GNU Lesser General Public
6 | * License as published by the Free Software Foundation; either
7 | * version 2.1 of the License, or (at your option) any later version.
8 | *
9 | * FFmpeg is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 | * Lesser General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU Lesser General Public
15 | * License along with FFmpeg; if not, write to the Free Software
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 | */
18 |
19 | #ifndef AVDEVICE_VERSION_H
20 | #define AVDEVICE_VERSION_H
21 |
22 | /**
23 | * @file
24 | * @ingroup lavd
25 | * Libavdevice version macros
26 | */
27 |
28 | #include "libavutil/version.h"
29 |
30 | #define LIBAVDEVICE_VERSION_MAJOR 58
31 | #define LIBAVDEVICE_VERSION_MINOR 3
32 | #define LIBAVDEVICE_VERSION_MICRO 100
33 |
34 | #define LIBAVDEVICE_VERSION_INT AV_VERSION_INT(LIBAVDEVICE_VERSION_MAJOR, \
35 | LIBAVDEVICE_VERSION_MINOR, \
36 | LIBAVDEVICE_VERSION_MICRO)
37 | #define LIBAVDEVICE_VERSION AV_VERSION(LIBAVDEVICE_VERSION_MAJOR, \
38 | LIBAVDEVICE_VERSION_MINOR, \
39 | LIBAVDEVICE_VERSION_MICRO)
40 | #define LIBAVDEVICE_BUILD LIBAVDEVICE_VERSION_INT
41 |
42 | #define LIBAVDEVICE_IDENT "Lavd" AV_STRINGIFY(LIBAVDEVICE_VERSION)
43 |
44 | /**
45 | * FF_API_* defines may be placed below to indicate public API that will be
46 | * dropped at a future version bump. The defines themselves are not part of
47 | * the public API and may change, break or disappear at any time.
48 | */
49 |
50 | #endif /* AVDEVICE_VERSION_H */
51 |
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/include/libavutil/adler32.h:
--------------------------------------------------------------------------------
1 | /*
2 | * copyright (c) 2006 Mans Rullgard
3 | *
4 | * This file is part of FFmpeg.
5 | *
6 | * FFmpeg is free software; you can redistribute it and/or
7 | * modify it under the terms of the GNU Lesser General Public
8 | * License as published by the Free Software Foundation; either
9 | * version 2.1 of the License, or (at your option) any later version.
10 | *
11 | * FFmpeg is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public
17 | * License along with FFmpeg; if not, write to the Free Software
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 | */
20 |
21 | /**
22 | * @file
23 | * @ingroup lavu_adler32
24 | * Public header for Adler-32 hash function implementation.
25 | */
26 |
27 | #ifndef AVUTIL_ADLER32_H
28 | #define AVUTIL_ADLER32_H
29 |
30 | #include
31 | #include "attributes.h"
32 |
33 | /**
34 | * @defgroup lavu_adler32 Adler-32
35 | * @ingroup lavu_hash
36 | * Adler-32 hash function implementation.
37 | *
38 | * @{
39 | */
40 |
41 | /**
42 | * Calculate the Adler32 checksum of a buffer.
43 | *
44 | * Passing the return value to a subsequent av_adler32_update() call
45 | * allows the checksum of multiple buffers to be calculated as though
46 | * they were concatenated.
47 | *
48 | * @param adler initial checksum value
49 | * @param buf pointer to input buffer
50 | * @param len size of input buffer
51 | * @return updated checksum
52 | */
53 | unsigned long av_adler32_update(unsigned long adler, const uint8_t *buf,
54 | unsigned int len) av_pure;
55 |
56 | /**
57 | * @}
58 | */
59 |
60 | #endif /* AVUTIL_ADLER32_H */
61 |
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/include/libavutil/aes.h:
--------------------------------------------------------------------------------
1 | /*
2 | * copyright (c) 2007 Michael Niedermayer
3 | *
4 | * This file is part of FFmpeg.
5 | *
6 | * FFmpeg is free software; you can redistribute it and/or
7 | * modify it under the terms of the GNU Lesser General Public
8 | * License as published by the Free Software Foundation; either
9 | * version 2.1 of the License, or (at your option) any later version.
10 | *
11 | * FFmpeg is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public
17 | * License along with FFmpeg; if not, write to the Free Software
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 | */
20 |
21 | #ifndef AVUTIL_AES_H
22 | #define AVUTIL_AES_H
23 |
24 | #include
25 |
26 | #include "attributes.h"
27 | #include "version.h"
28 |
29 | /**
30 | * @defgroup lavu_aes AES
31 | * @ingroup lavu_crypto
32 | * @{
33 | */
34 |
35 | extern const int av_aes_size;
36 |
37 | struct AVAES;
38 |
39 | /**
40 | * Allocate an AVAES context.
41 | */
42 | struct AVAES *av_aes_alloc(void);
43 |
44 | /**
45 | * Initialize an AVAES context.
46 | * @param key_bits 128, 192 or 256
47 | * @param decrypt 0 for encryption, 1 for decryption
48 | */
49 | int av_aes_init(struct AVAES *a, const uint8_t *key, int key_bits, int decrypt);
50 |
51 | /**
52 | * Encrypt or decrypt a buffer using a previously initialized context.
53 | * @param count number of 16 byte blocks
54 | * @param dst destination array, can be equal to src
55 | * @param src source array, can be equal to dst
56 | * @param iv initialization vector for CBC mode, if NULL then ECB will be used
57 | * @param decrypt 0 for encryption, 1 for decryption
58 | */
59 | void av_aes_crypt(struct AVAES *a, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt);
60 |
61 | /**
62 | * @}
63 | */
64 |
65 | #endif /* AVUTIL_AES_H */
66 |
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/include/libavutil/avconfig.h:
--------------------------------------------------------------------------------
1 | /* Generated by ffmpeg configure */
2 | #ifndef AVUTIL_AVCONFIG_H
3 | #define AVUTIL_AVCONFIG_H
4 | #define AV_HAVE_BIGENDIAN 0
5 | #define AV_HAVE_FAST_UNALIGNED 1
6 | #endif /* AVUTIL_AVCONFIG_H */
7 |
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/include/libavutil/ffversion.h:
--------------------------------------------------------------------------------
1 | /* Automatically generated by version.sh, do not manually edit! */
2 | #ifndef AVUTIL_FFVERSION_H
3 | #define AVUTIL_FFVERSION_H
4 | #define FFMPEG_VERSION "4.0.2"
5 | #endif /* AVUTIL_FFVERSION_H */
6 |
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/include/libavutil/hwcontext_cuda.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of FFmpeg.
3 | *
4 | * FFmpeg is free software; you can redistribute it and/or
5 | * modify it under the terms of the GNU Lesser General Public
6 | * License as published by the Free Software Foundation; either
7 | * version 2.1 of the License, or (at your option) any later version.
8 | *
9 | * FFmpeg is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 | * Lesser General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU Lesser General Public
15 | * License along with FFmpeg; if not, write to the Free Software
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 | */
18 |
19 |
20 | #ifndef AVUTIL_HWCONTEXT_CUDA_H
21 | #define AVUTIL_HWCONTEXT_CUDA_H
22 |
23 | #ifndef CUDA_VERSION
24 | #include
25 | #endif
26 |
27 | #include "pixfmt.h"
28 |
29 | /**
30 | * @file
31 | * An API-specific header for AV_HWDEVICE_TYPE_CUDA.
32 | *
33 | * This API supports dynamic frame pools. AVHWFramesContext.pool must return
34 | * AVBufferRefs whose data pointer is a CUdeviceptr.
35 | */
36 |
37 | typedef struct AVCUDADeviceContextInternal AVCUDADeviceContextInternal;
38 |
39 | /**
40 | * This struct is allocated as AVHWDeviceContext.hwctx
41 | */
42 | typedef struct AVCUDADeviceContext {
43 | CUcontext cuda_ctx;
44 | AVCUDADeviceContextInternal *internal;
45 | } AVCUDADeviceContext;
46 |
47 | /**
48 | * AVHWFramesContext.hwctx is currently not used
49 | */
50 |
51 | #endif /* AVUTIL_HWCONTEXT_CUDA_H */
52 |
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/include/libavutil/hwcontext_mediacodec.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of FFmpeg.
3 | *
4 | * FFmpeg is free software; you can redistribute it and/or
5 | * modify it under the terms of the GNU Lesser General Public
6 | * License as published by the Free Software Foundation; either
7 | * version 2.1 of the License, or (at your option) any later version.
8 | *
9 | * FFmpeg is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 | * Lesser General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU Lesser General Public
15 | * License along with FFmpeg; if not, write to the Free Software
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 | */
18 |
19 | #ifndef AVUTIL_HWCONTEXT_MEDIACODEC_H
20 | #define AVUTIL_HWCONTEXT_MEDIACODEC_H
21 |
22 | /**
23 | * MediaCodec details.
24 | *
25 | * Allocated as AVHWDeviceContext.hwctx
26 | */
27 | typedef struct AVMediaCodecDeviceContext {
28 | /**
29 | * android/view/Surface handle, to be filled by the user.
30 | *
31 | * This is the default surface used by decoders on this device.
32 | */
33 | void *surface;
34 | } AVMediaCodecDeviceContext;
35 |
36 | #endif /* AVUTIL_HWCONTEXT_MEDIACODEC_H */
37 |
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/include/libavutil/hwcontext_qsv.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of FFmpeg.
3 | *
4 | * FFmpeg is free software; you can redistribute it and/or
5 | * modify it under the terms of the GNU Lesser General Public
6 | * License as published by the Free Software Foundation; either
7 | * version 2.1 of the License, or (at your option) any later version.
8 | *
9 | * FFmpeg is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 | * Lesser General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU Lesser General Public
15 | * License along with FFmpeg; if not, write to the Free Software
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 | */
18 |
19 | #ifndef AVUTIL_HWCONTEXT_QSV_H
20 | #define AVUTIL_HWCONTEXT_QSV_H
21 |
22 | #include
23 |
24 | /**
25 | * @file
26 | * An API-specific header for AV_HWDEVICE_TYPE_QSV.
27 | *
28 | * This API does not support dynamic frame pools. AVHWFramesContext.pool must
29 | * contain AVBufferRefs whose data pointer points to an mfxFrameSurface1 struct.
30 | */
31 |
32 | /**
33 | * This struct is allocated as AVHWDeviceContext.hwctx
34 | */
35 | typedef struct AVQSVDeviceContext {
36 | mfxSession session;
37 | } AVQSVDeviceContext;
38 |
39 | /**
40 | * This struct is allocated as AVHWFramesContext.hwctx
41 | */
42 | typedef struct AVQSVFramesContext {
43 | mfxFrameSurface1 *surfaces;
44 | int nb_surfaces;
45 |
46 | /**
47 | * A combination of MFX_MEMTYPE_* describing the frame pool.
48 | */
49 | int frame_type;
50 | } AVQSVFramesContext;
51 |
52 | #endif /* AVUTIL_HWCONTEXT_QSV_H */
53 |
54 |
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/include/libavutil/hwcontext_vdpau.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of FFmpeg.
3 | *
4 | * FFmpeg is free software; you can redistribute it and/or
5 | * modify it under the terms of the GNU Lesser General Public
6 | * License as published by the Free Software Foundation; either
7 | * version 2.1 of the License, or (at your option) any later version.
8 | *
9 | * FFmpeg is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 | * Lesser General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU Lesser General Public
15 | * License along with FFmpeg; if not, write to the Free Software
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 | */
18 |
19 | #ifndef AVUTIL_HWCONTEXT_VDPAU_H
20 | #define AVUTIL_HWCONTEXT_VDPAU_H
21 |
22 | #include
23 |
24 | /**
25 | * @file
26 | * An API-specific header for AV_HWDEVICE_TYPE_VDPAU.
27 | *
28 | * This API supports dynamic frame pools. AVHWFramesContext.pool must return
29 | * AVBufferRefs whose data pointer is a VdpVideoSurface.
30 | */
31 |
32 | /**
33 | * This struct is allocated as AVHWDeviceContext.hwctx
34 | */
35 | typedef struct AVVDPAUDeviceContext {
36 | VdpDevice device;
37 | VdpGetProcAddress *get_proc_address;
38 | } AVVDPAUDeviceContext;
39 |
40 | /**
41 | * AVHWFramesContext.hwctx is currently not used
42 | */
43 |
44 | #endif /* AVUTIL_HWCONTEXT_VDPAU_H */
45 |
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/include/libavutil/hwcontext_videotoolbox.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of FFmpeg.
3 | *
4 | * FFmpeg is free software; you can redistribute it and/or
5 | * modify it under the terms of the GNU Lesser General Public
6 | * License as published by the Free Software Foundation; either
7 | * version 2.1 of the License, or (at your option) any later version.
8 | *
9 | * FFmpeg is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 | * Lesser General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU Lesser General Public
15 | * License along with FFmpeg; if not, write to the Free Software
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 | */
18 |
19 | #ifndef AVUTIL_HWCONTEXT_VIDEOTOOLBOX_H
20 | #define AVUTIL_HWCONTEXT_VIDEOTOOLBOX_H
21 |
22 | #include
23 |
24 | #include
25 |
26 | #include "pixfmt.h"
27 |
28 | /**
29 | * @file
30 | * An API-specific header for AV_HWDEVICE_TYPE_VIDEOTOOLBOX.
31 | *
32 | * This API currently does not support frame allocation, as the raw VideoToolbox
33 | * API does allocation, and FFmpeg itself never has the need to allocate frames.
34 | *
35 | * If the API user sets a custom pool, AVHWFramesContext.pool must return
36 | * AVBufferRefs whose data pointer is a CVImageBufferRef or CVPixelBufferRef.
37 | *
38 | * Currently AVHWDeviceContext.hwctx and AVHWFramesContext.hwctx are always
39 | * NULL.
40 | */
41 |
42 | /**
43 | * Convert a VideoToolbox (actually CoreVideo) format to AVPixelFormat.
44 | * Returns AV_PIX_FMT_NONE if no known equivalent was found.
45 | */
46 | enum AVPixelFormat av_map_videotoolbox_format_to_pixfmt(uint32_t cv_fmt);
47 |
48 | /**
49 | * Convert an AVPixelFormat to a VideoToolbox (actually CoreVideo) format.
50 | * Returns 0 if no known equivalent was found.
51 | */
52 | uint32_t av_map_videotoolbox_format_from_pixfmt(enum AVPixelFormat pix_fmt);
53 |
54 | #endif /* AVUTIL_HWCONTEXT_VIDEOTOOLBOX_H */
55 |
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/include/libavutil/intfloat.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2011 Mans Rullgard
3 | *
4 | * This file is part of FFmpeg.
5 | *
6 | * FFmpeg is free software; you can redistribute it and/or
7 | * modify it under the terms of the GNU Lesser General Public
8 | * License as published by the Free Software Foundation; either
9 | * version 2.1 of the License, or (at your option) any later version.
10 | *
11 | * FFmpeg is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public
17 | * License along with FFmpeg; if not, write to the Free Software
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 | */
20 |
21 | #ifndef AVUTIL_INTFLOAT_H
22 | #define AVUTIL_INTFLOAT_H
23 |
24 | #include
25 | #include "attributes.h"
26 |
27 | union av_intfloat32 {
28 | uint32_t i;
29 | float f;
30 | };
31 |
32 | union av_intfloat64 {
33 | uint64_t i;
34 | double f;
35 | };
36 |
37 | /**
38 | * Reinterpret a 32-bit integer as a float.
39 | */
40 | static av_always_inline float av_int2float(uint32_t i)
41 | {
42 | union av_intfloat32 v;
43 | v.i = i;
44 | return v.f;
45 | }
46 |
47 | /**
48 | * Reinterpret a float as a 32-bit integer.
49 | */
50 | static av_always_inline uint32_t av_float2int(float f)
51 | {
52 | union av_intfloat32 v;
53 | v.f = f;
54 | return v.i;
55 | }
56 |
57 | /**
58 | * Reinterpret a 64-bit integer as a double.
59 | */
60 | static av_always_inline double av_int2double(uint64_t i)
61 | {
62 | union av_intfloat64 v;
63 | v.i = i;
64 | return v.f;
65 | }
66 |
67 | /**
68 | * Reinterpret a double as a 64-bit integer.
69 | */
70 | static av_always_inline uint64_t av_double2int(double f)
71 | {
72 | union av_intfloat64 v;
73 | v.f = f;
74 | return v.i;
75 | }
76 |
77 | #endif /* AVUTIL_INTFLOAT_H */
78 |
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/include/libavutil/lzo.h:
--------------------------------------------------------------------------------
1 | /*
2 | * LZO 1x decompression
3 | * copyright (c) 2006 Reimar Doeffinger
4 | *
5 | * This file is part of FFmpeg.
6 | *
7 | * FFmpeg is free software; you can redistribute it and/or
8 | * modify it under the terms of the GNU Lesser General Public
9 | * License as published by the Free Software Foundation; either
10 | * version 2.1 of the License, or (at your option) any later version.
11 | *
12 | * FFmpeg is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 | * Lesser General Public License for more details.
16 | *
17 | * You should have received a copy of the GNU Lesser General Public
18 | * License along with FFmpeg; if not, write to the Free Software
19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 | */
21 |
22 | #ifndef AVUTIL_LZO_H
23 | #define AVUTIL_LZO_H
24 |
25 | /**
26 | * @defgroup lavu_lzo LZO
27 | * @ingroup lavu_crypto
28 | *
29 | * @{
30 | */
31 |
32 | #include
33 |
34 | /** @name Error flags returned by av_lzo1x_decode
35 | * @{ */
36 | /// end of the input buffer reached before decoding finished
37 | #define AV_LZO_INPUT_DEPLETED 1
38 | /// decoded data did not fit into output buffer
39 | #define AV_LZO_OUTPUT_FULL 2
40 | /// a reference to previously decoded data was wrong
41 | #define AV_LZO_INVALID_BACKPTR 4
42 | /// a non-specific error in the compressed bitstream
43 | #define AV_LZO_ERROR 8
44 | /** @} */
45 |
46 | #define AV_LZO_INPUT_PADDING 8
47 | #define AV_LZO_OUTPUT_PADDING 12
48 |
49 | /**
50 | * @brief Decodes LZO 1x compressed data.
51 | * @param out output buffer
52 | * @param outlen size of output buffer, number of bytes left are returned here
53 | * @param in input buffer
54 | * @param inlen size of input buffer, number of bytes left are returned here
55 | * @return 0 on success, otherwise a combination of the error flags above
56 | *
57 | * Make sure all buffers are appropriately padded, in must provide
58 | * AV_LZO_INPUT_PADDING, out must provide AV_LZO_OUTPUT_PADDING additional bytes.
59 | */
60 | int av_lzo1x_decode(void *out, int *outlen, const void *in, int *inlen);
61 |
62 | /**
63 | * @}
64 | */
65 |
66 | #endif /* AVUTIL_LZO_H */
67 |
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/include/libavutil/macros.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of FFmpeg.
3 | *
4 | * FFmpeg is free software; you can redistribute it and/or
5 | * modify it under the terms of the GNU Lesser General Public
6 | * License as published by the Free Software Foundation; either
7 | * version 2.1 of the License, or (at your option) any later version.
8 | *
9 | * FFmpeg is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 | * Lesser General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU Lesser General Public
15 | * License along with FFmpeg; if not, write to the Free Software
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 | */
18 |
19 | /**
20 | * @file
21 | * @ingroup lavu
22 | * Utility Preprocessor macros
23 | */
24 |
25 | #ifndef AVUTIL_MACROS_H
26 | #define AVUTIL_MACROS_H
27 |
28 | /**
29 | * @addtogroup preproc_misc Preprocessor String Macros
30 | *
31 | * String manipulation macros
32 | *
33 | * @{
34 | */
35 |
36 | #define AV_STRINGIFY(s) AV_TOSTRING(s)
37 | #define AV_TOSTRING(s) #s
38 |
39 | #define AV_GLUE(a, b) a ## b
40 | #define AV_JOIN(a, b) AV_GLUE(a, b)
41 |
42 | /**
43 | * @}
44 | */
45 |
46 | #define AV_PRAGMA(s) _Pragma(#s)
47 |
48 | #define FFALIGN(x, a) (((x)+(a)-1)&~((a)-1))
49 |
50 | #endif /* AVUTIL_MACROS_H */
51 |
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/include/libavutil/motion_vector.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of FFmpeg.
3 | *
4 | * FFmpeg is free software; you can redistribute it and/or
5 | * modify it under the terms of the GNU Lesser General Public
6 | * License as published by the Free Software Foundation; either
7 | * version 2.1 of the License, or (at your option) any later version.
8 | *
9 | * FFmpeg is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 | * Lesser General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU Lesser General Public
15 | * License along with FFmpeg; if not, write to the Free Software
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 | */
18 |
19 | #ifndef AVUTIL_MOTION_VECTOR_H
20 | #define AVUTIL_MOTION_VECTOR_H
21 |
22 | #include
23 |
24 | typedef struct AVMotionVector {
25 | /**
26 | * Where the current macroblock comes from; negative value when it comes
27 | * from the past, positive value when it comes from the future.
28 | * XXX: set exact relative ref frame reference instead of a +/- 1 "direction".
29 | */
30 | int32_t source;
31 | /**
32 | * Width and height of the block.
33 | */
34 | uint8_t w, h;
35 | /**
36 | * Absolute source position. Can be outside the frame area.
37 | */
38 | int16_t src_x, src_y;
39 | /**
40 | * Absolute destination position. Can be outside the frame area.
41 | */
42 | int16_t dst_x, dst_y;
43 | /**
44 | * Extra flag information.
45 | * Currently unused.
46 | */
47 | uint64_t flags;
48 | /**
49 | * Motion vector
50 | * src_x = dst_x + motion_x / motion_scale
51 | * src_y = dst_y + motion_y / motion_scale
52 | */
53 | int32_t motion_x, motion_y;
54 | uint16_t motion_scale;
55 | } AVMotionVector;
56 |
57 | #endif /* AVUTIL_MOTION_VECTOR_H */
58 |
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/include/libavutil/pixelutils.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of FFmpeg.
3 | *
4 | * FFmpeg is free software; you can redistribute it and/or
5 | * modify it under the terms of the GNU Lesser General Public
6 | * License as published by the Free Software Foundation; either
7 | * version 2.1 of the License, or (at your option) any later version.
8 | *
9 | * FFmpeg is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 | * Lesser General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU Lesser General Public
15 | * License along with FFmpeg; if not, write to the Free Software
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 | */
18 |
19 | #ifndef AVUTIL_PIXELUTILS_H
20 | #define AVUTIL_PIXELUTILS_H
21 |
22 | #include
23 | #include
24 | #include "common.h"
25 |
26 | /**
27 | * Sum of abs(src1[x] - src2[x])
28 | */
29 | typedef int (*av_pixelutils_sad_fn)(const uint8_t *src1, ptrdiff_t stride1,
30 | const uint8_t *src2, ptrdiff_t stride2);
31 |
32 | /**
33 | * Get a potentially optimized pointer to a Sum-of-absolute-differences
34 | * function (see the av_pixelutils_sad_fn prototype).
35 | *
36 | * @param w_bits 1<
3 | *
4 | * This file is part of FFmpeg.
5 | *
6 | * FFmpeg is free software; you can redistribute it and/or
7 | * modify it under the terms of the GNU Lesser General Public
8 | * License as published by the Free Software Foundation; either
9 | * version 2.1 of the License, or (at your option) any later version.
10 | *
11 | * FFmpeg is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public
17 | * License along with FFmpeg; if not, write to the Free Software
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 | */
20 |
21 | #ifndef AVUTIL_RANDOM_SEED_H
22 | #define AVUTIL_RANDOM_SEED_H
23 |
24 | #include
25 | /**
26 | * @addtogroup lavu_crypto
27 | * @{
28 | */
29 |
30 | /**
31 | * Get a seed to use in conjunction with random functions.
32 | * This function tries to provide a good seed at a best effort bases.
33 | * Its possible to call this function multiple times if more bits are needed.
34 | * It can be quite slow, which is why it should only be used as seed for a faster
35 | * PRNG. The quality of the seed depends on the platform.
36 | */
37 | uint32_t av_get_random_seed(void);
38 |
39 | /**
40 | * @}
41 | */
42 |
43 | #endif /* AVUTIL_RANDOM_SEED_H */
44 |
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/include/libavutil/rc4.h:
--------------------------------------------------------------------------------
1 | /*
2 | * RC4 encryption/decryption/pseudo-random number generator
3 | *
4 | * This file is part of FFmpeg.
5 | *
6 | * FFmpeg is free software; you can redistribute it and/or
7 | * modify it under the terms of the GNU Lesser General Public
8 | * License as published by the Free Software Foundation; either
9 | * version 2.1 of the License, or (at your option) any later version.
10 | *
11 | * FFmpeg is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public
17 | * License along with FFmpeg; if not, write to the Free Software
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 | */
20 |
21 | #ifndef AVUTIL_RC4_H
22 | #define AVUTIL_RC4_H
23 |
24 | #include
25 |
26 | /**
27 | * @defgroup lavu_rc4 RC4
28 | * @ingroup lavu_crypto
29 | * @{
30 | */
31 |
32 | typedef struct AVRC4 {
33 | uint8_t state[256];
34 | int x, y;
35 | } AVRC4;
36 |
37 | /**
38 | * Allocate an AVRC4 context.
39 | */
40 | AVRC4 *av_rc4_alloc(void);
41 |
42 | /**
43 | * @brief Initializes an AVRC4 context.
44 | *
45 | * @param key_bits must be a multiple of 8
46 | * @param decrypt 0 for encryption, 1 for decryption, currently has no effect
47 | * @return zero on success, negative value otherwise
48 | */
49 | int av_rc4_init(struct AVRC4 *d, const uint8_t *key, int key_bits, int decrypt);
50 |
51 | /**
52 | * @brief Encrypts / decrypts using the RC4 algorithm.
53 | *
54 | * @param count number of bytes
55 | * @param dst destination array, can be equal to src
56 | * @param src source array, can be equal to dst, may be NULL
57 | * @param iv not (yet) used for RC4, should be NULL
58 | * @param decrypt 0 for encryption, 1 for decryption, not (yet) used
59 | */
60 | void av_rc4_crypt(struct AVRC4 *d, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt);
61 |
62 | /**
63 | * @}
64 | */
65 |
66 | #endif /* AVUTIL_RC4_H */
67 |
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/include/libavutil/replaygain.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of FFmpeg.
3 | *
4 | * FFmpeg is free software; you can redistribute it and/or
5 | * modify it under the terms of the GNU Lesser General Public
6 | * License as published by the Free Software Foundation; either
7 | * version 2.1 of the License, or (at your option) any later version.
8 | *
9 | * FFmpeg is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 | * Lesser General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU Lesser General Public
15 | * License along with FFmpeg; if not, write to the Free Software
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 | */
18 |
19 | #ifndef AVUTIL_REPLAYGAIN_H
20 | #define AVUTIL_REPLAYGAIN_H
21 |
22 | #include
23 |
24 | /**
25 | * ReplayGain information (see
26 | * http://wiki.hydrogenaudio.org/index.php?title=ReplayGain_1.0_specification).
27 | * The size of this struct is a part of the public ABI.
28 | */
29 | typedef struct AVReplayGain {
30 | /**
31 | * Track replay gain in microbels (divide by 100000 to get the value in dB).
32 | * Should be set to INT32_MIN when unknown.
33 | */
34 | int32_t track_gain;
35 | /**
36 | * Peak track amplitude, with 100000 representing full scale (but values
37 | * may overflow). 0 when unknown.
38 | */
39 | uint32_t track_peak;
40 | /**
41 | * Same as track_gain, but for the whole album.
42 | */
43 | int32_t album_gain;
44 | /**
45 | * Same as track_peak, but for the whole album,
46 | */
47 | uint32_t album_peak;
48 | } AVReplayGain;
49 |
50 | #endif /* AVUTIL_REPLAYGAIN_H */
51 |
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/include/libavutil/tea.h:
--------------------------------------------------------------------------------
1 | /*
2 | * A 32-bit implementation of the TEA algorithm
3 | * Copyright (c) 2015 Vesselin Bontchev
4 | *
5 | * This file is part of FFmpeg.
6 | *
7 | * FFmpeg is free software; you can redistribute it and/or
8 | * modify it under the terms of the GNU Lesser General Public
9 | * License as published by the Free Software Foundation; either
10 | * version 2.1 of the License, or (at your option) any later version.
11 | *
12 | * FFmpeg is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 | * Lesser General Public License for more details.
16 | *
17 | * You should have received a copy of the GNU Lesser General Public
18 | * License along with FFmpeg; if not, write to the Free Software
19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 | */
21 |
22 | #ifndef AVUTIL_TEA_H
23 | #define AVUTIL_TEA_H
24 |
25 | #include
26 |
27 | /**
28 | * @file
29 | * @brief Public header for libavutil TEA algorithm
30 | * @defgroup lavu_tea TEA
31 | * @ingroup lavu_crypto
32 | * @{
33 | */
34 |
35 | extern const int av_tea_size;
36 |
37 | struct AVTEA;
38 |
39 | /**
40 | * Allocate an AVTEA context
41 | * To free the struct: av_free(ptr)
42 | */
43 | struct AVTEA *av_tea_alloc(void);
44 |
45 | /**
46 | * Initialize an AVTEA context.
47 | *
48 | * @param ctx an AVTEA context
49 | * @param key a key of 16 bytes used for encryption/decryption
50 | * @param rounds the number of rounds in TEA (64 is the "standard")
51 | */
52 | void av_tea_init(struct AVTEA *ctx, const uint8_t key[16], int rounds);
53 |
54 | /**
55 | * Encrypt or decrypt a buffer using a previously initialized context.
56 | *
57 | * @param ctx an AVTEA context
58 | * @param dst destination array, can be equal to src
59 | * @param src source array, can be equal to dst
60 | * @param count number of 8 byte blocks
61 | * @param iv initialization vector for CBC mode, if NULL then ECB will be used
62 | * @param decrypt 0 for encryption, 1 for decryption
63 | */
64 | void av_tea_crypt(struct AVTEA *ctx, uint8_t *dst, const uint8_t *src,
65 | int count, uint8_t *iv, int decrypt);
66 |
67 | /**
68 | * @}
69 | */
70 |
71 | #endif /* AVUTIL_TEA_H */
72 |
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/include/libavutil/time.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2000-2003 Fabrice Bellard
3 | *
4 | * This file is part of FFmpeg.
5 | *
6 | * FFmpeg is free software; you can redistribute it and/or
7 | * modify it under the terms of the GNU Lesser General Public
8 | * License as published by the Free Software Foundation; either
9 | * version 2.1 of the License, or (at your option) any later version.
10 | *
11 | * FFmpeg is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public
17 | * License along with FFmpeg; if not, write to the Free Software
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 | */
20 |
21 | #ifndef AVUTIL_TIME_H
22 | #define AVUTIL_TIME_H
23 |
24 | #include
25 |
26 | /**
27 | * Get the current time in microseconds.
28 | */
29 | int64_t av_gettime(void);
30 |
31 | /**
32 | * Get the current time in microseconds since some unspecified starting point.
33 | * On platforms that support it, the time comes from a monotonic clock
34 | * This property makes this time source ideal for measuring relative time.
35 | * The returned values may not be monotonic on platforms where a monotonic
36 | * clock is not available.
37 | */
38 | int64_t av_gettime_relative(void);
39 |
40 | /**
41 | * Indicates with a boolean result if the av_gettime_relative() time source
42 | * is monotonic.
43 | */
44 | int av_gettime_relative_is_monotonic(void);
45 |
46 | /**
47 | * Sleep for a period of time. Although the duration is expressed in
48 | * microseconds, the actual delay may be rounded to the precision of the
49 | * system timer.
50 | *
51 | * @param usec Number of microseconds to sleep.
52 | * @return zero on success or (negative) error code.
53 | */
54 | int av_usleep(unsigned usec);
55 |
56 | #endif /* AVUTIL_TIME_H */
57 |
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/include/libpostproc/version.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Version macros.
3 | *
4 | * This file is part of FFmpeg.
5 | *
6 | * FFmpeg is free software; you can redistribute it and/or
7 | * modify it under the terms of the GNU Lesser General Public
8 | * License as published by the Free Software Foundation; either
9 | * version 2.1 of the License, or (at your option) any later version.
10 | *
11 | * FFmpeg is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public
17 | * License along with FFmpeg; if not, write to the Free Software
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 | */
20 |
21 | #ifndef POSTPROC_VERSION_H
22 | #define POSTPROC_VERSION_H
23 |
24 | /**
25 | * @file
26 | * Libpostproc version macros
27 | */
28 |
29 | #include "libavutil/avutil.h"
30 |
31 | #define LIBPOSTPROC_VERSION_MAJOR 55
32 | #define LIBPOSTPROC_VERSION_MINOR 1
33 | #define LIBPOSTPROC_VERSION_MICRO 100
34 |
35 | #define LIBPOSTPROC_VERSION_INT AV_VERSION_INT(LIBPOSTPROC_VERSION_MAJOR, \
36 | LIBPOSTPROC_VERSION_MINOR, \
37 | LIBPOSTPROC_VERSION_MICRO)
38 | #define LIBPOSTPROC_VERSION AV_VERSION(LIBPOSTPROC_VERSION_MAJOR, \
39 | LIBPOSTPROC_VERSION_MINOR, \
40 | LIBPOSTPROC_VERSION_MICRO)
41 | #define LIBPOSTPROC_BUILD LIBPOSTPROC_VERSION_INT
42 |
43 | #define LIBPOSTPROC_IDENT "postproc" AV_STRINGIFY(LIBPOSTPROC_VERSION)
44 |
45 | #endif /* POSTPROC_VERSION_H */
46 |
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/include/libswresample/version.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Version macros.
3 | *
4 | * This file is part of libswresample
5 | *
6 | * libswresample is free software; you can redistribute it and/or
7 | * modify it under the terms of the GNU Lesser General Public
8 | * License as published by the Free Software Foundation; either
9 | * version 2.1 of the License, or (at your option) any later version.
10 | *
11 | * libswresample is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public
17 | * License along with libswresample; if not, write to the Free Software
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 | */
20 |
21 | #ifndef SWRESAMPLE_VERSION_H
22 | #define SWRESAMPLE_VERSION_H
23 |
24 | /**
25 | * @file
26 | * Libswresample version macros
27 | */
28 |
29 | #include "libavutil/avutil.h"
30 |
31 | #define LIBSWRESAMPLE_VERSION_MAJOR 3
32 | #define LIBSWRESAMPLE_VERSION_MINOR 1
33 | #define LIBSWRESAMPLE_VERSION_MICRO 100
34 |
35 | #define LIBSWRESAMPLE_VERSION_INT AV_VERSION_INT(LIBSWRESAMPLE_VERSION_MAJOR, \
36 | LIBSWRESAMPLE_VERSION_MINOR, \
37 | LIBSWRESAMPLE_VERSION_MICRO)
38 | #define LIBSWRESAMPLE_VERSION AV_VERSION(LIBSWRESAMPLE_VERSION_MAJOR, \
39 | LIBSWRESAMPLE_VERSION_MINOR, \
40 | LIBSWRESAMPLE_VERSION_MICRO)
41 | #define LIBSWRESAMPLE_BUILD LIBSWRESAMPLE_VERSION_INT
42 |
43 | #define LIBSWRESAMPLE_IDENT "SwR" AV_STRINGIFY(LIBSWRESAMPLE_VERSION)
44 |
45 | #endif /* SWRESAMPLE_VERSION_H */
46 |
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/include/libswscale/version.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of FFmpeg.
3 | *
4 | * FFmpeg is free software; you can redistribute it and/or
5 | * modify it under the terms of the GNU Lesser General Public
6 | * License as published by the Free Software Foundation; either
7 | * version 2.1 of the License, or (at your option) any later version.
8 | *
9 | * FFmpeg is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 | * Lesser General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU Lesser General Public
15 | * License along with FFmpeg; if not, write to the Free Software
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 | */
18 |
19 | #ifndef SWSCALE_VERSION_H
20 | #define SWSCALE_VERSION_H
21 |
22 | /**
23 | * @file
24 | * swscale version macros
25 | */
26 |
27 | #include "libavutil/version.h"
28 |
29 | #define LIBSWSCALE_VERSION_MAJOR 5
30 | #define LIBSWSCALE_VERSION_MINOR 1
31 | #define LIBSWSCALE_VERSION_MICRO 100
32 |
33 | #define LIBSWSCALE_VERSION_INT AV_VERSION_INT(LIBSWSCALE_VERSION_MAJOR, \
34 | LIBSWSCALE_VERSION_MINOR, \
35 | LIBSWSCALE_VERSION_MICRO)
36 | #define LIBSWSCALE_VERSION AV_VERSION(LIBSWSCALE_VERSION_MAJOR, \
37 | LIBSWSCALE_VERSION_MINOR, \
38 | LIBSWSCALE_VERSION_MICRO)
39 | #define LIBSWSCALE_BUILD LIBSWSCALE_VERSION_INT
40 |
41 | #define LIBSWSCALE_IDENT "SwS" AV_STRINGIFY(LIBSWSCALE_VERSION)
42 |
43 | /**
44 | * FF_API_* defines may be placed below to indicate public API that will be
45 | * dropped at a future version bump. The defines themselves are not part of
46 | * the public API and may change, break or disappear at any time.
47 | */
48 |
49 | #ifndef FF_API_SWS_VECTOR
50 | #define FF_API_SWS_VECTOR (LIBSWSCALE_VERSION_MAJOR < 6)
51 | #endif
52 |
53 | #endif /* SWSCALE_VERSION_H */
54 |
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/lib/avcodec.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ffmpeg/lib/avcodec.lib
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/lib/avdevice-58.def:
--------------------------------------------------------------------------------
1 | EXPORTS
2 | av_device_capabilities
3 | av_device_ffversion
4 | av_input_audio_device_next
5 | av_input_video_device_next
6 | av_output_audio_device_next
7 | av_output_video_device_next
8 | avdevice_app_to_dev_control_message
9 | avdevice_capabilities_create
10 | avdevice_capabilities_free
11 | avdevice_configuration
12 | avdevice_dev_to_app_control_message
13 | avdevice_free_list_devices
14 | avdevice_license
15 | avdevice_list_devices
16 | avdevice_list_input_sources
17 | avdevice_list_output_sinks
18 | avdevice_register_all
19 | avdevice_version
20 |
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/lib/avdevice.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ffmpeg/lib/avdevice.lib
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/lib/avfilter-7.def:
--------------------------------------------------------------------------------
1 | EXPORTS
2 | av_abuffersink_params_alloc
3 | av_buffersink_get_channel_layout
4 | av_buffersink_get_channels
5 | av_buffersink_get_format
6 | av_buffersink_get_frame
7 | av_buffersink_get_frame_flags
8 | av_buffersink_get_frame_rate
9 | av_buffersink_get_h
10 | av_buffersink_get_hw_frames_ctx
11 | av_buffersink_get_sample_aspect_ratio
12 | av_buffersink_get_sample_rate
13 | av_buffersink_get_samples
14 | av_buffersink_get_time_base
15 | av_buffersink_get_type
16 | av_buffersink_get_w
17 | av_buffersink_params_alloc
18 | av_buffersink_set_frame_size
19 | av_buffersrc_add_frame
20 | av_buffersrc_add_frame_flags
21 | av_buffersrc_close
22 | av_buffersrc_get_nb_failed_requests
23 | av_buffersrc_parameters_alloc
24 | av_buffersrc_parameters_set
25 | av_buffersrc_write_frame
26 | av_filter_ffversion
27 | av_filter_iterate
28 | avfilter_add_matrix
29 | avfilter_all_channel_layouts
30 | avfilter_config_links
31 | avfilter_configuration
32 | avfilter_free
33 | avfilter_get_by_name
34 | avfilter_get_class
35 | avfilter_get_matrix
36 | avfilter_graph_alloc
37 | avfilter_graph_alloc_filter
38 | avfilter_graph_config
39 | avfilter_graph_create_filter
40 | avfilter_graph_dump
41 | avfilter_graph_free
42 | avfilter_graph_get_filter
43 | avfilter_graph_parse
44 | avfilter_graph_parse2
45 | avfilter_graph_parse_ptr
46 | avfilter_graph_queue_command
47 | avfilter_graph_request_oldest
48 | avfilter_graph_send_command
49 | avfilter_graph_set_auto_convert
50 | avfilter_init_dict
51 | avfilter_init_str
52 | avfilter_inout_alloc
53 | avfilter_inout_free
54 | avfilter_insert_filter
55 | avfilter_license
56 | avfilter_link
57 | avfilter_link_free
58 | avfilter_link_get_channels
59 | avfilter_link_set_closed
60 | avfilter_make_format64_list
61 | avfilter_mul_matrix
62 | avfilter_next
63 | avfilter_pad_count
64 | avfilter_pad_get_name
65 | avfilter_pad_get_type
66 | avfilter_process_command
67 | avfilter_register
68 | avfilter_register_all
69 | avfilter_sub_matrix
70 | avfilter_transform
71 | avfilter_version
72 |
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/lib/avfilter.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ffmpeg/lib/avfilter.lib
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/lib/avformat.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ffmpeg/lib/avformat.lib
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/lib/avutil.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ffmpeg/lib/avutil.lib
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/lib/libavcodec.dll.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ffmpeg/lib/libavcodec.dll.a
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/lib/libavdevice.dll.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ffmpeg/lib/libavdevice.dll.a
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/lib/libavfilter.dll.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ffmpeg/lib/libavfilter.dll.a
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/lib/libavformat.dll.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ffmpeg/lib/libavformat.dll.a
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/lib/libavutil.dll.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ffmpeg/lib/libavutil.dll.a
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/lib/libpostproc.dll.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ffmpeg/lib/libpostproc.dll.a
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/lib/libswresample.dll.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ffmpeg/lib/libswresample.dll.a
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/lib/libswscale.dll.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ffmpeg/lib/libswscale.dll.a
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/lib/postproc-55.def:
--------------------------------------------------------------------------------
1 | EXPORTS
2 | postproc_configuration
3 | postproc_ffversion
4 | postproc_license
5 | postproc_version
6 | pp_free_context
7 | pp_free_mode
8 | pp_get_context
9 | pp_get_mode_by_name_and_quality
10 | pp_help
11 | pp_postprocess
12 |
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/lib/postproc.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ffmpeg/lib/postproc.lib
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/lib/swresample-3.def:
--------------------------------------------------------------------------------
1 | EXPORTS
2 | swr_alloc
3 | swr_alloc_set_opts
4 | swr_build_matrix
5 | swr_close
6 | swr_config_frame
7 | swr_convert
8 | swr_convert_frame
9 | swr_drop_output
10 | swr_ffversion
11 | swr_free
12 | swr_get_class
13 | swr_get_delay
14 | swr_get_out_samples
15 | swr_init
16 | swr_inject_silence
17 | swr_is_initialized
18 | swr_next_pts
19 | swr_set_channel_mapping
20 | swr_set_compensation
21 | swr_set_matrix
22 | swresample_configuration
23 | swresample_license
24 | swresample_version
25 |
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/lib/swresample.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ffmpeg/lib/swresample.lib
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/lib/swscale-5.def:
--------------------------------------------------------------------------------
1 | EXPORTS
2 | sws_addVec
3 | sws_allocVec
4 | sws_alloc_context
5 | sws_alloc_set_opts
6 | sws_cloneVec
7 | sws_convVec
8 | sws_convertPalette8ToPacked24
9 | sws_convertPalette8ToPacked32
10 | sws_freeContext
11 | sws_freeFilter
12 | sws_freeVec
13 | sws_getCachedContext
14 | sws_getCoefficients
15 | sws_getColorspaceDetails
16 | sws_getConstVec
17 | sws_getContext
18 | sws_getDefaultFilter
19 | sws_getGaussianVec
20 | sws_getIdentityVec
21 | sws_get_class
22 | sws_init_context
23 | sws_isSupportedEndiannessConversion
24 | sws_isSupportedInput
25 | sws_isSupportedOutput
26 | sws_normalizeVec
27 | sws_printVec2
28 | sws_scale
29 | sws_scaleVec
30 | sws_setColorspaceDetails
31 | sws_shiftVec
32 | sws_subVec
33 | swscale_configuration
34 | swscale_license
35 | swscale_version
36 |
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/lib/swscale.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ffmpeg/lib/swscale.lib
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/shared/avcodec-58.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ffmpeg/shared/avcodec-58.dll
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/shared/avdevice-58.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ffmpeg/shared/avdevice-58.dll
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/shared/avfilter-7.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ffmpeg/shared/avfilter-7.dll
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/shared/avformat-58.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ffmpeg/shared/avformat-58.dll
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/shared/avutil-56.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ffmpeg/shared/avutil-56.dll
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/shared/ffmpeg.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ffmpeg/shared/ffmpeg.exe
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/shared/ffplay.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ffmpeg/shared/ffplay.exe
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/shared/ffprobe.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ffmpeg/shared/ffprobe.exe
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/shared/postproc-55.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ffmpeg/shared/postproc-55.dll
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/shared/swresample-3.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ffmpeg/shared/swresample-3.dll
--------------------------------------------------------------------------------
/ThirdParty/ffmpeg/shared/swscale-5.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/ffmpeg/shared/swscale-5.dll
--------------------------------------------------------------------------------
/ThirdParty/libopusenc/AUTHORS:
--------------------------------------------------------------------------------
1 | Jean-Marc Valin
2 | Timothy B. Terriberry
3 | Ralph Giles
4 |
--------------------------------------------------------------------------------
/ThirdParty/libopusenc/win32/config.h:
--------------------------------------------------------------------------------
1 | #ifndef CONFIG_H
2 | #define CONFIG_H
3 |
4 | #define OPE_BUILD 1
5 | #define PACKAGE_NAME "dwa"
6 | #define PACKAGE_VERSION "dwadaw"
7 | #endif /* CONFIG_H */
8 |
--------------------------------------------------------------------------------
/ThirdParty/libopusenc/win32/opusenc/.vs/opusenc/v14/.suo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/libopusenc/win32/opusenc/.vs/opusenc/v14/.suo
--------------------------------------------------------------------------------
/ThirdParty/libopusenc/win32/opusenc/Debug/opusenc.idb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/libopusenc/win32/opusenc/Debug/opusenc.idb
--------------------------------------------------------------------------------
/ThirdParty/libopusenc/win32/opusenc/Debug/opusenc.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/libopusenc/win32/opusenc/Debug/opusenc.lib
--------------------------------------------------------------------------------
/ThirdParty/libopusenc/win32/opusenc/Debug/opusenc.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/libopusenc/win32/opusenc/Debug/opusenc.pdb
--------------------------------------------------------------------------------
/ThirdParty/libopusenc/win32/opusenc/Release/opusenc.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/libopusenc/win32/opusenc/Release/opusenc.lib
--------------------------------------------------------------------------------
/ThirdParty/loopback/common.h:
--------------------------------------------------------------------------------
1 | // common.h
2 |
3 | #include
4 | #include
5 | #include
6 | #include
7 | #include
8 | #include
9 | #include
10 |
11 | #include "log.h"
12 | #include "cleanup.h"
13 | #include "prefs.h"
14 | #include "loopback-capture.h"
15 |
--------------------------------------------------------------------------------
/ThirdParty/loopback/guid.cpp:
--------------------------------------------------------------------------------
1 | // guid.cpp
2 |
3 | #include
4 | #include "common.h"
--------------------------------------------------------------------------------
/ThirdParty/loopback/log.h:
--------------------------------------------------------------------------------
1 | // log.h
2 |
3 | #define LOG(format, ...) wprintf(format L"\n", __VA_ARGS__)
4 | #define ERR(format, ...) LOG(L"Error: " format, __VA_ARGS__)
5 |
--------------------------------------------------------------------------------
/ThirdParty/loopback/loopback-capture.h:
--------------------------------------------------------------------------------
1 | // loopback-capture.h
2 |
3 | // call CreateThread on this function
4 | // feed it the address of a LoopbackCaptureThreadFunctionArguments
5 | // it will capture via loopback from the IMMDevice
6 | // and dump output to the HMMIO
7 | // until the stop event is set
8 | // any failures will be propagated back via hr
9 |
10 | struct LoopbackCaptureThreadFunctionArguments {
11 | IMMDevice *pMMDevice;
12 | bool bInt16;
13 | HMMIO hFile;
14 | HANDLE hStartedEvent;
15 | HANDLE hStopEvent;
16 | UINT32 nFrames;
17 | HRESULT hr;
18 | };
19 |
20 | DWORD WINAPI LoopbackCaptureThreadFunction(LPVOID pContext);
21 |
--------------------------------------------------------------------------------
/ThirdParty/loopback/prefs.h:
--------------------------------------------------------------------------------
1 | // prefs.h
2 |
3 | class CPrefs {
4 | public:
5 | IMMDevice *m_pMMDevice;
6 | HMMIO m_hFile;
7 | bool m_bInt16;
8 | PWAVEFORMATEX m_pwfx;
9 | LPCWSTR m_szFilename;
10 |
11 | // set hr to S_FALSE to abort but return success
12 | CPrefs(int argc, LPCWSTR argv[], HRESULT &hr);
13 | ~CPrefs();
14 |
15 | };
16 |
--------------------------------------------------------------------------------
/ThirdParty/opus-1.2.1/AUTHORS:
--------------------------------------------------------------------------------
1 | Jean-Marc Valin (jmvalin@jmvalin.ca)
2 | Koen Vos (koenvos74@gmail.com)
3 | Timothy Terriberry (tterribe@xiph.org)
4 | Karsten Vandborg Sorensen (karsten.vandborg.sorensen@skype.net)
5 | Soren Skak Jensen (ssjensen@gn.com)
6 | Gregory Maxwell (greg@xiph.org)
7 |
--------------------------------------------------------------------------------
/ThirdParty/opus-1.2.1/COPYING:
--------------------------------------------------------------------------------
1 | Copyright 2001-2011 Xiph.Org, Skype Limited, Octasic,
2 | Jean-Marc Valin, Timothy B. Terriberry,
3 | CSIRO, Gregory Maxwell, Mark Borgerding,
4 | Erik de Castro Lopo
5 |
6 | Redistribution and use in source and binary forms, with or without
7 | modification, are permitted provided that the following conditions
8 | are met:
9 |
10 | - Redistributions of source code must retain the above copyright
11 | notice, this list of conditions and the following disclaimer.
12 |
13 | - Redistributions in binary form must reproduce the above copyright
14 | notice, this list of conditions and the following disclaimer in the
15 | documentation and/or other materials provided with the distribution.
16 |
17 | - Neither the name of Internet Society, IETF or IETF Trust, nor the
18 | names of specific contributors, may be used to endorse or promote
19 | products derived from this software without specific prior written
20 | permission.
21 |
22 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23 | ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
26 | OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
27 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
28 | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
29 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
30 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
31 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
32 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 |
34 | Opus is subject to the royalty-free patent licenses which are
35 | specified at:
36 |
37 | Xiph.Org Foundation:
38 | https://datatracker.ietf.org/ipr/1524/
39 |
40 | Microsoft Corporation:
41 | https://datatracker.ietf.org/ipr/1914/
42 |
43 | Broadcom Corporation:
44 | https://datatracker.ietf.org/ipr/1526/
45 |
--------------------------------------------------------------------------------
/ThirdParty/opus-1.2.1/src/mlp.h:
--------------------------------------------------------------------------------
1 | /* Copyright (c) 2008-2011 Octasic Inc.
2 | Written by Jean-Marc Valin */
3 | /*
4 | Redistribution and use in source and binary forms, with or without
5 | modification, are permitted provided that the following conditions
6 | are met:
7 |
8 | - Redistributions of source code must retain the above copyright
9 | notice, this list of conditions and the following disclaimer.
10 |
11 | - Redistributions in binary form must reproduce the above copyright
12 | notice, this list of conditions and the following disclaimer in the
13 | documentation and/or other materials provided with the distribution.
14 |
15 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
16 | ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
17 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
18 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
19 | CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
20 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
21 | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
22 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
23 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
24 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 | */
27 |
28 | #ifndef _MLP_H_
29 | #define _MLP_H_
30 |
31 | #include "arch.h"
32 |
33 | typedef struct {
34 | int layers;
35 | const int *topo;
36 | const float *weights;
37 | } MLP;
38 |
39 | extern const MLP net;
40 |
41 | void mlp_process(const MLP *m, const float *in, float *out);
42 |
43 | #endif /* _MLP_H_ */
44 |
--------------------------------------------------------------------------------
/ThirdParty/opus-1.2.1/win32/VS2015/.vs/opus/v14/.suo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/opus-1.2.1/win32/VS2015/.vs/opus/v14/.suo
--------------------------------------------------------------------------------
/ThirdParty/opus-1.2.1/win32/VS2015/Win32/Debug/opus.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/opus-1.2.1/win32/VS2015/Win32/Debug/opus.lib
--------------------------------------------------------------------------------
/ThirdParty/opus-1.2.1/win32/VS2015/Win32/Debug/opus.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/opus-1.2.1/win32/VS2015/Win32/Debug/opus.pdb
--------------------------------------------------------------------------------
/ThirdParty/opus-1.2.1/win32/VS2015/Win32/Release/opus.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/opus-1.2.1/win32/VS2015/Win32/Release/opus.lib
--------------------------------------------------------------------------------
/ThirdParty/opusfile-0.9/AUTHORS:
--------------------------------------------------------------------------------
1 | Timothy B. Terriberry
2 | Ralph Giles
3 | Christopher "Monty" Montgomery (original libvorbisfile)
4 | Gregory Maxwell (noise shaping dithering)
5 | nu774 (original winsock support)
6 |
--------------------------------------------------------------------------------
/ThirdParty/opusfile-0.9/src/internal.c:
--------------------------------------------------------------------------------
1 | /********************************************************************
2 | * *
3 | * THIS FILE IS PART OF THE libopusfile SOFTWARE CODEC SOURCE CODE. *
4 | * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
5 | * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
6 | * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
7 | * *
8 | * THE libopusfile SOURCE CODE IS (C) COPYRIGHT 2012 *
9 | * by the Xiph.Org Foundation and contributors http://www.xiph.org/ *
10 | * *
11 | ********************************************************************/
12 | #ifdef HAVE_CONFIG_H
13 | #include "config.h"
14 | #endif
15 |
16 | #include "internal.h"
17 |
18 | #if defined(OP_ENABLE_ASSERTIONS)
19 | void op_fatal_impl(const char *_str,const char *_file,int _line){
20 | fprintf(stderr,"Fatal (internal) error in %s, line %i: %s\n",
21 | _file,_line,_str);
22 | abort();
23 | }
24 | #endif
25 |
26 | /*A version of strncasecmp() that is guaranteed to only ignore the case of
27 | ASCII characters.*/
28 | int op_strncasecmp(const char *_a,const char *_b,int _n){
29 | int i;
30 | for(i=0;i<_n;i++){
31 | int a;
32 | int b;
33 | int d;
34 | a=_a[i];
35 | b=_b[i];
36 | if(a>='a'&&a<='z')a-='a'-'A';
37 | if(b>='a'&&b<='z')b-='a'-'A';
38 | d=a-b;
39 | if(d)return d;
40 | }
41 | return 0;
42 | }
43 |
--------------------------------------------------------------------------------
/ThirdParty/opusfile-0.9/win32/VS2015/.vs/opusfile/v14/.suo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/opusfile-0.9/win32/VS2015/.vs/opusfile/v14/.suo
--------------------------------------------------------------------------------
/ThirdParty/opusfile-0.9/win32/VS2015/Win32/Debug/opusfile.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/opusfile-0.9/win32/VS2015/Win32/Debug/opusfile.lib
--------------------------------------------------------------------------------
/ThirdParty/opusfile-0.9/win32/VS2015/Win32/Debug/opusfile.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/opusfile-0.9/win32/VS2015/Win32/Debug/opusfile.pdb
--------------------------------------------------------------------------------
/ThirdParty/opusfile-0.9/win32/VS2015/Win32/Release-NoHTTP/opusfile.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/opusfile-0.9/win32/VS2015/Win32/Release-NoHTTP/opusfile.lib
--------------------------------------------------------------------------------
/ThirdParty/opusfile-0.9/win32/VS2015/Win32/Release/opusfile.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/opusfile-0.9/win32/VS2015/Win32/Release/opusfile.lib
--------------------------------------------------------------------------------
/ThirdParty/screen_capture_lite - Copy/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017 Scott
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/ThirdParty/screen_capture_lite - Copy/include/ios/CGFrameProcessor.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "SCCommon.h"
3 | #include
4 |
5 | namespace SL {
6 | namespace Screen_Capture {
7 | class CGFrameProcessor: public BaseFrameProcessor {
8 | Monitor SelectedMonitor;
9 | public:
10 |
11 | DUPL_RETURN Init(std::shared_ptr data, Monitor& monitor);
12 | DUPL_RETURN ProcessFrame(const Monitor& curentmonitorinfo);
13 | DUPL_RETURN Init(std::shared_ptr data, Window& window);
14 | DUPL_RETURN ProcessFrame(const Window& window);
15 | };
16 |
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ThirdParty/screen_capture_lite - Copy/include/ios/NSMouseCapture.h:
--------------------------------------------------------------------------------
1 | //
2 | // Header.h
3 | // Screen_Capture
4 | //
5 | // Created by scott lee on 1/11/17.
6 | //
7 | //
8 |
9 | #ifndef Header_h
10 | #define Header_h
11 | #ifdef __cplusplus
12 | extern "C" {
13 | #endif
14 | void SLScreen_Capture_InitMouseCapture();
15 | CGImageRef SLScreen_Capture_GetCurrentMouseImage();
16 | #ifdef __cplusplus
17 | }
18 | #endif
19 |
20 |
21 | #endif /* Header_h */
22 |
--------------------------------------------------------------------------------
/ThirdParty/screen_capture_lite - Copy/include/ios/NSMouseProcessor.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "SCCommon.h"
3 | #include
4 | #include "TargetConditionals.h"
5 | #include
6 |
7 | namespace SL {
8 | namespace Screen_Capture {
9 |
10 | class NSMouseProcessor: public BaseFrameProcessor {
11 | int Last_x =0;
12 | int Last_y =0;
13 |
14 | public:
15 | const int MaxCursurorSize=32;
16 | DUPL_RETURN Init(std::shared_ptr data);
17 | DUPL_RETURN ProcessFrame();
18 |
19 | };
20 |
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/ThirdParty/screen_capture_lite - Copy/include/linux/X11FrameProcessor.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "SCCommon.h"
3 | #include
4 | #include
5 | #include
6 | #include
7 |
8 | namespace SL {
9 | namespace Screen_Capture {
10 |
11 | class X11FrameProcessor: public BaseFrameProcessor {
12 |
13 | Display* SelectedDisplay=nullptr;
14 | XID SelectedWindow = 0;
15 | XImage* Image=nullptr;
16 | std::unique_ptr ShmInfo;
17 | Monitor SelectedMonitor;
18 |
19 | public:
20 | X11FrameProcessor();
21 | ~X11FrameProcessor();
22 | DUPL_RETURN Init(std::shared_ptr data, Monitor& monitor);
23 | DUPL_RETURN ProcessFrame(const Monitor& currentmonitorinfo);
24 | DUPL_RETURN Init(std::shared_ptr data, const Window& selectedwindow);
25 | DUPL_RETURN ProcessFrame(Window& selectedwindow);
26 | };
27 | }
28 | }
--------------------------------------------------------------------------------
/ThirdParty/screen_capture_lite - Copy/include/linux/X11MouseProcessor.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "SCCommon.h"
3 | #include
4 | #include
5 | #include
6 |
7 | namespace SL {
8 | namespace Screen_Capture {
9 |
10 | class X11MouseProcessor: public BaseFrameProcessor {
11 | Display* SelectedDisplay=nullptr;
12 | XID RootWindow;
13 | int Last_x = 0;
14 | int Last_y =0;
15 |
16 | public:
17 | const int MaxCursurorSize =32;
18 | X11MouseProcessor();
19 | ~X11MouseProcessor();
20 | DUPL_RETURN Init(std::shared_ptr data);
21 | DUPL_RETURN ProcessFrame();
22 |
23 | };
24 |
25 | }
26 | }
--------------------------------------------------------------------------------
/ThirdParty/screen_capture_lite - Copy/include/windows/DXFrameProcessor.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "SCCommon.h"
3 | #include
4 |
5 | #define NOMINMAX
6 | #define WIN32_LEAN_AND_MEAN
7 | #include
8 | #include
9 | #include
10 | #include
11 |
12 | #pragma comment(lib,"dxgi.lib")
13 | #pragma comment(lib,"d3d11.lib")
14 |
15 | namespace SL {
16 | namespace Screen_Capture {
17 | class DXFrameProcessor: public BaseFrameProcessor {
18 | Microsoft::WRL::ComPtr Device;
19 | Microsoft::WRL::ComPtr DeviceContext;
20 | Microsoft::WRL::ComPtr StagingSurf;
21 |
22 | Microsoft::WRL::ComPtr OutputDuplication;
23 | DXGI_OUTPUT_DESC OutputDesc;
24 | UINT Output;
25 | std::vector MetaDataBuffer;
26 | Monitor SelectedMonitor;
27 |
28 | public:
29 | DUPL_RETURN Init(std::shared_ptr data, Monitor& monitor);
30 | DUPL_RETURN ProcessFrame(const Monitor& currentmonitorinfo);
31 |
32 | };
33 |
34 | }
35 | }
--------------------------------------------------------------------------------
/ThirdParty/screen_capture_lite - Copy/include/windows/GDIFrameProcessor.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "ScreenCapture.h"
3 | #include "SCCommon.h"
4 | #include
5 | #include "GDIHelpers.h"
6 |
7 | namespace SL {
8 | namespace Screen_Capture {
9 |
10 | class GDIFrameProcessor : public BaseFrameProcessor {
11 | HDCWrapper MonitorDC;
12 | HDCWrapper CaptureDC;
13 | HBITMAPWrapper CaptureBMP;
14 | Monitor SelectedMonitor;
15 | HWND SelectedWindow;
16 |
17 | std::shared_ptr Data;
18 | public:
19 | DUPL_RETURN Init(std::shared_ptr data, const Monitor& monitor);
20 | DUPL_RETURN ProcessFrame(const Monitor& currentmonitorinfo);
21 | DUPL_RETURN Init(std::shared_ptr data, const Window& selectedwindow);
22 | DUPL_RETURN ProcessFrame(Window& selectedwindow);
23 | };
24 | }
25 | }
--------------------------------------------------------------------------------
/ThirdParty/screen_capture_lite - Copy/include/windows/GDIHelpers.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #define NOMINMAX
4 | #define WIN32_LEAN_AND_MEAN
5 | #include
6 | #include
7 | namespace SL {
8 | namespace Screen_Capture {
9 | class HDCWrapper {
10 | public:
11 | HDCWrapper() : DC(nullptr) {}
12 | ~HDCWrapper() { if (DC != nullptr) { DeleteDC(DC); } }
13 | HDC DC;
14 | };
15 | class HBITMAPWrapper {
16 | public:
17 | HBITMAPWrapper() : Bitmap(nullptr) {}
18 | ~HBITMAPWrapper() { if (Bitmap != nullptr) { DeleteObject(Bitmap); } }
19 | HBITMAP Bitmap;
20 | };
21 | struct WindowDimensions {
22 | RECT ClientRect;
23 | RECT ClientBorder;
24 | WINDOWPLACEMENT Placement;
25 | };
26 |
27 | inline WindowDimensions GetWindowRect(HWND hwnd) {
28 | WindowDimensions ret = { 0 };
29 | GetWindowRect(hwnd, &ret.ClientRect);
30 | ret.Placement.length = sizeof(WINDOWPLACEMENT);
31 | GetWindowPlacement(hwnd, &ret.Placement);
32 |
33 | RECT frame = { 0 };
34 | if (SUCCEEDED(DwmGetWindowAttribute(hwnd, DWMWA_EXTENDED_FRAME_BOUNDS, &frame, sizeof(frame)))) {
35 |
36 | ret.ClientBorder.left = frame.left - ret.ClientRect.left;
37 | ret.ClientBorder.top = frame.top - ret.ClientRect.top;
38 | ret.ClientBorder.right = ret.ClientRect.right - frame.right;
39 | ret.ClientBorder.bottom = ret.ClientRect.bottom - frame.bottom;
40 | }
41 |
42 | ret.ClientRect.bottom -= ret.ClientBorder.bottom;
43 | ret.ClientRect.top += ret.ClientBorder.top;
44 | ret.ClientRect.left += ret.ClientBorder.left;
45 | ret.ClientRect.right -= ret.ClientBorder.right;
46 |
47 | return ret;
48 | }
49 | }
50 | }
--------------------------------------------------------------------------------
/ThirdParty/screen_capture_lite - Copy/include/windows/GDIMouseProcessor.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "ScreenCapture.h"
3 | #include "SCCommon.h"
4 | #include
5 | #include "GDIHelpers.h"
6 |
7 | namespace SL {
8 | namespace Screen_Capture {
9 |
10 | class GDIMouseProcessor : public BaseFrameProcessor {
11 |
12 | HDCWrapper MonitorDC;
13 | HDCWrapper CaptureDC;
14 | std::shared_ptr Data;
15 |
16 | int Last_x = 0;
17 | int Last_y = 0;
18 |
19 | public:
20 |
21 | const int MaxCursurorSize = 32;
22 | DUPL_RETURN Init(std::shared_ptr data);
23 | DUPL_RETURN ProcessFrame();
24 |
25 |
26 | };
27 | }
28 | }
--------------------------------------------------------------------------------
/ThirdParty/screen_capture_lite - Copy/include/windows/GDIWindowProcessor.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "ScreenCapture.h"
3 | #include "SCCommon.h"
4 | #include
5 | #include "GDIHelpers.h"
6 |
7 | namespace SL {
8 | namespace Screen_Capture {
9 |
10 | class GDIWindowProcessor : public BaseFrameProcessor {
11 | HDCWrapper MonitorDC;
12 | HDCWrapper CaptureDC;
13 | HBITMAPWrapper CaptureBMP;
14 | Window Window_;
15 | HWND SelectedWindow;
16 | std::shared_ptr Data;
17 | public:
18 | DUPL_RETURN Init(std::shared_ptr data, Window selectedwindow);
19 | DUPL_RETURN ProcessFrame(Window selectedwindow);
20 |
21 | };
22 | }
23 | }
--------------------------------------------------------------------------------
/ThirdParty/screen_capture_lite - Copy/src/ThreadManager.cpp:
--------------------------------------------------------------------------------
1 | #include "ThreadManager.h"
2 | #include
3 | #include
4 |
5 | SL::Screen_Capture::ThreadManager::ThreadManager()
6 | {
7 | }
8 | SL::Screen_Capture::ThreadManager::~ThreadManager()
9 | {
10 | Join();
11 | }
12 |
13 | void SL::Screen_Capture::ThreadManager::Init(const std::shared_ptr& data)
14 | {
15 | assert(m_ThreadHandles.empty());
16 |
17 | if (data->ScreenCaptureData.getThingsToWatch) {
18 | auto monitors = data->ScreenCaptureData.getThingsToWatch();
19 | auto mons = GetMonitors();
20 | for (auto& m : monitors) {
21 | assert(isMonitorInsideBounds(mons, m));
22 | }
23 |
24 | m_ThreadHandles.resize(monitors.size() + (data->ScreenCaptureData.OnMouseChanged ? 1 : 0)); // add another thread for mouse capturing if needed
25 |
26 | for (size_t i = 0; i < monitors.size(); ++i) {
27 | m_ThreadHandles[i] = std::thread(&SL::Screen_Capture::RunCaptureMonitor, data, monitors[i]);
28 | }
29 | if (data->ScreenCaptureData.OnMouseChanged) {
30 | m_ThreadHandles.back() = std::thread([data] {
31 | SL::Screen_Capture::RunCaptureMouse(data);
32 | });
33 | }
34 |
35 | }
36 | else if (data->WindowCaptureData.getThingsToWatch) {
37 | auto windows = data->WindowCaptureData.getThingsToWatch();
38 | m_ThreadHandles.resize(windows.size() + (data->WindowCaptureData.OnMouseChanged ? 1 : 0)); // add another thread for mouse capturing if needed
39 | for (size_t i = 0; i < windows.size(); ++i) {
40 | m_ThreadHandles[i] = std::thread(&SL::Screen_Capture::RunCaptureWindow, data, windows[i]);
41 | }
42 | if (data->WindowCaptureData.OnMouseChanged) {
43 | m_ThreadHandles.back() = std::thread([data] {
44 | SL::Screen_Capture::RunCaptureMouse(data);
45 | });
46 | }
47 | }
48 | }
49 |
50 | void SL::Screen_Capture::ThreadManager::Join()
51 | {
52 | for (auto& t : m_ThreadHandles) {
53 | if (t.joinable()) {
54 | if (t.get_id() == std::this_thread::get_id()) {
55 | t.detach();// will run to completion
56 | }
57 | else {
58 | t.join();
59 | }
60 | }
61 | }
62 | m_ThreadHandles.clear();
63 | }
64 |
--------------------------------------------------------------------------------
/ThirdParty/screen_capture_lite - Copy/src/ios/GetMonitors.cpp:
--------------------------------------------------------------------------------
1 | #include "ScreenCapture.h"
2 | #include "SCCommon.h"
3 | #include
4 |
5 |
6 | namespace SL{
7 | namespace Screen_Capture{
8 |
9 | std::vector GetMonitors() {
10 | std::vector ret;
11 | std::vector displays;
12 | CGDisplayCount count=0;
13 | //get count
14 | CGGetActiveDisplayList(0, 0, &count);
15 | displays.resize(count);
16 |
17 | CGGetActiveDisplayList(count, displays.data(), &count);
18 | for(auto i = 0; i < count; i++) {
19 | //only include non-mirrored displays
20 | if(CGDisplayMirrorsDisplay(displays[i]) == kCGNullDirectDisplay){
21 |
22 | auto dismode =CGDisplayCopyDisplayMode(displays[i]);
23 |
24 | auto width = CGDisplayModeGetPixelWidth(dismode);
25 | auto height = CGDisplayModeGetPixelHeight(dismode);
26 | CGDisplayModeRelease(dismode);
27 | auto r = CGDisplayBounds(displays[i]);
28 | auto scale = static_cast(width)/static_cast(r.size.width);
29 | auto name = std::string("Monitor ") + std::to_string(displays[i]);
30 | ret.push_back(CreateMonitor(i, displays[i],height,width, int(r.origin.x), int(r.origin.y), name, scale));
31 | }
32 | }
33 | return ret;
34 |
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/ThirdParty/screen_capture_lite - Copy/src/ios/NSMouseCapture.m:
--------------------------------------------------------------------------------
1 | //
2 | // NSMouseCapture.m
3 | // Screen_Capture
4 | //
5 | // Created by scott lee on 1/11/17.
6 | //
7 | //
8 |
9 | #import
10 | #import
11 | #import "NSMouseCapture.h"
12 |
13 | void SLScreen_Capture_InitMouseCapture(){
14 | [NSApplication sharedApplication];
15 | }
16 | CGImageRef SLScreen_Capture_GetCurrentMouseImage(){
17 | CGImageRef img=NULL;
18 |
19 | @autoreleasepool {
20 | NSCursor *cur = [NSCursor currentSystemCursor];
21 | if(cur==nil) return img;
22 | NSImage *overlay = [cur image];
23 | CGImageSourceRef source = CGImageSourceCreateWithData((CFDataRef)[overlay TIFFRepresentation], NULL);
24 | img = CGImageSourceCreateImageAtIndex(source, 0, NULL);
25 | CFRelease(source);
26 | }
27 |
28 | return img;
29 | }
--------------------------------------------------------------------------------
/ThirdParty/screen_capture_lite - Copy/src/ios/ThreadRunner.cpp:
--------------------------------------------------------------------------------
1 | #include "ScreenCapture.h"
2 | #include "ThreadManager.h"
3 | #include "CGFrameProcessor.h"
4 | #include "NSMouseProcessor.h"
5 |
6 | namespace SL{
7 | namespace Screen_Capture{
8 | void RunCaptureMouse(std::shared_ptr data) {
9 | TryCaptureMouse(data);
10 | }
11 | void RunCaptureMonitor(std::shared_ptr data, Monitor monitor){
12 | TryCaptureMonitor(data, monitor);
13 | }
14 | void RunCaptureWindow(std::shared_ptr data, Window window){
15 | TryCaptureWindow(data, window);
16 | }
17 | }
18 | }
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/ThirdParty/screen_capture_lite - Copy/src/linux/GetMonitors.cpp:
--------------------------------------------------------------------------------
1 | #include "ScreenCapture.h"
2 | #include "SCCommon.h"
3 | #include
4 | #include
5 |
6 | namespace SL
7 | {
8 | namespace Screen_Capture
9 | {
10 |
11 | std::vector GetMonitors()
12 | {
13 | std::vector ret;
14 |
15 | Display* display = XOpenDisplay(NULL);
16 | int nmonitors = 0;
17 | XineramaScreenInfo* screen = XineramaQueryScreens(display, &nmonitors);
18 | ret.reserve(nmonitors);
19 |
20 | for(auto i = 0; i < nmonitors; i++) {
21 |
22 | auto name = std::string("Display ") + std::to_string(i);
23 | ret.push_back(CreateMonitor(
24 | i, screen[i].screen_number, screen[i].height, screen[i].width, screen[i].x_org, screen[i].y_org, name, 1.0f));
25 | }
26 | XFree(screen);
27 |
28 | XCloseDisplay(display);
29 | return ret;
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/ThirdParty/screen_capture_lite - Copy/src/linux/GetWindows.cpp:
--------------------------------------------------------------------------------
1 | #include "ScreenCapture.h"
2 | #include "SCCommon.h"
3 | #include
4 | #include
5 | #include
6 |
7 | namespace SL
8 | {
9 | namespace Screen_Capture
10 | {
11 |
12 | void AddWindow(Display* display, XID& window, std::vector& wnd)
13 | {
14 | std::string name;
15 | char* n = NULL;
16 | if(XFetchName(display, window, &n) > 0) {
17 | name = n;
18 | XFree(n);
19 | }
20 | Window w;
21 | w.Handle = reinterpret_cast(window);
22 | XWindowAttributes wndattr;
23 | XGetWindowAttributes(display, window, &wndattr);
24 | w.Position = Point{ wndattr.x, wndattr.y };
25 | w.Size = Point{ wndattr.width, wndattr.height };
26 |
27 | memcpy(w.Name, name.c_str(), name.size() + 1);
28 | wnd.push_back(w);
29 | }
30 |
31 | std::vector GetWindows()
32 | {
33 | auto* display = XOpenDisplay(NULL);
34 | Atom a = XInternAtom(display, "_NET_CLIENT_LIST", true);
35 | Atom actualType;
36 | int format;
37 | unsigned long numItems, bytesAfter;
38 | unsigned char* data = 0;
39 | int status = XGetWindowProperty(display,
40 | XDefaultRootWindow(display),
41 | a,
42 | 0L,
43 | (~0L),
44 | false,
45 | AnyPropertyType,
46 | &actualType,
47 | &format,
48 | &numItems,
49 | &bytesAfter,
50 | &data);
51 | std::vector ret;
52 | if(status >= Success && numItems) {
53 | auto array = (XID*)data;
54 | for(decltype(numItems) k = 0; k < numItems; k++) {
55 | auto w = array[k];
56 | AddWindow(display, w, ret);
57 | }
58 | XFree(data);
59 | }
60 | XCloseDisplay(display);
61 | return ret;
62 | }
63 | }
64 | }
--------------------------------------------------------------------------------
/ThirdParty/screen_capture_lite - Copy/src/linux/ThreadRunner.cpp:
--------------------------------------------------------------------------------
1 | #include "ScreenCapture.h"
2 | #include "ThreadManager.h"
3 | #include "X11FrameProcessor.h"
4 | #include "X11MouseProcessor.h"
5 |
6 | namespace SL{
7 | namespace Screen_Capture{
8 | void RunCaptureMouse(std::shared_ptr data) {
9 | TryCaptureMouse(data);
10 | }
11 | void RunCaptureMonitor(std::shared_ptr data, Monitor monitor){
12 | TryCaptureMonitor(data, monitor);
13 | }
14 | void RunCaptureWindow(std::shared_ptr data, Window window){
15 | TryCaptureWindow(data, window);
16 | }
17 | }
18 | }
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/ThirdParty/screen_capture_lite - Copy/src/windows/GDIWindowProcessor.cpp:
--------------------------------------------------------------------------------
1 | #include "GDIWindowProcessor.h"
2 |
3 | namespace SL {
4 | namespace Screen_Capture {
5 |
6 |
7 |
8 |
9 |
10 | }
11 | }
--------------------------------------------------------------------------------
/ThirdParty/screen_capture_lite - Copy/src/windows/GetMonitors.cpp:
--------------------------------------------------------------------------------
1 | #include "SCCommon.h"
2 | #include "ScreenCapture.h"
3 | #define NOMINMAX
4 | #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
5 | #include
6 |
7 | namespace SL {
8 | namespace Screen_Capture {
9 |
10 | std::vector GetMonitors()
11 | {
12 | std::vector ret;
13 | DISPLAY_DEVICEA dd;
14 | ZeroMemory(&dd, sizeof(dd));
15 | dd.cb = sizeof(dd);
16 | for (auto i = 0; EnumDisplayDevicesA(NULL, i, &dd, 0); i++) {
17 | // monitor must be attached to desktop and not a mirroring device
18 | if ((dd.StateFlags & DISPLAY_DEVICE_ATTACHED_TO_DESKTOP) & !(dd.StateFlags & DISPLAY_DEVICE_MIRRORING_DRIVER)) {
19 | DEVMODEA devMode;
20 | devMode.dmSize = sizeof(devMode);
21 | EnumDisplaySettingsA(dd.DeviceName, ENUM_CURRENT_SETTINGS, &devMode);
22 | std::string name = dd.DeviceName;
23 | auto mon = CreateDCA(dd.DeviceName, NULL, NULL, NULL);
24 | auto xdpi = GetDeviceCaps(mon, LOGPIXELSX);
25 | DeleteDC(mon);
26 | auto scale = 1.0f;
27 | switch (xdpi) {
28 | case 96:
29 | scale = 1.0f;
30 | break;
31 | case 120:
32 | scale = 1.25f;
33 | break;
34 | case 144:
35 | scale = 1.5f;
36 | break;
37 | case 192:
38 | scale = 2.0f;
39 | break;
40 | default:
41 | scale = 1.0f;
42 | break;
43 | }
44 | ret.push_back(
45 | CreateMonitor(i, i, devMode.dmPelsHeight, devMode.dmPelsWidth, devMode.dmPosition.x, devMode.dmPosition.y, name, scale));
46 | }
47 | }
48 | return ret;
49 | }
50 | } // namespace Screen_Capture
51 | } // namespace SL
--------------------------------------------------------------------------------
/ThirdParty/screen_capture_lite - Copy/src/windows/GetWindows.cpp:
--------------------------------------------------------------------------------
1 | #include "GDIHelpers.h"
2 | #include "SCCommon.h"
3 | #include "ScreenCapture.h"
4 |
5 | #define NOMINMAX
6 | #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
7 | #include
8 |
9 | namespace SL {
10 | namespace Screen_Capture {
11 |
12 | struct srch {
13 | std::vector Found;
14 | };
15 | BOOL CALLBACK EnumWindowsProc(_In_ HWND hwnd, _In_ LPARAM lParam)
16 | {
17 | Window w;
18 | char buffer[sizeof(w.Name)];
19 | GetWindowTextA(hwnd, buffer, sizeof(buffer));
20 | srch *s = (srch *)lParam;
21 | std::string name = buffer;
22 | w.Handle = reinterpret_cast(hwnd);
23 | auto windowrect = SL::Screen_Capture::GetWindowRect(hwnd);
24 | w.Position.x = windowrect.ClientRect.left;
25 | w.Position.y = windowrect.ClientRect.top;
26 | w.Size.x = windowrect.ClientRect.right - windowrect.ClientRect.left;
27 | w.Size.y = windowrect.ClientRect.bottom - windowrect.ClientRect.top;
28 | memcpy(w.Name, name.c_str(), name.size() + 1);
29 | s->Found.push_back(w);
30 | return TRUE;
31 | }
32 |
33 | std::vector GetWindows()
34 | {
35 | srch s;
36 | EnumWindows(EnumWindowsProc, (LPARAM)&s);
37 | return s.Found;
38 | }
39 |
40 | } // namespace Screen_Capture
41 | } // namespace SL
--------------------------------------------------------------------------------
/ThirdParty/x360ce.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/namkazt/PinBox/6104d3e5a0924b1c134e8dd2db70d816b33d1fbe/ThirdParty/x360ce.exe
--------------------------------------------------------------------------------
/_config.yml:
--------------------------------------------------------------------------------
1 | theme: jekyll-theme-minimal
--------------------------------------------------------------------------------