Use OBSWebsocket methods for requests
This commit is contained in:
parent
f001d877ba
commit
0aaa832140
@ -96,10 +96,11 @@ public class Blur
|
||||
|
||||
private void AddBlur(WindowInfo windowInfo)
|
||||
{
|
||||
int sceneItemId = _websocket.GetSceneItemId(_currentObsScene, "Blur", 0);
|
||||
Dictionary<string, object> duplicateSceneItemRequest = new()
|
||||
{
|
||||
{"sceneName", _currentObsScene},
|
||||
{"sceneItemId", GetSceneItemUuid("Blur")}
|
||||
{"sceneItemId", sceneItemId}
|
||||
};
|
||||
try
|
||||
{
|
||||
@ -133,60 +134,16 @@ public class Blur
|
||||
BoundsType = SceneItemBoundsType.OBS_BOUNDS_STRETCH,
|
||||
Alignnment = 5
|
||||
};
|
||||
|
||||
Dictionary<string, object> setSceneItemTransformRequest = new()
|
||||
{
|
||||
{"sceneName", _currentObsScene},
|
||||
{"sceneItemId", _windowHandleSceneItems[windowInfo.WindowHandle]},
|
||||
{"sceneItemTransform", info}
|
||||
};
|
||||
try
|
||||
{
|
||||
_websocket.SendRequest("SetSceneItemTransform", JObject.FromObject(setSceneItemTransformRequest));
|
||||
}
|
||||
catch (ErrorResponseException e)
|
||||
{
|
||||
_logger?.LogError(e, "Request 'SetSceneItemTransform'");
|
||||
throw;
|
||||
}
|
||||
|
||||
|
||||
Dictionary<string, object> setSceneItemEnabledRequest = new()
|
||||
{
|
||||
{"sceneName", _currentObsScene},
|
||||
{"sceneItemId", _windowHandleSceneItems[windowInfo.WindowHandle]},
|
||||
{"sceneItemEnabled", true}
|
||||
};
|
||||
try
|
||||
{
|
||||
_websocket.SendRequest("SetSceneItemEnabled", JObject.FromObject(setSceneItemEnabledRequest));
|
||||
}
|
||||
catch (ErrorResponseException e)
|
||||
{
|
||||
_logger?.LogError(e, "Request 'SetSceneItemEnabled'");
|
||||
throw;
|
||||
}
|
||||
_websocket.SetSceneItemTransform(_currentObsScene, (int)_windowHandleSceneItems[windowInfo.WindowHandle], info);
|
||||
_websocket.SetSceneItemEnabled(_currentObsScene, (int)_windowHandleSceneItems[windowInfo.WindowHandle], true);
|
||||
}
|
||||
|
||||
private void DeleteBlur(IntPtr windowHandle)
|
||||
{
|
||||
if (!_windowHandleSceneItems.TryGetValue(windowHandle, out uint sceneItemId))
|
||||
return;
|
||||
Dictionary<string, object> removeSceneItemRequest = new()
|
||||
{
|
||||
{"sceneName", _currentObsScene},
|
||||
{"sceneItemId", sceneItemId}
|
||||
};
|
||||
try
|
||||
{
|
||||
_websocket.SendRequest("RemoveSceneItem", JObject.FromObject(removeSceneItemRequest));
|
||||
_windowHandleSceneItems.Remove(windowHandle);
|
||||
}
|
||||
catch (ErrorResponseException e)
|
||||
{
|
||||
_logger?.LogError(e, "Request 'RemoveSceneItem'");
|
||||
throw;
|
||||
}
|
||||
_websocket.RemoveSceneItem(_currentObsScene, (int)sceneItemId);
|
||||
_windowHandleSceneItems.Remove(windowHandle);
|
||||
}
|
||||
|
||||
private void DeleteBlur(WindowInfo windowInfo)
|
||||
@ -194,53 +151,16 @@ public class Blur
|
||||
DeleteBlur(windowInfo.WindowHandle);
|
||||
}
|
||||
|
||||
private uint GetSceneItemUuid(string sourceName)
|
||||
private void SetScaleFactors(SceneItemTransformInfo? sceneItemTransformInfo = null)
|
||||
{
|
||||
Dictionary<string, string> request = new()
|
||||
{
|
||||
{"sceneName", _currentObsScene},
|
||||
{"sourceName", sourceName}
|
||||
};
|
||||
try
|
||||
{
|
||||
JObject response = _websocket.SendRequest("GetSceneItemId", JObject.FromObject(request));
|
||||
if (!response.ContainsKey("sceneItemId"))
|
||||
throw new KeyNotFoundException("sceneItemId not in response.");
|
||||
return response["sceneItemId"]!.Value<uint>();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_logger?.LogError(e, $"Request 'GetSceneItemId' in GetSceneItemUuid {sourceName}");
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
private void SetScaleFactors()
|
||||
{
|
||||
Dictionary<string, object> request = new()
|
||||
{
|
||||
{"sceneName", _currentObsScene},
|
||||
{"sceneItemId", GetSceneItemUuid(_displayCaptureName)}
|
||||
};
|
||||
try
|
||||
{
|
||||
JObject response = _websocket.SendRequest("GetSceneItemTransform", JObject.FromObject(request));
|
||||
if(!response.TryGetValue("sceneItemTransform", out JToken? sceneItemTransform))
|
||||
throw new KeyNotFoundException("Response missing key sceneItemTransform");
|
||||
|
||||
SceneItemTransformInfo sceneItemTransformInfo = sceneItemTransform.ToObject<SceneItemTransformInfo>()!;
|
||||
Rectangle desktopRectangle = WindowManager.GetDesktopRectangle();
|
||||
this._scaleWidth = sceneItemTransformInfo.Width / desktopRectangle.Width;
|
||||
this._scaleHeight = sceneItemTransformInfo.Height / desktopRectangle.Height;
|
||||
this._xOffset = sceneItemTransformInfo.X;
|
||||
this._yOffset = sceneItemTransformInfo.Y;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_logger?.LogError(e, "Request 'GetVideoSettings'");
|
||||
throw;
|
||||
}
|
||||
int displayCapture = _websocket.GetSceneItemId(_currentObsScene, _displayCaptureName, 0);
|
||||
sceneItemTransformInfo ??= _websocket.GetSceneItemTransform(_currentObsScene, displayCapture);
|
||||
|
||||
Rectangle desktopRectangle = WindowManager.GetDesktopRectangle();
|
||||
this._scaleWidth = sceneItemTransformInfo.Width / desktopRectangle.Width;
|
||||
this._scaleHeight = sceneItemTransformInfo.Height / desktopRectangle.Height;
|
||||
this._xOffset = sceneItemTransformInfo.X;
|
||||
this._yOffset = sceneItemTransformInfo.Y;
|
||||
}
|
||||
|
||||
private void WindowManagerOnWindowZOrderChanged(IntPtr[] neworder)
|
||||
|
Loading…
x
Reference in New Issue
Block a user