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)
|
private void AddBlur(WindowInfo windowInfo)
|
||||||
{
|
{
|
||||||
|
int sceneItemId = _websocket.GetSceneItemId(_currentObsScene, "Blur", 0);
|
||||||
Dictionary<string, object> duplicateSceneItemRequest = new()
|
Dictionary<string, object> duplicateSceneItemRequest = new()
|
||||||
{
|
{
|
||||||
{"sceneName", _currentObsScene},
|
{"sceneName", _currentObsScene},
|
||||||
{"sceneItemId", GetSceneItemUuid("Blur")}
|
{"sceneItemId", sceneItemId}
|
||||||
};
|
};
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -133,60 +134,16 @@ public class Blur
|
|||||||
BoundsType = SceneItemBoundsType.OBS_BOUNDS_STRETCH,
|
BoundsType = SceneItemBoundsType.OBS_BOUNDS_STRETCH,
|
||||||
Alignnment = 5
|
Alignnment = 5
|
||||||
};
|
};
|
||||||
|
_websocket.SetSceneItemTransform(_currentObsScene, (int)_windowHandleSceneItems[windowInfo.WindowHandle], info);
|
||||||
Dictionary<string, object> setSceneItemTransformRequest = new()
|
_websocket.SetSceneItemEnabled(_currentObsScene, (int)_windowHandleSceneItems[windowInfo.WindowHandle], true);
|
||||||
{
|
|
||||||
{"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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DeleteBlur(IntPtr windowHandle)
|
private void DeleteBlur(IntPtr windowHandle)
|
||||||
{
|
{
|
||||||
if (!_windowHandleSceneItems.TryGetValue(windowHandle, out uint sceneItemId))
|
if (!_windowHandleSceneItems.TryGetValue(windowHandle, out uint sceneItemId))
|
||||||
return;
|
return;
|
||||||
Dictionary<string, object> removeSceneItemRequest = new()
|
_websocket.RemoveSceneItem(_currentObsScene, (int)sceneItemId);
|
||||||
{
|
_windowHandleSceneItems.Remove(windowHandle);
|
||||||
{"sceneName", _currentObsScene},
|
|
||||||
{"sceneItemId", sceneItemId}
|
|
||||||
};
|
|
||||||
try
|
|
||||||
{
|
|
||||||
_websocket.SendRequest("RemoveSceneItem", JObject.FromObject(removeSceneItemRequest));
|
|
||||||
_windowHandleSceneItems.Remove(windowHandle);
|
|
||||||
}
|
|
||||||
catch (ErrorResponseException e)
|
|
||||||
{
|
|
||||||
_logger?.LogError(e, "Request 'RemoveSceneItem'");
|
|
||||||
throw;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DeleteBlur(WindowInfo windowInfo)
|
private void DeleteBlur(WindowInfo windowInfo)
|
||||||
@ -194,53 +151,16 @@ public class Blur
|
|||||||
DeleteBlur(windowInfo.WindowHandle);
|
DeleteBlur(windowInfo.WindowHandle);
|
||||||
}
|
}
|
||||||
|
|
||||||
private uint GetSceneItemUuid(string sourceName)
|
private void SetScaleFactors(SceneItemTransformInfo? sceneItemTransformInfo = null)
|
||||||
{
|
{
|
||||||
Dictionary<string, string> request = new()
|
int displayCapture = _websocket.GetSceneItemId(_currentObsScene, _displayCaptureName, 0);
|
||||||
{
|
sceneItemTransformInfo ??= _websocket.GetSceneItemTransform(_currentObsScene, displayCapture);
|
||||||
{"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;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
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)
|
private void WindowManagerOnWindowZOrderChanged(IntPtr[] neworder)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user