Requests are organized by category (e.g., client.SceneItems, client.Inputs). To perform an action, call the corresponding method on the category object.
goobs supports two patterns for defining request parameters:
- Builder Pattern: Using
New<RequestName>Params().With<Field>(value). - Struct Initialization: Creating the params struct directly (e.g.,
&sceneitems.SetSceneItemEnabledParams{...}).
To discover which InputKind or other parameters to use, it is recommended to first call a Get... method (like GetInputList) or listen to events to see the data structure returned by OBS.
// Example: Using the builder pattern for GetSceneItemList
params := sceneitems.NewGetSceneItemListParams().WithSceneName(sceneName)
sceneList, err := client.SceneItems.GetSceneItemList(params)
// Example: Using direct struct initialization for SetSceneItemEnabled
params := &sceneitems.SetSceneItemEnabledParams{
SceneName: &scene,
SceneItemId: &sourceID,
SceneItemEnabled: &visible,
}
_, err := client.SceneItems.SetSceneItemEnabled(params)