From d3bb52ca424cbae3bbcaa5fe02757b86a4754856 Mon Sep 17 00:00:00 2001 From: Blue Date: Thu, 27 Jul 2023 09:33:54 +0200 Subject: [PATCH] client: add player audiofilter --- client/src/bindings/Player.cpp | 30 ++++++++++++++++++++++++++++++ shared/deps/cpp-sdk | 2 +- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/client/src/bindings/Player.cpp b/client/src/bindings/Player.cpp index 0e07c614..1ffc7450 100644 --- a/client/src/bindings/Player.cpp +++ b/client/src/bindings/Player.cpp @@ -125,6 +125,34 @@ static void StaticGetByRemoteId(const v8::FunctionCallbackInfo& info) } } +static void GetFilter(v8::Local, const v8::PropertyCallbackInfo& info) +{ + V8_GET_ISOLATE_CONTEXT_RESOURCE(); + V8_GET_THIS_BASE_OBJECT(player, alt::IPlayer); + + V8_RETURN_BASE_OBJECT(player->GetFilter()); +} + +static void SetFilter(v8::Local, v8::Local val, const v8::PropertyCallbackInfo& info) +{ + V8_GET_ISOLATE_CONTEXT_RESOURCE(); + V8_GET_THIS_BASE_OBJECT(player, alt::IPlayer); + + if(val->IsNull()) + { + player->RemoveFilter(); + } + else if(val->IsObject()) + { + V8_TO_BASEOBJECT(val, filter); + player->AddFilter(filter->SharedAs().get()); + } + else + { + V8Helpers::Throw(isolate, "AudioOutput.filter setter expects null or AudioFilter object"); + } +} + extern V8Class v8Entity; extern V8Class v8Player("Player", v8Entity, @@ -186,4 +214,6 @@ extern V8Class v8Player("Player", // V8Helpers::SetAccessor(isolate, tpl, "isSuperJumpEnabled"); // V8Helpers::SetAccessor(isolate, tpl, "isCrouching"); // V8Helpers::SetAccessor(isolate, tpl, "isStealthy"); + + V8Helpers::SetAccessor(isolate, tpl, "filter", &GetFilter, &SetFilter); }); diff --git a/shared/deps/cpp-sdk b/shared/deps/cpp-sdk index 1465fdd0..9aa24f19 160000 --- a/shared/deps/cpp-sdk +++ b/shared/deps/cpp-sdk @@ -1 +1 @@ -Subproject commit 1465fdd0161d5c9bd2b1855d058c3c15a4d75d6e +Subproject commit 9aa24f19011fd5cc78de26f858277e55c01e5043