This commit is contained in:
878
obsws/requests_scene_items.go
Normal file
878
obsws/requests_scene_items.go
Normal file
@ -0,0 +1,878 @@
|
||||
package obsws
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"time"
|
||||
)
|
||||
|
||||
// This file is automatically generated.
|
||||
// https://github.com/christopher-dG/go-obs-websocket/blob/master/codegen/protocol.py
|
||||
|
||||
// GetSceneItemPropertiesRequest : Gets the scene specific properties of the specified source item.
|
||||
//
|
||||
// Since obs-websocket version: 4.3.0.
|
||||
//
|
||||
// https://github.com/Palakis/obs-websocket/blob/4.3-maintenance/docs/generated/protocol.md#getsceneitemproperties
|
||||
type GetSceneItemPropertiesRequest struct {
|
||||
// the name of the scene that the source item belongs to.
|
||||
// Defaults to the current scene.
|
||||
// Required: No.
|
||||
SceneName string `json:"scene-name"`
|
||||
// The name of the source.
|
||||
// Required: Yes.
|
||||
Item string `json:"item"`
|
||||
_request `json:",squash"`
|
||||
response chan GetSceneItemPropertiesResponse
|
||||
}
|
||||
|
||||
// NewGetSceneItemPropertiesRequest returns a new GetSceneItemPropertiesRequest.
|
||||
func NewGetSceneItemPropertiesRequest(
|
||||
sceneName string,
|
||||
item string,
|
||||
) GetSceneItemPropertiesRequest {
|
||||
return GetSceneItemPropertiesRequest{
|
||||
sceneName,
|
||||
item,
|
||||
_request{
|
||||
ID_: getMessageID(),
|
||||
Type_: "GetSceneItemProperties",
|
||||
err: make(chan error, 1),
|
||||
},
|
||||
make(chan GetSceneItemPropertiesResponse, 1),
|
||||
}
|
||||
}
|
||||
|
||||
// Send sends the request.
|
||||
func (r *GetSceneItemPropertiesRequest) Send(c *Client) error {
|
||||
if r.sent {
|
||||
return ErrAlreadySent
|
||||
}
|
||||
future, err := c.sendRequest(r)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
r.sent = true
|
||||
go func() {
|
||||
m := <-future
|
||||
var resp GetSceneItemPropertiesResponse
|
||||
if err = mapToStruct(m, &resp); err != nil {
|
||||
r.err <- err
|
||||
} else if resp.Status() != StatusOK {
|
||||
r.err <- errors.New(resp.Error())
|
||||
} else {
|
||||
r.response <- resp
|
||||
}
|
||||
}()
|
||||
return nil
|
||||
}
|
||||
|
||||
// Receive waits for the response.
|
||||
func (r GetSceneItemPropertiesRequest) Receive() (GetSceneItemPropertiesResponse, error) {
|
||||
if !r.sent {
|
||||
return GetSceneItemPropertiesResponse{}, ErrNotSent
|
||||
}
|
||||
if receiveTimeout == 0 {
|
||||
select {
|
||||
case resp := <-r.response:
|
||||
return resp, nil
|
||||
case err := <-r.err:
|
||||
return GetSceneItemPropertiesResponse{}, err
|
||||
}
|
||||
} else {
|
||||
select {
|
||||
case resp := <-r.response:
|
||||
return resp, nil
|
||||
case err := <-r.err:
|
||||
return GetSceneItemPropertiesResponse{}, err
|
||||
case <-time.After(receiveTimeout):
|
||||
return GetSceneItemPropertiesResponse{}, ErrReceiveTimeout
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// SendReceive sends the request then immediately waits for the response.
|
||||
func (r GetSceneItemPropertiesRequest) SendReceive(c *Client) (GetSceneItemPropertiesResponse, error) {
|
||||
if err := r.Send(c); err != nil {
|
||||
return GetSceneItemPropertiesResponse{}, err
|
||||
}
|
||||
return r.Receive()
|
||||
}
|
||||
|
||||
// GetSceneItemPropertiesResponse : Response for GetSceneItemPropertiesRequest.
|
||||
//
|
||||
// Since obs-websocket version: 4.3.0.
|
||||
//
|
||||
// https://github.com/Palakis/obs-websocket/blob/4.3-maintenance/docs/generated/protocol.md#getsceneitemproperties
|
||||
type GetSceneItemPropertiesResponse struct {
|
||||
// The name of the source.
|
||||
// Required: Yes.
|
||||
Name string `json:"name"`
|
||||
// The x position of the source from the left.
|
||||
// Required: Yes.
|
||||
PositionX int `json:"position.x"`
|
||||
// The y position of the source from the top.
|
||||
// Required: Yes.
|
||||
PositionY int `json:"position.y"`
|
||||
// The point on the source that the item is manipulated from.
|
||||
// Required: Yes.
|
||||
PositionAlignment int `json:"position.alignment"`
|
||||
// The clockwise rotation of the item in degrees around the point of alignment.
|
||||
// Required: Yes.
|
||||
Rotation float64 `json:"rotation"`
|
||||
// The x-scale factor of the source.
|
||||
// Required: Yes.
|
||||
ScaleX float64 `json:"scale.x"`
|
||||
// The y-scale factor of the source.
|
||||
// Required: Yes.
|
||||
ScaleY float64 `json:"scale.y"`
|
||||
// The number of pixels cropped off the top of the source before scaling.
|
||||
// Required: Yes.
|
||||
CropTop int `json:"crop.top"`
|
||||
// The number of pixels cropped off the right of the source before scaling.
|
||||
// Required: Yes.
|
||||
CropRight int `json:"crop.right"`
|
||||
// The number of pixels cropped off the bottom of the source before scaling.
|
||||
// Required: Yes.
|
||||
CropBottom int `json:"crop.bottom"`
|
||||
// The number of pixels cropped off the left of the source before scaling.
|
||||
// Required: Yes.
|
||||
CropLeft int `json:"crop.left"`
|
||||
// If the source is visible.
|
||||
// Required: Yes.
|
||||
Visible bool `json:"visible"`
|
||||
// Type of bounding box.
|
||||
// Required: Yes.
|
||||
BoundsType string `json:"bounds.type"`
|
||||
// Alignment of the bounding box.
|
||||
// Required: Yes.
|
||||
BoundsAlignment int `json:"bounds.alignment"`
|
||||
// Width of the bounding box.
|
||||
// Required: Yes.
|
||||
BoundsX float64 `json:"bounds.x"`
|
||||
// Height of the bounding box.
|
||||
// Required: Yes.
|
||||
BoundsY float64 `json:"bounds.y"`
|
||||
_response `json:",squash"`
|
||||
}
|
||||
|
||||
// SetSceneItemPropertiesRequest : Sets the scene specific properties of a source
|
||||
// Unspecified properties will remain unchanged.
|
||||
//
|
||||
// Since obs-websocket version: 4.3.0.
|
||||
//
|
||||
// https://github.com/Palakis/obs-websocket/blob/4.3-maintenance/docs/generated/protocol.md#setsceneitemproperties
|
||||
type SetSceneItemPropertiesRequest struct {
|
||||
// the name of the scene that the source item belongs to.
|
||||
// Defaults to the current scene.
|
||||
// Required: No.
|
||||
SceneName string `json:"scene-name"`
|
||||
// The name of the source.
|
||||
// Required: Yes.
|
||||
Item string `json:"item"`
|
||||
// The new x position of the source.
|
||||
// Required: Yes.
|
||||
PositionX int `json:"position.x"`
|
||||
// The new y position of the source.
|
||||
// Required: Yes.
|
||||
PositionY int `json:"position.y"`
|
||||
// The new alignment of the source.
|
||||
// Required: Yes.
|
||||
PositionAlignment int `json:"position.alignment"`
|
||||
// The new clockwise rotation of the item in degrees.
|
||||
// Required: Yes.
|
||||
Rotation float64 `json:"rotation"`
|
||||
// The new x scale of the item.
|
||||
// Required: Yes.
|
||||
ScaleX float64 `json:"scale.x"`
|
||||
// The new y scale of the item.
|
||||
// Required: Yes.
|
||||
ScaleY float64 `json:"scale.y"`
|
||||
// The new amount of pixels cropped off the top of the source before scaling.
|
||||
// Required: Yes.
|
||||
CropTop int `json:"crop.top"`
|
||||
// The new amount of pixels cropped off the bottom of the source before scaling.
|
||||
// Required: Yes.
|
||||
CropBottom int `json:"crop.bottom"`
|
||||
// The new amount of pixels cropped off the left of the source before scaling.
|
||||
// Required: Yes.
|
||||
CropLeft int `json:"crop.left"`
|
||||
// The new amount of pixels cropped off the right of the source before scaling.
|
||||
// Required: Yes.
|
||||
CropRight int `json:"crop.right"`
|
||||
// The new visibility of the source.
|
||||
// 'true' shows source, 'false' hides source.
|
||||
// Required: Yes.
|
||||
Visible bool `json:"visible"`
|
||||
// The new bounds type of the source.
|
||||
// Required: Yes.
|
||||
BoundsType string `json:"bounds.type"`
|
||||
// The new alignment of the bounding box.
|
||||
// (0-2, 4-6, 8-10).
|
||||
// Required: Yes.
|
||||
BoundsAlignment int `json:"bounds.alignment"`
|
||||
// The new width of the bounding box.
|
||||
// Required: Yes.
|
||||
BoundsX float64 `json:"bounds.x"`
|
||||
// The new height of the bounding box.
|
||||
// Required: Yes.
|
||||
BoundsY float64 `json:"bounds.y"`
|
||||
_request `json:",squash"`
|
||||
response chan SetSceneItemPropertiesResponse
|
||||
}
|
||||
|
||||
// NewSetSceneItemPropertiesRequest returns a new SetSceneItemPropertiesRequest.
|
||||
func NewSetSceneItemPropertiesRequest(
|
||||
sceneName string,
|
||||
item string,
|
||||
positionX int,
|
||||
positionY int,
|
||||
positionAlignment int,
|
||||
rotation float64,
|
||||
scaleX float64,
|
||||
scaleY float64,
|
||||
cropTop int,
|
||||
cropBottom int,
|
||||
cropLeft int,
|
||||
cropRight int,
|
||||
visible bool,
|
||||
boundsType string,
|
||||
boundsAlignment int,
|
||||
boundsX float64,
|
||||
boundsY float64,
|
||||
) SetSceneItemPropertiesRequest {
|
||||
return SetSceneItemPropertiesRequest{
|
||||
sceneName,
|
||||
item,
|
||||
positionX,
|
||||
positionY,
|
||||
positionAlignment,
|
||||
rotation,
|
||||
scaleX,
|
||||
scaleY,
|
||||
cropTop,
|
||||
cropBottom,
|
||||
cropLeft,
|
||||
cropRight,
|
||||
visible,
|
||||
boundsType,
|
||||
boundsAlignment,
|
||||
boundsX,
|
||||
boundsY,
|
||||
_request{
|
||||
ID_: getMessageID(),
|
||||
Type_: "SetSceneItemProperties",
|
||||
err: make(chan error, 1),
|
||||
},
|
||||
make(chan SetSceneItemPropertiesResponse, 1),
|
||||
}
|
||||
}
|
||||
|
||||
// Send sends the request.
|
||||
func (r *SetSceneItemPropertiesRequest) Send(c *Client) error {
|
||||
if r.sent {
|
||||
return ErrAlreadySent
|
||||
}
|
||||
future, err := c.sendRequest(r)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
r.sent = true
|
||||
go func() {
|
||||
m := <-future
|
||||
var resp SetSceneItemPropertiesResponse
|
||||
if err = mapToStruct(m, &resp); err != nil {
|
||||
r.err <- err
|
||||
} else if resp.Status() != StatusOK {
|
||||
r.err <- errors.New(resp.Error())
|
||||
} else {
|
||||
r.response <- resp
|
||||
}
|
||||
}()
|
||||
return nil
|
||||
}
|
||||
|
||||
// Receive waits for the response.
|
||||
func (r SetSceneItemPropertiesRequest) Receive() (SetSceneItemPropertiesResponse, error) {
|
||||
if !r.sent {
|
||||
return SetSceneItemPropertiesResponse{}, ErrNotSent
|
||||
}
|
||||
if receiveTimeout == 0 {
|
||||
select {
|
||||
case resp := <-r.response:
|
||||
return resp, nil
|
||||
case err := <-r.err:
|
||||
return SetSceneItemPropertiesResponse{}, err
|
||||
}
|
||||
} else {
|
||||
select {
|
||||
case resp := <-r.response:
|
||||
return resp, nil
|
||||
case err := <-r.err:
|
||||
return SetSceneItemPropertiesResponse{}, err
|
||||
case <-time.After(receiveTimeout):
|
||||
return SetSceneItemPropertiesResponse{}, ErrReceiveTimeout
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// SendReceive sends the request then immediately waits for the response.
|
||||
func (r SetSceneItemPropertiesRequest) SendReceive(c *Client) (SetSceneItemPropertiesResponse, error) {
|
||||
if err := r.Send(c); err != nil {
|
||||
return SetSceneItemPropertiesResponse{}, err
|
||||
}
|
||||
return r.Receive()
|
||||
}
|
||||
|
||||
// SetSceneItemPropertiesResponse : Response for SetSceneItemPropertiesRequest.
|
||||
//
|
||||
// Since obs-websocket version: 4.3.0.
|
||||
//
|
||||
// https://github.com/Palakis/obs-websocket/blob/4.3-maintenance/docs/generated/protocol.md#setsceneitemproperties
|
||||
type SetSceneItemPropertiesResponse struct {
|
||||
_response `json:",squash"`
|
||||
}
|
||||
|
||||
// ResetSceneItemRequest : Reset a scene item.
|
||||
//
|
||||
// Since obs-websocket version: 4.2.0.
|
||||
//
|
||||
// https://github.com/Palakis/obs-websocket/blob/4.3-maintenance/docs/generated/protocol.md#resetsceneitem
|
||||
type ResetSceneItemRequest struct {
|
||||
// Name of the scene the source belongs to.
|
||||
// Defaults to the current scene.
|
||||
// Required: No.
|
||||
SceneName string `json:"scene-name"`
|
||||
// Name of the source item.
|
||||
// Required: Yes.
|
||||
Item string `json:"item"`
|
||||
_request `json:",squash"`
|
||||
response chan ResetSceneItemResponse
|
||||
}
|
||||
|
||||
// NewResetSceneItemRequest returns a new ResetSceneItemRequest.
|
||||
func NewResetSceneItemRequest(
|
||||
sceneName string,
|
||||
item string,
|
||||
) ResetSceneItemRequest {
|
||||
return ResetSceneItemRequest{
|
||||
sceneName,
|
||||
item,
|
||||
_request{
|
||||
ID_: getMessageID(),
|
||||
Type_: "ResetSceneItem",
|
||||
err: make(chan error, 1),
|
||||
},
|
||||
make(chan ResetSceneItemResponse, 1),
|
||||
}
|
||||
}
|
||||
|
||||
// Send sends the request.
|
||||
func (r *ResetSceneItemRequest) Send(c *Client) error {
|
||||
if r.sent {
|
||||
return ErrAlreadySent
|
||||
}
|
||||
future, err := c.sendRequest(r)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
r.sent = true
|
||||
go func() {
|
||||
m := <-future
|
||||
var resp ResetSceneItemResponse
|
||||
if err = mapToStruct(m, &resp); err != nil {
|
||||
r.err <- err
|
||||
} else if resp.Status() != StatusOK {
|
||||
r.err <- errors.New(resp.Error())
|
||||
} else {
|
||||
r.response <- resp
|
||||
}
|
||||
}()
|
||||
return nil
|
||||
}
|
||||
|
||||
// Receive waits for the response.
|
||||
func (r ResetSceneItemRequest) Receive() (ResetSceneItemResponse, error) {
|
||||
if !r.sent {
|
||||
return ResetSceneItemResponse{}, ErrNotSent
|
||||
}
|
||||
if receiveTimeout == 0 {
|
||||
select {
|
||||
case resp := <-r.response:
|
||||
return resp, nil
|
||||
case err := <-r.err:
|
||||
return ResetSceneItemResponse{}, err
|
||||
}
|
||||
} else {
|
||||
select {
|
||||
case resp := <-r.response:
|
||||
return resp, nil
|
||||
case err := <-r.err:
|
||||
return ResetSceneItemResponse{}, err
|
||||
case <-time.After(receiveTimeout):
|
||||
return ResetSceneItemResponse{}, ErrReceiveTimeout
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// SendReceive sends the request then immediately waits for the response.
|
||||
func (r ResetSceneItemRequest) SendReceive(c *Client) (ResetSceneItemResponse, error) {
|
||||
if err := r.Send(c); err != nil {
|
||||
return ResetSceneItemResponse{}, err
|
||||
}
|
||||
return r.Receive()
|
||||
}
|
||||
|
||||
// ResetSceneItemResponse : Response for ResetSceneItemRequest.
|
||||
//
|
||||
// Since obs-websocket version: 4.2.0.
|
||||
//
|
||||
// https://github.com/Palakis/obs-websocket/blob/4.3-maintenance/docs/generated/protocol.md#resetsceneitem
|
||||
type ResetSceneItemResponse struct {
|
||||
_response `json:",squash"`
|
||||
}
|
||||
|
||||
// SetSceneItemRenderRequest : Show or hide a specified source item in a specified scene.
|
||||
//
|
||||
// Since obs-websocket version: 0.3.
|
||||
//
|
||||
// https://github.com/Palakis/obs-websocket/blob/4.3-maintenance/docs/generated/protocol.md#setsceneitemrender
|
||||
type SetSceneItemRenderRequest struct {
|
||||
// Scene item name in the specified scene.
|
||||
// Required: Yes.
|
||||
Source string `json:"source"`
|
||||
// true = shown ; false = hidden.
|
||||
// Required: Yes.
|
||||
Render bool `json:"render"`
|
||||
// Name of the scene where the source resides.
|
||||
// Defaults to the currently active scene.
|
||||
// Required: No.
|
||||
SceneName string `json:"scene-name"`
|
||||
_request `json:",squash"`
|
||||
response chan SetSceneItemRenderResponse
|
||||
}
|
||||
|
||||
// NewSetSceneItemRenderRequest returns a new SetSceneItemRenderRequest.
|
||||
func NewSetSceneItemRenderRequest(
|
||||
source string,
|
||||
render bool,
|
||||
sceneName string,
|
||||
) SetSceneItemRenderRequest {
|
||||
return SetSceneItemRenderRequest{
|
||||
source,
|
||||
render,
|
||||
sceneName,
|
||||
_request{
|
||||
ID_: getMessageID(),
|
||||
Type_: "SetSceneItemRender",
|
||||
err: make(chan error, 1),
|
||||
},
|
||||
make(chan SetSceneItemRenderResponse, 1),
|
||||
}
|
||||
}
|
||||
|
||||
// Send sends the request.
|
||||
func (r *SetSceneItemRenderRequest) Send(c *Client) error {
|
||||
if r.sent {
|
||||
return ErrAlreadySent
|
||||
}
|
||||
future, err := c.sendRequest(r)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
r.sent = true
|
||||
go func() {
|
||||
m := <-future
|
||||
var resp SetSceneItemRenderResponse
|
||||
if err = mapToStruct(m, &resp); err != nil {
|
||||
r.err <- err
|
||||
} else if resp.Status() != StatusOK {
|
||||
r.err <- errors.New(resp.Error())
|
||||
} else {
|
||||
r.response <- resp
|
||||
}
|
||||
}()
|
||||
return nil
|
||||
}
|
||||
|
||||
// Receive waits for the response.
|
||||
func (r SetSceneItemRenderRequest) Receive() (SetSceneItemRenderResponse, error) {
|
||||
if !r.sent {
|
||||
return SetSceneItemRenderResponse{}, ErrNotSent
|
||||
}
|
||||
if receiveTimeout == 0 {
|
||||
select {
|
||||
case resp := <-r.response:
|
||||
return resp, nil
|
||||
case err := <-r.err:
|
||||
return SetSceneItemRenderResponse{}, err
|
||||
}
|
||||
} else {
|
||||
select {
|
||||
case resp := <-r.response:
|
||||
return resp, nil
|
||||
case err := <-r.err:
|
||||
return SetSceneItemRenderResponse{}, err
|
||||
case <-time.After(receiveTimeout):
|
||||
return SetSceneItemRenderResponse{}, ErrReceiveTimeout
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// SendReceive sends the request then immediately waits for the response.
|
||||
func (r SetSceneItemRenderRequest) SendReceive(c *Client) (SetSceneItemRenderResponse, error) {
|
||||
if err := r.Send(c); err != nil {
|
||||
return SetSceneItemRenderResponse{}, err
|
||||
}
|
||||
return r.Receive()
|
||||
}
|
||||
|
||||
// SetSceneItemRenderResponse : Response for SetSceneItemRenderRequest.
|
||||
//
|
||||
// Since obs-websocket version: 0.3.
|
||||
//
|
||||
// https://github.com/Palakis/obs-websocket/blob/4.3-maintenance/docs/generated/protocol.md#setsceneitemrender
|
||||
type SetSceneItemRenderResponse struct {
|
||||
_response `json:",squash"`
|
||||
}
|
||||
|
||||
// SetSceneItemPositionRequest : Sets the coordinates of a specified source item.
|
||||
//
|
||||
// Since obs-websocket version: 4.0.0.
|
||||
//
|
||||
// https://github.com/Palakis/obs-websocket/blob/4.3-maintenance/docs/generated/protocol.md#setsceneitemposition
|
||||
type SetSceneItemPositionRequest struct {
|
||||
// The name of the scene that the source item belongs to.
|
||||
// Defaults to the current scene.
|
||||
// Required: No.
|
||||
SceneName string `json:"scene-name"`
|
||||
// The name of the source item.
|
||||
// Required: Yes.
|
||||
Item string `json:"item"`
|
||||
// X coordinate.
|
||||
// Required: Yes.
|
||||
X float64 `json:"x"`
|
||||
// Y coordinate.
|
||||
// Required: Yes.
|
||||
Y float64 `json:"y"`
|
||||
_request `json:",squash"`
|
||||
response chan SetSceneItemPositionResponse
|
||||
}
|
||||
|
||||
// NewSetSceneItemPositionRequest returns a new SetSceneItemPositionRequest.
|
||||
func NewSetSceneItemPositionRequest(
|
||||
sceneName string,
|
||||
item string,
|
||||
x float64,
|
||||
y float64,
|
||||
) SetSceneItemPositionRequest {
|
||||
return SetSceneItemPositionRequest{
|
||||
sceneName,
|
||||
item,
|
||||
x,
|
||||
y,
|
||||
_request{
|
||||
ID_: getMessageID(),
|
||||
Type_: "SetSceneItemPosition",
|
||||
err: make(chan error, 1),
|
||||
},
|
||||
make(chan SetSceneItemPositionResponse, 1),
|
||||
}
|
||||
}
|
||||
|
||||
// Send sends the request.
|
||||
func (r *SetSceneItemPositionRequest) Send(c *Client) error {
|
||||
if r.sent {
|
||||
return ErrAlreadySent
|
||||
}
|
||||
future, err := c.sendRequest(r)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
r.sent = true
|
||||
go func() {
|
||||
m := <-future
|
||||
var resp SetSceneItemPositionResponse
|
||||
if err = mapToStruct(m, &resp); err != nil {
|
||||
r.err <- err
|
||||
} else if resp.Status() != StatusOK {
|
||||
r.err <- errors.New(resp.Error())
|
||||
} else {
|
||||
r.response <- resp
|
||||
}
|
||||
}()
|
||||
return nil
|
||||
}
|
||||
|
||||
// Receive waits for the response.
|
||||
func (r SetSceneItemPositionRequest) Receive() (SetSceneItemPositionResponse, error) {
|
||||
if !r.sent {
|
||||
return SetSceneItemPositionResponse{}, ErrNotSent
|
||||
}
|
||||
if receiveTimeout == 0 {
|
||||
select {
|
||||
case resp := <-r.response:
|
||||
return resp, nil
|
||||
case err := <-r.err:
|
||||
return SetSceneItemPositionResponse{}, err
|
||||
}
|
||||
} else {
|
||||
select {
|
||||
case resp := <-r.response:
|
||||
return resp, nil
|
||||
case err := <-r.err:
|
||||
return SetSceneItemPositionResponse{}, err
|
||||
case <-time.After(receiveTimeout):
|
||||
return SetSceneItemPositionResponse{}, ErrReceiveTimeout
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// SendReceive sends the request then immediately waits for the response.
|
||||
func (r SetSceneItemPositionRequest) SendReceive(c *Client) (SetSceneItemPositionResponse, error) {
|
||||
if err := r.Send(c); err != nil {
|
||||
return SetSceneItemPositionResponse{}, err
|
||||
}
|
||||
return r.Receive()
|
||||
}
|
||||
|
||||
// SetSceneItemPositionResponse : Response for SetSceneItemPositionRequest.
|
||||
//
|
||||
// Since obs-websocket version: 4.0.0.
|
||||
//
|
||||
// https://github.com/Palakis/obs-websocket/blob/4.3-maintenance/docs/generated/protocol.md#setsceneitemposition
|
||||
type SetSceneItemPositionResponse struct {
|
||||
_response `json:",squash"`
|
||||
}
|
||||
|
||||
// SetSceneItemTransformRequest : Set the transform of the specified source item.
|
||||
//
|
||||
// Since obs-websocket version: 4.0.0.
|
||||
//
|
||||
// https://github.com/Palakis/obs-websocket/blob/4.3-maintenance/docs/generated/protocol.md#setsceneitemtransform
|
||||
type SetSceneItemTransformRequest struct {
|
||||
// The name of the scene that the source item belongs to.
|
||||
// Defaults to the current scene.
|
||||
// Required: No.
|
||||
SceneName string `json:"scene-name"`
|
||||
// The name of the source item.
|
||||
// Required: Yes.
|
||||
Item string `json:"item"`
|
||||
// Width scale factor.
|
||||
// Required: Yes.
|
||||
XScale float64 `json:"x-scale"`
|
||||
// Height scale factor.
|
||||
// Required: Yes.
|
||||
YScale float64 `json:"y-scale"`
|
||||
// Source item rotation (in degrees).
|
||||
// Required: Yes.
|
||||
Rotation float64 `json:"rotation"`
|
||||
_request `json:",squash"`
|
||||
response chan SetSceneItemTransformResponse
|
||||
}
|
||||
|
||||
// NewSetSceneItemTransformRequest returns a new SetSceneItemTransformRequest.
|
||||
func NewSetSceneItemTransformRequest(
|
||||
sceneName string,
|
||||
item string,
|
||||
xScale float64,
|
||||
yScale float64,
|
||||
rotation float64,
|
||||
) SetSceneItemTransformRequest {
|
||||
return SetSceneItemTransformRequest{
|
||||
sceneName,
|
||||
item,
|
||||
xScale,
|
||||
yScale,
|
||||
rotation,
|
||||
_request{
|
||||
ID_: getMessageID(),
|
||||
Type_: "SetSceneItemTransform",
|
||||
err: make(chan error, 1),
|
||||
},
|
||||
make(chan SetSceneItemTransformResponse, 1),
|
||||
}
|
||||
}
|
||||
|
||||
// Send sends the request.
|
||||
func (r *SetSceneItemTransformRequest) Send(c *Client) error {
|
||||
if r.sent {
|
||||
return ErrAlreadySent
|
||||
}
|
||||
future, err := c.sendRequest(r)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
r.sent = true
|
||||
go func() {
|
||||
m := <-future
|
||||
var resp SetSceneItemTransformResponse
|
||||
if err = mapToStruct(m, &resp); err != nil {
|
||||
r.err <- err
|
||||
} else if resp.Status() != StatusOK {
|
||||
r.err <- errors.New(resp.Error())
|
||||
} else {
|
||||
r.response <- resp
|
||||
}
|
||||
}()
|
||||
return nil
|
||||
}
|
||||
|
||||
// Receive waits for the response.
|
||||
func (r SetSceneItemTransformRequest) Receive() (SetSceneItemTransformResponse, error) {
|
||||
if !r.sent {
|
||||
return SetSceneItemTransformResponse{}, ErrNotSent
|
||||
}
|
||||
if receiveTimeout == 0 {
|
||||
select {
|
||||
case resp := <-r.response:
|
||||
return resp, nil
|
||||
case err := <-r.err:
|
||||
return SetSceneItemTransformResponse{}, err
|
||||
}
|
||||
} else {
|
||||
select {
|
||||
case resp := <-r.response:
|
||||
return resp, nil
|
||||
case err := <-r.err:
|
||||
return SetSceneItemTransformResponse{}, err
|
||||
case <-time.After(receiveTimeout):
|
||||
return SetSceneItemTransformResponse{}, ErrReceiveTimeout
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// SendReceive sends the request then immediately waits for the response.
|
||||
func (r SetSceneItemTransformRequest) SendReceive(c *Client) (SetSceneItemTransformResponse, error) {
|
||||
if err := r.Send(c); err != nil {
|
||||
return SetSceneItemTransformResponse{}, err
|
||||
}
|
||||
return r.Receive()
|
||||
}
|
||||
|
||||
// SetSceneItemTransformResponse : Response for SetSceneItemTransformRequest.
|
||||
//
|
||||
// Since obs-websocket version: 4.0.0.
|
||||
//
|
||||
// https://github.com/Palakis/obs-websocket/blob/4.3-maintenance/docs/generated/protocol.md#setsceneitemtransform
|
||||
type SetSceneItemTransformResponse struct {
|
||||
_response `json:",squash"`
|
||||
}
|
||||
|
||||
// SetSceneItemCropRequest : Sets the crop coordinates of the specified source item.
|
||||
//
|
||||
// Since obs-websocket version: 4.1.0.
|
||||
//
|
||||
// https://github.com/Palakis/obs-websocket/blob/4.3-maintenance/docs/generated/protocol.md#setsceneitemcrop
|
||||
type SetSceneItemCropRequest struct {
|
||||
// the name of the scene that the source item belongs to.
|
||||
// Defaults to the current scene.
|
||||
// Required: No.
|
||||
SceneName string `json:"scene-name"`
|
||||
// The name of the source.
|
||||
// Required: Yes.
|
||||
Item string `json:"item"`
|
||||
// Pixel position of the top of the source item.
|
||||
// Required: Yes.
|
||||
Top int `json:"top"`
|
||||
// Pixel position of the bottom of the source item.
|
||||
// Required: Yes.
|
||||
Bottom int `json:"bottom"`
|
||||
// Pixel position of the left of the source item.
|
||||
// Required: Yes.
|
||||
Left int `json:"left"`
|
||||
// Pixel position of the right of the source item.
|
||||
// Required: Yes.
|
||||
Right int `json:"right"`
|
||||
_request `json:",squash"`
|
||||
response chan SetSceneItemCropResponse
|
||||
}
|
||||
|
||||
// NewSetSceneItemCropRequest returns a new SetSceneItemCropRequest.
|
||||
func NewSetSceneItemCropRequest(
|
||||
sceneName string,
|
||||
item string,
|
||||
top int,
|
||||
bottom int,
|
||||
left int,
|
||||
right int,
|
||||
) SetSceneItemCropRequest {
|
||||
return SetSceneItemCropRequest{
|
||||
sceneName,
|
||||
item,
|
||||
top,
|
||||
bottom,
|
||||
left,
|
||||
right,
|
||||
_request{
|
||||
ID_: getMessageID(),
|
||||
Type_: "SetSceneItemCrop",
|
||||
err: make(chan error, 1),
|
||||
},
|
||||
make(chan SetSceneItemCropResponse, 1),
|
||||
}
|
||||
}
|
||||
|
||||
// Send sends the request.
|
||||
func (r *SetSceneItemCropRequest) Send(c *Client) error {
|
||||
if r.sent {
|
||||
return ErrAlreadySent
|
||||
}
|
||||
future, err := c.sendRequest(r)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
r.sent = true
|
||||
go func() {
|
||||
m := <-future
|
||||
var resp SetSceneItemCropResponse
|
||||
if err = mapToStruct(m, &resp); err != nil {
|
||||
r.err <- err
|
||||
} else if resp.Status() != StatusOK {
|
||||
r.err <- errors.New(resp.Error())
|
||||
} else {
|
||||
r.response <- resp
|
||||
}
|
||||
}()
|
||||
return nil
|
||||
}
|
||||
|
||||
// Receive waits for the response.
|
||||
func (r SetSceneItemCropRequest) Receive() (SetSceneItemCropResponse, error) {
|
||||
if !r.sent {
|
||||
return SetSceneItemCropResponse{}, ErrNotSent
|
||||
}
|
||||
if receiveTimeout == 0 {
|
||||
select {
|
||||
case resp := <-r.response:
|
||||
return resp, nil
|
||||
case err := <-r.err:
|
||||
return SetSceneItemCropResponse{}, err
|
||||
}
|
||||
} else {
|
||||
select {
|
||||
case resp := <-r.response:
|
||||
return resp, nil
|
||||
case err := <-r.err:
|
||||
return SetSceneItemCropResponse{}, err
|
||||
case <-time.After(receiveTimeout):
|
||||
return SetSceneItemCropResponse{}, ErrReceiveTimeout
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// SendReceive sends the request then immediately waits for the response.
|
||||
func (r SetSceneItemCropRequest) SendReceive(c *Client) (SetSceneItemCropResponse, error) {
|
||||
if err := r.Send(c); err != nil {
|
||||
return SetSceneItemCropResponse{}, err
|
||||
}
|
||||
return r.Receive()
|
||||
}
|
||||
|
||||
// SetSceneItemCropResponse : Response for SetSceneItemCropRequest.
|
||||
//
|
||||
// Since obs-websocket version: 4.1.0.
|
||||
//
|
||||
// https://github.com/Palakis/obs-websocket/blob/4.3-maintenance/docs/generated/protocol.md#setsceneitemcrop
|
||||
type SetSceneItemCropResponse struct {
|
||||
_response `json:",squash"`
|
||||
}
|
Reference in New Issue
Block a user