obsws 0.1.0 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +13 -0
- data/lib/obsws/base.rb +16 -11
- data/lib/obsws/event.rb +19 -27
- data/lib/obsws/req.rb +10 -4
- data/lib/obsws/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c128f9332d398f7aebf7cfa0f25c3e5ab1dbd9a1d3b083699ace811a9a8ecc9c
|
4
|
+
data.tar.gz: f587866f6b9546d3d681091f5fd525ba2b8a16f1b243e5f3e49edae61cd79e8e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6386ad4234987f9d527fdadd19674039162b2d446bb7edf1afc44621f65631738f69c1887442f1a99851b82516bbd4f857b13e59999dd987071fd74c9aa8b46a
|
7
|
+
data.tar.gz: 2e1caa11d9206f3029256796aa56f29a1dd1e41f217859c30d8c7bfd0deecc761cf0ba9ca01bf05952bf7617c22bbcfeae849f0df8856462fadff14f05c1623c
|
data/README.md
CHANGED
@@ -115,6 +115,19 @@ If a request fails an `OBSWSError` will be raised with a status code.
|
|
115
115
|
|
116
116
|
For a full list of status codes refer to [Codes](https://github.com/obsproject/obs-websocket/blob/master/docs/generated/protocol.md#requeststatus)
|
117
117
|
|
118
|
+
### Logging
|
119
|
+
|
120
|
+
To see the raw messages set log level to debug
|
121
|
+
|
122
|
+
example:
|
123
|
+
|
124
|
+
```ruby
|
125
|
+
require "obsws"
|
126
|
+
|
127
|
+
OBSWS::LOGGER.debug!
|
128
|
+
...
|
129
|
+
```
|
130
|
+
|
118
131
|
### Tests
|
119
132
|
|
120
133
|
To run all tests:
|
data/lib/obsws/base.rb
CHANGED
@@ -45,12 +45,12 @@ module OBSWS
|
|
45
45
|
@closed = true
|
46
46
|
end
|
47
47
|
@driver.on :message do |msg|
|
48
|
-
LOGGER.debug("received
|
48
|
+
LOGGER.debug("received: #{msg.data}")
|
49
49
|
msg_handler(JSON.parse(msg.data, symbolize_names: true))
|
50
50
|
end
|
51
51
|
start_driver
|
52
52
|
WaitUtil.wait_for_condition(
|
53
|
-
"
|
53
|
+
"successful identification",
|
54
54
|
delay_sec: 0.01,
|
55
55
|
timeout_sec: 3
|
56
56
|
) { @identified }
|
@@ -75,15 +75,20 @@ module OBSWS
|
|
75
75
|
end
|
76
76
|
|
77
77
|
def identify(auth)
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
78
|
+
if auth
|
79
|
+
if @password.empty?
|
80
|
+
raise OBSWSError("auth enabled but no password provided")
|
81
|
+
end
|
82
|
+
LOGGER.info("initiating authentication")
|
83
|
+
payload = {
|
84
|
+
op: Mixin::OPCodes::IDENTIFY,
|
85
|
+
d: {
|
86
|
+
rpcVersion: 1,
|
87
|
+
eventSubscriptions: @subs
|
88
|
+
}
|
84
89
|
}
|
85
|
-
|
86
|
-
|
90
|
+
payload[:d][:authentication] = auth_token(**auth)
|
91
|
+
end
|
87
92
|
@driver.text(JSON.generate(payload))
|
88
93
|
end
|
89
94
|
|
@@ -108,8 +113,8 @@ module OBSWS
|
|
108
113
|
}
|
109
114
|
}
|
110
115
|
payload[:d][:requestData] = data if data
|
116
|
+
LOGGER.debug("sending request: #{payload}")
|
111
117
|
queued = @driver.text(JSON.generate(payload))
|
112
|
-
LOGGER.debug("request with id #{id} queued? #{queued}")
|
113
118
|
end
|
114
119
|
end
|
115
120
|
end
|
data/lib/obsws/event.rb
CHANGED
@@ -7,38 +7,30 @@ module OBSWS
|
|
7
7
|
module Events
|
8
8
|
module SUBS
|
9
9
|
NONE = 0
|
10
|
-
GENERAL =
|
11
|
-
CONFIG =
|
12
|
-
SCENES =
|
13
|
-
INPUTS =
|
14
|
-
TRANSITIONS =
|
15
|
-
FILTERS =
|
16
|
-
OUTPUTS =
|
17
|
-
SCENEITEMS =
|
18
|
-
MEDIAINPUTS =
|
19
|
-
VENDORS =
|
20
|
-
UI =
|
10
|
+
GENERAL = 1 << 0
|
11
|
+
CONFIG = 1 << 1
|
12
|
+
SCENES = 1 << 2
|
13
|
+
INPUTS = 1 << 3
|
14
|
+
TRANSITIONS = 1 << 4
|
15
|
+
FILTERS = 1 << 5
|
16
|
+
OUTPUTS = 1 << 6
|
17
|
+
SCENEITEMS = 1 << 7
|
18
|
+
MEDIAINPUTS = 1 << 8
|
19
|
+
VENDORS = 1 << 9
|
20
|
+
UI = 1 << 10
|
21
21
|
|
22
|
-
|
23
|
-
GENERAL | CONFIG | SCENES | INPUTS | TRANSITIONS | FILTERS | OUTPUTS |
|
22
|
+
LOW_VOLUME = GENERAL | CONFIG | SCENES | INPUTS | TRANSITIONS | FILTERS | OUTPUTS |
|
24
23
|
SCENEITEMS | MEDIAINPUTS | VENDORS | UI
|
25
|
-
end
|
26
24
|
|
27
|
-
INPUTVOLUMEMETERS =
|
28
|
-
INPUTACTIVESTATECHANGED =
|
29
|
-
INPUTSHOWSTATECHANGED =
|
30
|
-
SCENEITEMTRANSFORMCHANGED =
|
25
|
+
INPUTVOLUMEMETERS = 1 << 16
|
26
|
+
INPUTACTIVESTATECHANGED = 1 << 17
|
27
|
+
INPUTSHOWSTATECHANGED = 1 << 18
|
28
|
+
SCENEITEMTRANSFORMCHANGED = 1 << 19
|
31
29
|
|
32
|
-
|
33
|
-
INPUTVOLUMEMETERS | INPUTACTIVESTATECHANGED | INPUTSHOWSTATECHANGED |
|
30
|
+
HIGH_VOLUME = INPUTVOLUMEMETERS | INPUTACTIVESTATECHANGED | INPUTSHOWSTATECHANGED |
|
34
31
|
SCENEITEMTRANSFORMCHANGED
|
35
|
-
end
|
36
|
-
|
37
|
-
def all
|
38
|
-
low_volume | high_volume
|
39
|
-
end
|
40
32
|
|
41
|
-
|
33
|
+
ALL = LOW_VOLUME | HIGH_VOLUME
|
42
34
|
end
|
43
35
|
|
44
36
|
module Callbacks
|
@@ -75,7 +67,7 @@ module OBSWS
|
|
75
67
|
include Mixin::OPCodes
|
76
68
|
|
77
69
|
def initialize(**kwargs)
|
78
|
-
kwargs[:subs]
|
70
|
+
kwargs[:subs] ||= SUBS::LOW_VOLUME
|
79
71
|
@base_client = Base.new(**kwargs)
|
80
72
|
LOGGER.info("#{self} succesfully identified with server")
|
81
73
|
@base_client.add_observer(self)
|
data/lib/obsws/req.rb
CHANGED
@@ -28,7 +28,7 @@ module OBSWS
|
|
28
28
|
ensure
|
29
29
|
close
|
30
30
|
WaitUtil.wait_for_condition(
|
31
|
-
"driver
|
31
|
+
"driver to close",
|
32
32
|
delay_sec: 0.01,
|
33
33
|
timeout_sec: 1
|
34
34
|
) { @base_client.closed }
|
@@ -42,7 +42,7 @@ module OBSWS
|
|
42
42
|
id = rand(1..1000)
|
43
43
|
@base_client.req(id, req, data)
|
44
44
|
WaitUtil.wait_for_condition(
|
45
|
-
"reponse id
|
45
|
+
"reponse id to match request id",
|
46
46
|
delay_sec: 0.001,
|
47
47
|
timeout_sec: 3
|
48
48
|
) { @response[:requestId] == id }
|
@@ -77,7 +77,10 @@ module OBSWS
|
|
77
77
|
end
|
78
78
|
|
79
79
|
def call_vendor_request(name, type_, data = nil)
|
80
|
-
|
80
|
+
payload = { vendorName: name, requestType: type_ }
|
81
|
+
payload[:requestData] = data if data
|
82
|
+
resp = call("CallVendorRequest", payload)
|
83
|
+
Mixin::Response.new(resp, resp.keys)
|
81
84
|
end
|
82
85
|
|
83
86
|
def get_hotkey_list
|
@@ -261,7 +264,7 @@ module OBSWS
|
|
261
264
|
end
|
262
265
|
|
263
266
|
def get_group_list
|
264
|
-
resp = call("
|
267
|
+
resp = call("GetGroupList")
|
265
268
|
Mixin::Response.new(resp, resp.keys)
|
266
269
|
end
|
267
270
|
|
@@ -329,6 +332,7 @@ module OBSWS
|
|
329
332
|
|
330
333
|
def get_special_inputs
|
331
334
|
resp = call("GetSpecialInputs")
|
335
|
+
Mixin::Response.new(resp, resp.keys)
|
332
336
|
end
|
333
337
|
|
334
338
|
def create_input(
|
@@ -346,6 +350,7 @@ module OBSWS
|
|
346
350
|
sceneItemEnabled: scene_item_enabled
|
347
351
|
}
|
348
352
|
resp = call("CreateInput", payload)
|
353
|
+
Mixin::Response.new(resp, resp.keys)
|
349
354
|
end
|
350
355
|
|
351
356
|
def remove_input(name)
|
@@ -828,6 +833,7 @@ module OBSWS
|
|
828
833
|
|
829
834
|
def stop_record
|
830
835
|
resp = call("StopRecord")
|
836
|
+
Mixin::Response.new(resp, resp.keys)
|
831
837
|
end
|
832
838
|
|
833
839
|
def toggle_record_pause
|
data/lib/obsws/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: obsws
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- onyx_online
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-11-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: observer
|