diff options
Diffstat (limited to 'games/moonlight-embedded/files')
9 files changed, 19 insertions, 195 deletions
diff --git a/games/moonlight-embedded/files/patch-CMakeLists.txt b/games/moonlight-embedded/files/patch-CMakeLists.txt deleted file mode 100644 index fef9d3015b15..000000000000 --- a/games/moonlight-embedded/files/patch-CMakeLists.txt +++ /dev/null @@ -1,14 +0,0 @@ ---- CMakeLists.txt.orig 2023-11-03 06:08:34 UTC -+++ CMakeLists.txt -@@ -87,6 +87,11 @@ add_executable(moonlight ${SRC_LIST}) - target_link_libraries(moonlight m) - target_link_libraries(moonlight gamestream) - -+if (CMAKE_SYSTEM_NAME MATCHES "FreeBSD") -+ set(ALSA_FOUND FALSE) -+ target_sources(moonlight PRIVATE ./src/audio/oss.c) -+endif() -+ - if (CEC_FOUND) - list(APPEND MOONLIGHT_DEFINITIONS HAVE_LIBCEC) - list(APPEND MOONLIGHT_OPTIONS CEC) diff --git a/games/moonlight-embedded/files/patch-libgamestream_CMakeLists.txt b/games/moonlight-embedded/files/patch-libgamestream_CMakeLists.txt index a758f6c03392..609280935a23 100644 --- a/games/moonlight-embedded/files/patch-libgamestream_CMakeLists.txt +++ b/games/moonlight-embedded/files/patch-libgamestream_CMakeLists.txt @@ -1,6 +1,6 @@ ---- libgamestream/CMakeLists.txt.orig 2023-11-03 06:08:34 UTC +--- libgamestream/CMakeLists.txt.orig 2024-02-20 04:01:31 UTC +++ libgamestream/CMakeLists.txt -@@ -3,7 +3,7 @@ set(SO_VERSION 4) +@@ -3,7 +3,7 @@ find_package(CURL REQUIRED) find_package(LibUUID REQUIRED) find_package(Threads REQUIRED) find_package(CURL REQUIRED) @@ -21,8 +21,8 @@ target_link_libraries(gamestream moonlight-common) set_target_properties(gamestream PROPERTIES SOVERSION ${SO_VERSION} VERSION ${PROJECT_VERSION}) -@@ -28,5 +28,3 @@ target_include_directories(moonlight-common PRIVATE .. - target_link_libraries(gamestream ${CURL_LIBRARIES} ${OPENSSL_LIBRARIES} ${EXPAT_LIBRARIES} ${AVAHI_LIBRARIES} ${LIBUUID_LIBRARIES}) +@@ -28,5 +28,3 @@ target_link_libraries(gamestream ${CMAKE_THREAD_LIBS_I + target_link_libraries(gamestream ${CURL_LIBRARIES} ${OPENSSL_LIBRARIES} ${EXPAT_LIBRARIES} ${AVAHI_LIBRARIES} ${LibUUID_LIBRARIES}) target_link_libraries(gamestream ${CMAKE_THREAD_LIBS_INIT} ${CMAKE_DL_LIBS}) - diff --git a/games/moonlight-embedded/files/patch-libgamestream_client.c b/games/moonlight-embedded/files/patch-libgamestream_client.c index 1efe5f0f8e14..175d9029755d 100644 --- a/games/moonlight-embedded/files/patch-libgamestream_client.c +++ b/games/moonlight-embedded/files/patch-libgamestream_client.c @@ -1,10 +1,9 @@ ---- libgamestream/client.c.orig 2023-11-03 06:08:34 UTC +--- libgamestream/client.c.orig 2024-02-20 04:01:31 UTC +++ libgamestream/client.c -@@ -537,7 +537,16 @@ int gs_pair(PSERVER_DATA server, char* pin) { +@@ -539,7 +539,15 @@ int gs_pair(PSERVER_DATA server, char* pin) { RAND_bytes(client_secret_data, sizeof(client_secret_data)); const ASN1_BIT_STRING *asnSignature; -+ +#ifdef __FreeBSD__ + #if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) X509_get0_signature(&asnSignature, NULL, cert); @@ -15,5 +14,5 @@ + X509_get0_signature(&asnSignature, NULL, cert); +#endif - char challenge_response[16 + SIGNATURE_LEN + sizeof(client_secret_data)]; + challenge_response = malloc(16 + asnSignature->length + sizeof(client_secret_data)); char challenge_response_hash[32]; diff --git a/games/moonlight-embedded/files/patch-libgamestream_http.c b/games/moonlight-embedded/files/patch-libgamestream_http.c deleted file mode 100644 index 112582df9d7c..000000000000 --- a/games/moonlight-embedded/files/patch-libgamestream_http.c +++ /dev/null @@ -1,12 +0,0 @@ ---- libgamestream/http.c.orig 2023-11-03 06:08:34 UTC -+++ libgamestream/http.c -@@ -73,6 +73,9 @@ int http_init(const char* keyDirectory, int logLevel) - int http_request(char* url, PHTTP_DATA data) { - curl_easy_setopt(curl, CURLOPT_WRITEDATA, data); - curl_easy_setopt(curl, CURLOPT_URL, url); -+#ifdef __FreeBSD__ -+ curl_easy_setopt(curl, CURLOPT_FORBID_REUSE, 1); -+#endif - - if (debug) - printf("Request %s\n", url); diff --git a/games/moonlight-embedded/files/patch-src_audio_audio.h b/games/moonlight-embedded/files/patch-src_audio_audio.h deleted file mode 100644 index 66625239ed63..000000000000 --- a/games/moonlight-embedded/files/patch-src_audio_audio.h +++ /dev/null @@ -1,9 +0,0 @@ ---- src/audio/audio.h.orig 2023-11-03 06:08:34 UTC -+++ src/audio/audio.h -@@ -31,3 +31,6 @@ extern AUDIO_RENDERER_CALLBACKS audio_callbacks_sdl; - extern AUDIO_RENDERER_CALLBACKS audio_callbacks_pulse; - bool audio_pulse_init(char* audio_device); - #endif -+#ifdef __FreeBSD__ -+extern AUDIO_RENDERER_CALLBACKS audio_callbacks_oss; -+#endif diff --git a/games/moonlight-embedded/files/patch-src_audio_oss.c b/games/moonlight-embedded/files/patch-src_audio_oss.c deleted file mode 100644 index ddd61c493d8a..000000000000 --- a/games/moonlight-embedded/files/patch-src_audio_oss.c +++ /dev/null @@ -1,108 +0,0 @@ ---- src/audio/oss.c.orig 2024-01-01 05:31:28 UTC -+++ src/audio/oss.c -@@ -0,0 +1,105 @@ -+/* -+ * This file is part of Moonlight Embedded. -+ * -+ * Copyright (C) 2015-2017 Iwan Timmer -+ * -+ * Moonlight is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * Moonlight is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with Moonlight; if not, see <http://www.gnu.org/licenses/>. -+ */ -+ -+#ifdef __FreeBSD__ -+#include <sys/soundcard.h> -+#include <sys/ioctl.h> -+#include "audio.h" -+ -+#include <opus_multistream.h> -+ -+#include <errno.h> -+#include <fcntl.h> -+#include <stdio.h> -+#include <stdlib.h> -+#include <unistd.h> -+ -+static OpusMSDecoder* decoder; -+static short* pcmBuffer; -+static int samplesPerFrame; -+static int channelCount; -+static int fd = -1; -+ -+static int oss_renderer_init(int audioConfiguration, POPUS_MULTISTREAM_CONFIGURATION opusConfig, void* context, int arFlags) { -+ int rc; -+ decoder = opus_multistream_decoder_create(opusConfig->sampleRate, opusConfig->channelCount, opusConfig->streams, opusConfig->coupledStreams, opusConfig->mapping, &rc); -+ -+ channelCount = opusConfig->channelCount; -+ samplesPerFrame = opusConfig->samplesPerFrame; -+ pcmBuffer = malloc(sizeof(short) * channelCount * samplesPerFrame); -+ if (pcmBuffer == NULL) -+ return -1; -+ -+ const char* oss_name = "/dev/dsp"; -+ fd = open(oss_name, O_WRONLY); -+ if (fd == -1) { -+ printf("Open audio device /dev/dsp failed! error %d\n", errno); -+ return -1; -+ } -+ // buffer size for fragment ,selector 12 is 4096;11 is 2048;10 is 1024; 13is 8192 -+ int frag = 12; -+ if (ioctl(fd, SNDCTL_DSP_SETFRAGMENT, &frag) == -1) -+ printf("Set fragment for /dev/dsp failed."); -+ -+ int format = AFMT_S16_LE; -+ int channels = opusConfig->channelCount; -+ int rate = opusConfig->sampleRate; -+ if (ioctl(fd, SNDCTL_DSP_SETFMT, &format) == -1) -+ printf("Set format for /dev/dsp failed."); -+ if (ioctl(fd, SNDCTL_DSP_CHANNELS, &channels) == -1) -+ printf("Set channels for /dev/dsp failed."); -+ if (ioctl(fd, SNDCTL_DSP_SPEED, &rate) == -1) -+ printf("Set sample rate for /dev/dsp failed."); -+ -+ return 0; -+} -+ -+static void oss_renderer_cleanup() { -+ if (decoder != NULL) { -+ opus_multistream_decoder_destroy(decoder); -+ decoder = NULL; -+ } -+ -+ if (pcmBuffer != NULL) { -+ free(pcmBuffer); -+ pcmBuffer = NULL; -+ } -+ -+ if (fd != -1) { -+ close(fd); -+ fd = -1; -+ } -+} -+ -+static void oss_renderer_decode_and_play_sample(char* data, int length) { -+ int decodeLen = opus_multistream_decode(decoder, data, length, pcmBuffer, samplesPerFrame, 0); -+ if (decodeLen > 0) { -+ write(fd, pcmBuffer, decodeLen * channelCount * sizeof(short)); -+ } else if (decodeLen < 0) { -+ printf("Opus error from decode: %d\n", decodeLen); -+ } -+} -+ -+AUDIO_RENDERER_CALLBACKS audio_callbacks_oss = { -+ .init = oss_renderer_init, -+ .cleanup = oss_renderer_cleanup, -+ .decodeAndPlaySample = oss_renderer_decode_and_play_sample, -+ .capabilities = CAPABILITY_DIRECT_SUBMIT | CAPABILITY_SUPPORTS_ARBITRARY_AUDIO_DURATION, -+}; -+#endif diff --git a/games/moonlight-embedded/files/patch-src_input_evdev.c b/games/moonlight-embedded/files/patch-src_input_evdev.c index f2812ca25ca6..c7f9be90ab9a 100644 --- a/games/moonlight-embedded/files/patch-src_input_evdev.c +++ b/games/moonlight-embedded/files/patch-src_input_evdev.c @@ -1,14 +1,7 @@ ---- src/input/evdev.c.orig 2023-11-03 06:08:34 UTC +--- src/input/evdev.c.orig 2024-02-20 04:01:31 UTC +++ src/input/evdev.c -@@ -38,9 +38,15 @@ - #include <limits.h> - #include <unistd.h> - #include <pthread.h> -+#ifdef __linux__ - #include <endian.h> -+#else -+#include <sys/endian.h> -+#endif +@@ -45,6 +45,8 @@ + #endif #include <math.h> +static bool isUseKbdmux = false; @@ -16,21 +9,7 @@ #if __BYTE_ORDER == __LITTLE_ENDIAN #define int16_to_le(val) val #else -@@ -66,8 +72,13 @@ struct input_device { - int hats_state[3][2]; - int fd; - char modifiers; -+ #ifdef __linux__ - __s32 mouseDeltaX, mouseDeltaY, mouseVScroll, mouseHScroll; - __s32 touchDownX, touchDownY, touchX, touchY; -+ #else -+ int32_t mouseDeltaX, mouseDeltaY, mouseVScroll, mouseHScroll; -+ int32_t touchDownX, touchDownY, touchX, touchY; -+ #endif - struct timeval touchDownTime; - struct timeval btnDownTime; - short controllerId; -@@ -749,7 +760,7 @@ static int evdev_handle(int fd) { +@@ -758,7 +760,7 @@ static int evdev_handle(int fd) { struct input_event ev; while ((rc = libevdev_next_event(devices[i].dev, LIBEVDEV_READ_FLAG_NORMAL, &ev)) >= 0) { if (rc == LIBEVDEV_READ_STATUS_SYNC) @@ -39,7 +18,7 @@ else if (rc == LIBEVDEV_READ_STATUS_SUCCESS) { if (!handler(&ev, &devices[i])) return LOOP_RETURN; -@@ -766,6 +777,39 @@ static int evdev_handle(int fd) { +@@ -775,6 +777,39 @@ static int evdev_handle(int fd) { return LOOP_OK; } @@ -79,7 +58,7 @@ void evdev_create(const char* device, struct mapping* mappings, bool verbose, int rotate) { int fd = open(device, O_RDWR|O_NONBLOCK); if (fd <= 0) { -@@ -840,6 +884,33 @@ void evdev_create(const char* device, struct mapping* +@@ -851,6 +886,33 @@ void evdev_create(const char* device, struct mapping* libevdev_has_event_code(evdev, EV_ABS, ABS_WHEEL) || libevdev_has_event_code(evdev, EV_ABS, ABS_GAS) || libevdev_has_event_code(evdev, EV_ABS, ABS_BRAKE)); diff --git a/games/moonlight-embedded/files/patch-src_main.c b/games/moonlight-embedded/files/patch-src_main.c index 827f3a3ade46..478f6ba2ccfa 100644 --- a/games/moonlight-embedded/files/patch-src_main.c +++ b/games/moonlight-embedded/files/patch-src_main.c @@ -1,4 +1,4 @@ ---- src/main.c.orig 2023-11-03 06:08:34 UTC +--- src/main.c.orig 2024-02-20 04:01:31 UTC +++ src/main.c @@ -42,6 +42,7 @@ #include <client.h> @@ -54,16 +54,17 @@ #ifdef HAVE_SDL if (system == SDL) -@@ -362,6 +363,8 @@ int main(int argc, char* argv[]) { +@@ -362,6 +363,9 @@ int main(int argc, char* argv[]) { mappings = map; } + // test is use kbdmux driver -+ is_use_kbdmux(); ++ if (config.inputsCount <= 0) ++ is_use_kbdmux(); for (int i=0;i<config.inputsCount;i++) { if (config.debug_level > 0) printf("Adding input device %s...\n", config.inputs[i]); -@@ -398,7 +401,8 @@ int main(int argc, char* argv[]) { +@@ -398,7 +402,8 @@ int main(int argc, char* argv[]) { if (config.pin > 0 && config.pin <= 9999) { sprintf(pin, "%04d", config.pin); } else { @@ -73,7 +74,7 @@ } printf("Please enter the following PIN on the target PC: %s\n", pin); fflush(stdout); -@@ -406,6 +410,7 @@ int main(int argc, char* argv[]) { +@@ -406,6 +411,7 @@ int main(int argc, char* argv[]) { fprintf(stderr, "Failed to pair to server: %s\n", gs_error); } else { printf("Succesfully paired\n"); diff --git a/games/moonlight-embedded/files/patch-src_platform.c b/games/moonlight-embedded/files/patch-src_platform.c deleted file mode 100644 index 4fe2435269b2..000000000000 --- a/games/moonlight-embedded/files/patch-src_platform.c +++ /dev/null @@ -1,12 +0,0 @@ ---- src/platform.c.orig 2023-11-03 06:08:34 UTC -+++ src/platform.c -@@ -202,6 +202,9 @@ AUDIO_RENDERER_CALLBACKS* platform_get_audio(enum plat - #ifdef HAVE_ALSA - return &audio_callbacks_alsa; - #endif -+ #ifdef __FreeBSD__ -+ return &audio_callbacks_oss; -+ #endif - } - return NULL; - } |