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 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