Compare commits

..

No commits in common. "6dc21314e893418215ed77314c4c5554ae89dc28" and "856b7b5a5bfc6ce3e20fd6a7808b35eaddb98605" have entirely different histories.

12 changed files with 133 additions and 45 deletions

View File

@ -28,39 +28,37 @@ bundle install
#### Example `main.rb`
Pass `host`, `port` and `password` as keyword arguments.
pass `host`, `port` and `password` as keyword arguments.
```ruby
require "obsws"
class Main
def run
OBSWS::Requests::Client
.new(host: "localhost", port: 4455, password: "strongpassword")
.run do |client|
# Toggle the mute state of your Mic input
client.toggle_input_mute("Mic/Aux")
end
end
def main
OBSWS::Requests::Client
.new(host: "localhost", port: 4455, password: "strongpassword")
.run do |client|
# Toggle the mute state of your Mic input
client.toggle_input_mute("Mic/Aux")
end
end
Main.new.run if $PROGRAM_NAME == __FILE__
main if $0 == __FILE__
```
Passing OBSWS::Requests::Client.run a block closes the socket once the block returns.
### Requests
Method names for requests match the API calls but snake cased.
Method names for requests match the API calls but snake cased. `run` accepts a block that closes the socket once you are done.
example:
```ruby
# GetVersion
resp = r_client.get_version
r_client.run do
# GetVersion
resp = r_client.get_version
# SetCurrentProgramScene
r_client.set_current_program_scene("BRB")
# SetCurrentProgramScene
r_client.set_current_program_scene("BRB")
end
```
For a full list of requests refer to [Requests](https://github.com/obsproject/obs-websocket/blob/master/docs/generated/protocol.md#requests)

7
examples/events/Gemfile Normal file
View File

@ -0,0 +1,7 @@
# frozen_string_literal: true
source "https://rubygems.org"
# gem "rails"
gem "obsws", path: "../.."

View File

@ -0,0 +1,25 @@
PATH
remote: ../..
specs:
obsws (0.1.3)
observer (~> 0.1.1)
waitutil (~> 0.2.1)
websocket-driver (~> 0.7.5)
GEM
remote: https://rubygems.org/
specs:
observer (0.1.1)
waitutil (0.2.1)
websocket-driver (0.7.5)
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.5)
PLATFORMS
x64-mingw-ucrt
DEPENDENCIES
obsws!
BUNDLED WITH
2.3.22

View File

@ -1,4 +1,4 @@
require_relative "../../lib/obsws"
require "obsws"
require "yaml"
OBSWS::LOGGER.info!
@ -53,4 +53,4 @@ def conn_from_yaml
YAML.load_file("obs.yml", symbolize_names: true)[:connection]
end
Main.new(**conn_from_yaml).run if $PROGRAM_NAME == __FILE__
Main.new(**conn_from_yaml).run if $0 == __FILE__

7
examples/levels/Gemfile Normal file
View File

@ -0,0 +1,7 @@
# frozen_string_literal: true
source "https://rubygems.org"
# gem "rails"
gem "obsws", path: "../.."

View File

@ -0,0 +1,25 @@
PATH
remote: ../..
specs:
obsws (0.1.3)
observer (~> 0.1.1)
waitutil (~> 0.2.1)
websocket-driver (~> 0.7.5)
GEM
remote: https://rubygems.org/
specs:
observer (0.1.1)
waitutil (0.2.1)
websocket-driver (0.7.5)
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.5)
PLATFORMS
x64-mingw-ucrt
DEPENDENCIES
obsws!
BUNDLED WITH
2.4.15

View File

@ -1,7 +1,8 @@
require_relative "../../lib/obsws"
require "obsws"
require "yaml"
OBSWS::LOGGER.info!
DEVICE = "Desktop Audio"
module LevelTypes
VU = 0
@ -10,8 +11,6 @@ module LevelTypes
end
class Main
DEVICE = "Desktop Audio"
def initialize(**kwargs)
subs = OBSWS::Events::SUBS::LOW_VOLUME | OBSWS::Events::SUBS::INPUTVOLUMEMETERS
@e_client = OBSWS::Events::Client.new(subs:, **kwargs)
@ -20,7 +19,7 @@ class Main
def run
puts "press <Enter> to quit"
loop { break if gets.chomp.empty? }
exit if gets.chomp.empty?
end
def on_input_mute_state_changed(data)
@ -46,4 +45,4 @@ def conn_from_yaml
YAML.load_file("obs.yml", symbolize_names: true)[:connection]
end
Main.new(**conn_from_yaml).run if $PROGRAM_NAME == __FILE__
Main.new(**conn_from_yaml).run if $0 == __FILE__

View File

@ -0,0 +1,7 @@
# frozen_string_literal: true
source "https://rubygems.org"
# gem "rails"
gem "obsws", path: "../.."

View File

@ -0,0 +1,25 @@
PATH
remote: ../..
specs:
obsws (0.1.3)
observer (~> 0.1.1)
waitutil (~> 0.2.1)
websocket-driver (~> 0.7.5)
GEM
remote: https://rubygems.org/
specs:
observer (0.1.1)
waitutil (0.2.1)
websocket-driver (0.7.5)
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.5)
PLATFORMS
x64-mingw-ucrt
DEPENDENCIES
obsws!
BUNDLED WITH
2.3.22

View File

@ -1,24 +1,21 @@
require_relative "../../lib/obsws"
require "obsws"
require "yaml"
OBSWS::LOGGER.info!
class Main
def conn_from_yaml
YAML.load_file("obs.yml", symbolize_names: true)[:connection]
end
def conn_from_yaml
YAML.load_file("obs.yml", symbolize_names: true)[:connection]
end
def run
OBSWS::Requests::Client.new(**conn_from_yaml).run do |client|
resp = client.get_scene_list
resp.scenes.reverse_each do |scene|
puts "Switching to scene #{scene[:sceneName]}"
client.set_current_program_scene(scene[:sceneName])
sleep(0.5)
end
def main
OBSWS::Requests::Client.new(**conn_from_yaml).run do |client|
resp = client.get_scene_list
resp.scenes.reverse_each do |scene|
puts "Switching to scene #{scene[:sceneName]}"
client.set_current_program_scene(scene[:sceneName])
sleep(0.5)
end
end
end
Main.new.run if $PROGRAM_NAME == __FILE__
main if $0 == __FILE__

View File

@ -114,7 +114,7 @@ module OBSWS
}
payload[:d][:requestData] = data if data
LOGGER.debug("sending request: #{payload}")
@driver.text(JSON.generate(payload))
queued = @driver.text(JSON.generate(payload))
end
end
end

View File

@ -1,7 +1,6 @@
require_relative "lib/obsws"
class Main
def run
def main
OBSWS::Requests::Client.new(
host: "localhost",
port: 4455,
@ -10,7 +9,6 @@ class Main
# Toggle the mute state of your Mic input
client.toggle_input_mute("Mic/Aux")
end
end
end
Main.new.run if $PROGRAM_NAME == __FILE__
main if $0 == __FILE__