obsws 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8812e43e45759a458a445608809725e4a270daa04a3b715997541eed5bc85e5b
4
- data.tar.gz: 0500dfc0223ad3f489016791fc0ca51800ec903d0bf7e57305216ff0844ee722
3
+ metadata.gz: c128f9332d398f7aebf7cfa0f25c3e5ab1dbd9a1d3b083699ace811a9a8ecc9c
4
+ data.tar.gz: f587866f6b9546d3d681091f5fd525ba2b8a16f1b243e5f3e49edae61cd79e8e
5
5
  SHA512:
6
- metadata.gz: ef31376738aa182535f924e6981dab5eb8b83ec0e8254335d15e6fbab6ce952638c43c9769f21bd50c79b4b4e61750a7d16bdd2dc3910636b7e44957177bfdb2
7
- data.tar.gz: fb4f85815ecfce661e4c46ba63bf008b4eb3c3d89d728a646b1a9c3ce40f22dea1ea00ded2b272abf82d4bb53e79ac275f1345ba87de45e2e4beb2d57f611f82
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 [#{msg}] passing to handler")
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
- "waiting successful identification",
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
- LOGGER.info("initiating authentication") if auth
79
- payload = {
80
- op: Mixin::OPCodes::IDENTIFY,
81
- d: {
82
- rpcVersion: 1,
83
- eventSubscriptions: @subs
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
- payload[:d][:authentication] = auth_token(**auth) if auth
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 = (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)
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
- def low_volume
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 = (1 << 16)
28
- INPUTACTIVESTATECHANGED = (1 << 17)
29
- INPUTSHOWSTATECHANGED = (1 << 18)
30
- SCENEITEMTRANSFORMCHANGED = (1 << 19)
25
+ INPUTVOLUMEMETERS = 1 << 16
26
+ INPUTACTIVESTATECHANGED = 1 << 17
27
+ INPUTSHOWSTATECHANGED = 1 << 18
28
+ SCENEITEMTRANSFORMCHANGED = 1 << 19
31
29
 
32
- def high_volume
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
- module_function :low_volume, :high_volume, :all
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] = SUBS.low_volume
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 has closed",
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 matches request 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
- call(requestType, requestData)
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("GetSceneList")
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
@@ -11,7 +11,7 @@ module OBSWS
11
11
  end
12
12
 
13
13
  def patch
14
- 0
14
+ 2
15
15
  end
16
16
 
17
17
  def to_a
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.0
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-10-24 00:00:00.000000000 Z
11
+ date: 2022-11-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: observer