aboutsummaryrefslogtreecommitdiff
path: root/games/moonlight-embedded/files
diff options
context:
space:
mode:
Diffstat (limited to 'games/moonlight-embedded/files')
-rw-r--r--games/moonlight-embedded/files/patch-CMakeLists.txt14
-rw-r--r--games/moonlight-embedded/files/patch-libgamestream_CMakeLists.txt8
-rw-r--r--games/moonlight-embedded/files/patch-libgamestream_client.c7
-rw-r--r--games/moonlight-embedded/files/patch-libgamestream_http.c12
-rw-r--r--games/moonlight-embedded/files/patch-src_audio_audio.h9
-rw-r--r--games/moonlight-embedded/files/patch-src_audio_oss.c108
-rw-r--r--games/moonlight-embedded/files/patch-src_input_evdev.c33
-rw-r--r--games/moonlight-embedded/files/patch-src_main.c11
-rw-r--r--games/moonlight-embedded/files/patch-src_platform.c12
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;
- }