noobs 0.0.115 → 0.0.131

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.
Files changed (209) hide show
  1. package/dist/data/obs-plugins/obs-filters/LUTs/black_and_white.png +0 -0
  2. package/dist/data/obs-plugins/obs-filters/LUTs/grayscale.cube +32769 -0
  3. package/dist/data/obs-plugins/obs-filters/LUTs/grayscale.png +0 -0
  4. package/dist/data/obs-plugins/obs-filters/LUTs/invert.png +0 -0
  5. package/dist/data/obs-plugins/obs-filters/LUTs/original.cube +33 -0
  6. package/dist/data/obs-plugins/obs-filters/LUTs/original.png +0 -0
  7. package/dist/data/obs-plugins/obs-filters/LUTs/posterize.png +0 -0
  8. package/dist/data/obs-plugins/obs-filters/LUTs/red_isolated.png +0 -0
  9. package/dist/data/obs-plugins/obs-filters/LUTs/teal_lows_orange_highs.png +0 -0
  10. package/dist/data/obs-plugins/obs-filters/blend_add_filter.effect +54 -0
  11. package/dist/data/obs-plugins/obs-filters/blend_mul_filter.effect +54 -0
  12. package/dist/data/obs-plugins/obs-filters/blend_sub_filter.effect +54 -0
  13. package/dist/data/obs-plugins/obs-filters/chroma_key_filter.effect +99 -0
  14. package/dist/data/obs-plugins/obs-filters/chroma_key_filter_v2.effect +111 -0
  15. package/dist/data/obs-plugins/obs-filters/color.effect +95 -0
  16. package/dist/data/obs-plugins/obs-filters/color_correction_filter.effect +74 -0
  17. package/dist/data/obs-plugins/obs-filters/color_grade_filter.effect +177 -0
  18. package/dist/data/obs-plugins/obs-filters/color_key_filter.effect +65 -0
  19. package/dist/data/obs-plugins/obs-filters/color_key_filter_v2.effect +77 -0
  20. package/dist/data/obs-plugins/obs-filters/crop_filter.effect +95 -0
  21. package/dist/data/obs-plugins/obs-filters/hdr_tonemap_filter.effect +97 -0
  22. package/dist/data/obs-plugins/obs-filters/locale/af-ZA.ini +89 -0
  23. package/dist/data/obs-plugins/obs-filters/locale/ar-SA.ini +133 -0
  24. package/dist/data/obs-plugins/obs-filters/locale/az-AZ.ini +1 -0
  25. package/dist/data/obs-plugins/obs-filters/locale/ba-RU.ini +19 -0
  26. package/dist/data/obs-plugins/obs-filters/locale/be-BY.ini +134 -0
  27. package/dist/data/obs-plugins/obs-filters/locale/bg-BG.ini +71 -0
  28. package/dist/data/obs-plugins/obs-filters/locale/bn-BD.ini +106 -0
  29. package/dist/data/obs-plugins/obs-filters/locale/ca-ES.ini +128 -0
  30. package/dist/data/obs-plugins/obs-filters/locale/cs-CZ.ini +130 -0
  31. package/dist/data/obs-plugins/obs-filters/locale/da-DK.ini +119 -0
  32. package/dist/data/obs-plugins/obs-filters/locale/de-DE.ini +113 -0
  33. package/dist/data/obs-plugins/obs-filters/locale/el-GR.ini +128 -0
  34. package/dist/data/obs-plugins/obs-filters/locale/en-GB.ini +12 -0
  35. package/dist/data/obs-plugins/obs-filters/locale/en-US.ini +138 -0
  36. package/dist/data/obs-plugins/obs-filters/locale/eo-UY.ini +1 -0
  37. package/dist/data/obs-plugins/obs-filters/locale/es-ES.ini +129 -0
  38. package/dist/data/obs-plugins/obs-filters/locale/et-EE.ini +132 -0
  39. package/dist/data/obs-plugins/obs-filters/locale/eu-ES.ini +127 -0
  40. package/dist/data/obs-plugins/obs-filters/locale/fa-IR.ini +137 -0
  41. package/dist/data/obs-plugins/obs-filters/locale/fi-FI.ini +127 -0
  42. package/dist/data/obs-plugins/obs-filters/locale/fil-PH.ini +111 -0
  43. package/dist/data/obs-plugins/obs-filters/locale/fr-FR.ini +124 -0
  44. package/dist/data/obs-plugins/obs-filters/locale/gd-GB.ini +94 -0
  45. package/dist/data/obs-plugins/obs-filters/locale/gl-ES.ini +132 -0
  46. package/dist/data/obs-plugins/obs-filters/locale/he-IL.ini +135 -0
  47. package/dist/data/obs-plugins/obs-filters/locale/hi-IN.ini +134 -0
  48. package/dist/data/obs-plugins/obs-filters/locale/hr-HR.ini +80 -0
  49. package/dist/data/obs-plugins/obs-filters/locale/hu-HU.ini +131 -0
  50. package/dist/data/obs-plugins/obs-filters/locale/hy-AM.ini +130 -0
  51. package/dist/data/obs-plugins/obs-filters/locale/id-ID.ini +112 -0
  52. package/dist/data/obs-plugins/obs-filters/locale/it-IT.ini +130 -0
  53. package/dist/data/obs-plugins/obs-filters/locale/ja-JP.ini +134 -0
  54. package/dist/data/obs-plugins/obs-filters/locale/ka-GE.ini +133 -0
  55. package/dist/data/obs-plugins/obs-filters/locale/kaa.ini +41 -0
  56. package/dist/data/obs-plugins/obs-filters/locale/kab-KAB.ini +56 -0
  57. package/dist/data/obs-plugins/obs-filters/locale/kmr-TR.ini +126 -0
  58. package/dist/data/obs-plugins/obs-filters/locale/ko-KR.ini +134 -0
  59. package/dist/data/obs-plugins/obs-filters/locale/ms-MY.ini +131 -0
  60. package/dist/data/obs-plugins/obs-filters/locale/nb-NO.ini +115 -0
  61. package/dist/data/obs-plugins/obs-filters/locale/nl-NL.ini +111 -0
  62. package/dist/data/obs-plugins/obs-filters/locale/nn-NO.ini +19 -0
  63. package/dist/data/obs-plugins/obs-filters/locale/pl-PL.ini +127 -0
  64. package/dist/data/obs-plugins/obs-filters/locale/pt-BR.ini +128 -0
  65. package/dist/data/obs-plugins/obs-filters/locale/pt-PT.ini +130 -0
  66. package/dist/data/obs-plugins/obs-filters/locale/ro-RO.ini +125 -0
  67. package/dist/data/obs-plugins/obs-filters/locale/ru-RU.ini +135 -0
  68. package/dist/data/obs-plugins/obs-filters/locale/si-LK.ini +44 -0
  69. package/dist/data/obs-plugins/obs-filters/locale/sk-SK.ini +131 -0
  70. package/dist/data/obs-plugins/obs-filters/locale/sl-SI.ini +133 -0
  71. package/dist/data/obs-plugins/obs-filters/locale/sr-CS.ini +90 -0
  72. package/dist/data/obs-plugins/obs-filters/locale/sr-SP.ini +97 -0
  73. package/dist/data/obs-plugins/obs-filters/locale/sv-SE.ini +129 -0
  74. package/dist/data/obs-plugins/obs-filters/locale/szl-PL.ini +94 -0
  75. package/dist/data/obs-plugins/obs-filters/locale/ta-IN.ini +28 -0
  76. package/dist/data/obs-plugins/obs-filters/locale/th-TH.ini +132 -0
  77. package/dist/data/obs-plugins/obs-filters/locale/tl-PH.ini +64 -0
  78. package/dist/data/obs-plugins/obs-filters/locale/tr-TR.ini +129 -0
  79. package/dist/data/obs-plugins/obs-filters/locale/tt-RU.ini +27 -0
  80. package/dist/data/obs-plugins/obs-filters/locale/ug-CN.ini +133 -0
  81. package/dist/data/obs-plugins/obs-filters/locale/uk-UA.ini +135 -0
  82. package/dist/data/obs-plugins/obs-filters/locale/vi-VN.ini +131 -0
  83. package/dist/data/obs-plugins/obs-filters/locale/zh-CN.ini +138 -0
  84. package/dist/data/obs-plugins/obs-filters/locale/zh-TW.ini +136 -0
  85. package/dist/data/obs-plugins/obs-filters/luma_key_filter.effect +52 -0
  86. package/dist/data/obs-plugins/obs-filters/luma_key_filter_v2.effect +54 -0
  87. package/dist/data/obs-plugins/obs-filters/mask_alpha_filter.effect +54 -0
  88. package/dist/data/obs-plugins/obs-filters/mask_color_filter.effect +55 -0
  89. package/dist/data/obs-plugins/obs-filters/rtx_greenscreen.effect +183 -0
  90. package/dist/data/obs-plugins/obs-filters/sharpness.effect +76 -0
  91. package/dist/data/obs-plugins/obs-nvenc/locale/ar-SA.ini +60 -0
  92. package/dist/data/obs-plugins/obs-nvenc/locale/be-BY.ini +59 -0
  93. package/dist/data/obs-plugins/obs-nvenc/locale/bg-BG.ini +2 -0
  94. package/dist/data/obs-plugins/obs-nvenc/locale/ca-ES.ini +59 -0
  95. package/dist/data/obs-plugins/obs-nvenc/locale/cs-CZ.ini +55 -0
  96. package/dist/data/obs-plugins/obs-nvenc/locale/da-DK.ini +54 -0
  97. package/dist/data/obs-plugins/obs-nvenc/locale/de-DE.ini +55 -0
  98. package/dist/data/obs-plugins/obs-nvenc/locale/en-GB.ini +9 -0
  99. package/dist/data/obs-plugins/obs-nvenc/locale/en-US.ini +75 -0
  100. package/dist/data/obs-plugins/obs-nvenc/locale/es-ES.ini +59 -0
  101. package/dist/data/obs-plugins/obs-nvenc/locale/et-EE.ini +36 -0
  102. package/dist/data/obs-plugins/obs-nvenc/locale/fa-IR.ini +60 -0
  103. package/dist/data/obs-plugins/obs-nvenc/locale/fi-FI.ini +59 -0
  104. package/dist/data/obs-plugins/obs-nvenc/locale/fr-FR.ini +59 -0
  105. package/dist/data/obs-plugins/obs-nvenc/locale/gl-ES.ini +60 -0
  106. package/dist/data/obs-plugins/obs-nvenc/locale/he-IL.ini +60 -0
  107. package/dist/data/obs-plugins/obs-nvenc/locale/hi-IN.ini +60 -0
  108. package/dist/data/obs-plugins/obs-nvenc/locale/hu-HU.ini +60 -0
  109. package/dist/data/obs-plugins/obs-nvenc/locale/id-ID.ini +55 -0
  110. package/dist/data/obs-plugins/obs-nvenc/locale/is-IS.ini +2 -0
  111. package/dist/data/obs-plugins/obs-nvenc/locale/it-IT.ini +60 -0
  112. package/dist/data/obs-plugins/obs-nvenc/locale/ja-JP.ini +59 -0
  113. package/dist/data/obs-plugins/obs-nvenc/locale/ka-GE.ini +60 -0
  114. package/dist/data/obs-plugins/obs-nvenc/locale/kaa.ini +13 -0
  115. package/dist/data/obs-plugins/obs-nvenc/locale/kmr-TR.ini +20 -0
  116. package/dist/data/obs-plugins/obs-nvenc/locale/ko-KR.ini +58 -0
  117. package/dist/data/obs-plugins/obs-nvenc/locale/ms-MY.ini +58 -0
  118. package/dist/data/obs-plugins/obs-nvenc/locale/nb-NO.ini +24 -0
  119. package/dist/data/obs-plugins/obs-nvenc/locale/nl-NL.ini +54 -0
  120. package/dist/data/obs-plugins/obs-nvenc/locale/nn-NO.ini +1 -0
  121. package/dist/data/obs-plugins/obs-nvenc/locale/pl-PL.ini +55 -0
  122. package/dist/data/obs-plugins/obs-nvenc/locale/pt-BR.ini +58 -0
  123. package/dist/data/obs-plugins/obs-nvenc/locale/pt-PT.ini +60 -0
  124. package/dist/data/obs-plugins/obs-nvenc/locale/ru-RU.ini +60 -0
  125. package/dist/data/obs-plugins/obs-nvenc/locale/sk-SK.ini +56 -0
  126. package/dist/data/obs-plugins/obs-nvenc/locale/sv-SE.ini +58 -0
  127. package/dist/data/obs-plugins/obs-nvenc/locale/th-TH.ini +59 -0
  128. package/dist/data/obs-plugins/obs-nvenc/locale/tr-TR.ini +60 -0
  129. package/dist/data/obs-plugins/obs-nvenc/locale/tt-RU.ini +2 -0
  130. package/dist/data/obs-plugins/obs-nvenc/locale/ug-CN.ini +60 -0
  131. package/dist/data/obs-plugins/obs-nvenc/locale/uk-UA.ini +60 -0
  132. package/dist/data/obs-plugins/obs-nvenc/locale/vi-VN.ini +60 -0
  133. package/dist/data/obs-plugins/obs-nvenc/locale/zh-CN.ini +60 -0
  134. package/dist/data/obs-plugins/obs-nvenc/locale/zh-TW.ini +60 -0
  135. package/dist/data/obs-plugins/obs-qsv11/locale/af-ZA.ini +19 -0
  136. package/dist/data/obs-plugins/obs-qsv11/locale/ar-SA.ini +20 -0
  137. package/dist/data/obs-plugins/obs-qsv11/locale/ba-RU.ini +2 -0
  138. package/dist/data/obs-plugins/obs-qsv11/locale/be-BY.ini +20 -0
  139. package/dist/data/obs-plugins/obs-qsv11/locale/bg-BG.ini +7 -0
  140. package/dist/data/obs-plugins/obs-qsv11/locale/bn-BD.ini +8 -0
  141. package/dist/data/obs-plugins/obs-qsv11/locale/ca-ES.ini +20 -0
  142. package/dist/data/obs-plugins/obs-qsv11/locale/cs-CZ.ini +19 -0
  143. package/dist/data/obs-plugins/obs-qsv11/locale/da-DK.ini +19 -0
  144. package/dist/data/obs-plugins/obs-qsv11/locale/de-DE.ini +19 -0
  145. package/dist/data/obs-plugins/obs-qsv11/locale/el-GR.ini +20 -0
  146. package/dist/data/obs-plugins/obs-qsv11/locale/en-GB.ini +1 -0
  147. package/dist/data/obs-plugins/obs-qsv11/locale/en-US.ini +21 -0
  148. package/dist/data/obs-plugins/obs-qsv11/locale/es-ES.ini +19 -0
  149. package/dist/data/obs-plugins/obs-qsv11/locale/et-EE.ini +20 -0
  150. package/dist/data/obs-plugins/obs-qsv11/locale/eu-ES.ini +11 -0
  151. package/dist/data/obs-plugins/obs-qsv11/locale/fa-IR.ini +20 -0
  152. package/dist/data/obs-plugins/obs-qsv11/locale/fi-FI.ini +20 -0
  153. package/dist/data/obs-plugins/obs-qsv11/locale/fil-PH.ini +11 -0
  154. package/dist/data/obs-plugins/obs-qsv11/locale/fr-FR.ini +20 -0
  155. package/dist/data/obs-plugins/obs-qsv11/locale/gd-GB.ini +8 -0
  156. package/dist/data/obs-plugins/obs-qsv11/locale/gl-ES.ini +20 -0
  157. package/dist/data/obs-plugins/obs-qsv11/locale/he-IL.ini +20 -0
  158. package/dist/data/obs-plugins/obs-qsv11/locale/hi-IN.ini +20 -0
  159. package/dist/data/obs-plugins/obs-qsv11/locale/hr-HR.ini +14 -0
  160. package/dist/data/obs-plugins/obs-qsv11/locale/hu-HU.ini +20 -0
  161. package/dist/data/obs-plugins/obs-qsv11/locale/hy-AM.ini +13 -0
  162. package/dist/data/obs-plugins/obs-qsv11/locale/id-ID.ini +18 -0
  163. package/dist/data/obs-plugins/obs-qsv11/locale/is-IS.ini +1 -0
  164. package/dist/data/obs-plugins/obs-qsv11/locale/it-IT.ini +20 -0
  165. package/dist/data/obs-plugins/obs-qsv11/locale/ja-JP.ini +16 -0
  166. package/dist/data/obs-plugins/obs-qsv11/locale/ka-GE.ini +20 -0
  167. package/dist/data/obs-plugins/obs-qsv11/locale/kaa.ini +10 -0
  168. package/dist/data/obs-plugins/obs-qsv11/locale/kab-KAB.ini +5 -0
  169. package/dist/data/obs-plugins/obs-qsv11/locale/kmr-TR.ini +12 -0
  170. package/dist/data/obs-plugins/obs-qsv11/locale/ko-KR.ini +20 -0
  171. package/dist/data/obs-plugins/obs-qsv11/locale/ms-MY.ini +20 -0
  172. package/dist/data/obs-plugins/obs-qsv11/locale/nb-NO.ini +16 -0
  173. package/dist/data/obs-plugins/obs-qsv11/locale/nl-NL.ini +18 -0
  174. package/dist/data/obs-plugins/obs-qsv11/locale/nn-NO.ini +2 -0
  175. package/dist/data/obs-plugins/obs-qsv11/locale/oc-FR.ini +1 -0
  176. package/dist/data/obs-plugins/obs-qsv11/locale/pl-PL.ini +16 -0
  177. package/dist/data/obs-plugins/obs-qsv11/locale/pt-BR.ini +20 -0
  178. package/dist/data/obs-plugins/obs-qsv11/locale/pt-PT.ini +20 -0
  179. package/dist/data/obs-plugins/obs-qsv11/locale/ro-RO.ini +20 -0
  180. package/dist/data/obs-plugins/obs-qsv11/locale/ru-RU.ini +20 -0
  181. package/dist/data/obs-plugins/obs-qsv11/locale/si-LK.ini +8 -0
  182. package/dist/data/obs-plugins/obs-qsv11/locale/sk-SK.ini +19 -0
  183. package/dist/data/obs-plugins/obs-qsv11/locale/sl-SI.ini +20 -0
  184. package/dist/data/obs-plugins/obs-qsv11/locale/sr-CS.ini +6 -0
  185. package/dist/data/obs-plugins/obs-qsv11/locale/sr-SP.ini +10 -0
  186. package/dist/data/obs-plugins/obs-qsv11/locale/sv-SE.ini +20 -0
  187. package/dist/data/obs-plugins/obs-qsv11/locale/ta-IN.ini +2 -0
  188. package/dist/data/obs-plugins/obs-qsv11/locale/th-TH.ini +20 -0
  189. package/dist/data/obs-plugins/obs-qsv11/locale/tl-PH.ini +5 -0
  190. package/dist/data/obs-plugins/obs-qsv11/locale/tr-TR.ini +20 -0
  191. package/dist/data/obs-plugins/obs-qsv11/locale/tt-RU.ini +3 -0
  192. package/dist/data/obs-plugins/obs-qsv11/locale/ug-CN.ini +20 -0
  193. package/dist/data/obs-plugins/obs-qsv11/locale/uk-UA.ini +20 -0
  194. package/dist/data/obs-plugins/obs-qsv11/locale/vi-VN.ini +20 -0
  195. package/dist/data/obs-plugins/obs-qsv11/locale/zh-CN.ini +20 -0
  196. package/dist/data/obs-plugins/obs-qsv11/locale/zh-TW.ini +20 -0
  197. package/dist/noobs.node +0 -0
  198. package/dist/obs-plugins/image-source.dll +0 -0
  199. package/dist/obs-plugins/obs-filters.dll +0 -0
  200. package/dist/obs-plugins/obs-nvenc.dll +0 -0
  201. package/dist/obs-plugins/obs-qsv11.dll +0 -0
  202. package/dist/obs-plugins/obs-x264.dll +0 -0
  203. package/dist/obs-plugins/win-capture.dll +0 -0
  204. package/dist/obs-plugins/win-wasapi.dll +0 -0
  205. package/index.d.ts +5 -8
  206. package/package.json +1 -1
  207. package/src/main.cpp +34 -65
  208. package/src/obs_interface.cpp +322 -215
  209. package/src/obs_interface.h +29 -27
package/index.d.ts CHANGED
@@ -136,7 +136,7 @@ export type ObsProperty =
136
136
  | ObsGenericProperty;
137
137
 
138
138
  export type Signal = {
139
- type: string; // Either "output" or "volmeter".
139
+ type: string; // Either "output" or "volmeter" or "source".
140
140
  id: string; // Signal identifier, e.g. "stop"
141
141
  code: number; // 0 for success, other values for errors
142
142
  value?: number; // Currently only used for volmeters.
@@ -158,7 +158,6 @@ interface Noobs {
158
158
  Init(
159
159
  distPath: string,
160
160
  logPath: string,
161
- recordingPath: string,
162
161
  cb: (signal: Signal) => void,
163
162
  ): void;
164
163
 
@@ -179,7 +178,7 @@ interface Noobs {
179
178
  SetVideoEncoder(id: string, settings: ObsData): void; // Create the video encoder to use.
180
179
 
181
180
  // Source management functions.
182
- CreateSource(name: string, type: string): void;
181
+ CreateSource(name: string, type: string): string; // Returns the name of the source, which may vary in the event of a name conflict.
183
182
  DeleteSource(name: string): void;
184
183
  GetSourceSettings(name: string): ObsData;
185
184
  SetSourceSettings(name: string, settings: ObsData): void;
@@ -187,18 +186,16 @@ interface Noobs {
187
186
 
188
187
  // Audio source management functions.
189
188
  SetMuteAudioInputs(mute: boolean): void; // Mute or unmute all audio inputs.
190
- SetInputVolume(volume: number): void; // Set the volume for all audio inputs sources.
191
- SetOutputVolume(volume: number): void; // Set the volume for all audio outputs sources.
192
- SetProcessVolume(volume: number): void; // Set the volume for all audio process sources.
193
-
189
+ SetSourceVolume(name: string, volume: number): void; // Set the volume for a specific audio source (0.0 to 1.0).
194
190
  SetVolmeterEnabled(enabled: boolean): void; // Enable or disable the volume meter.
191
+ SetAudioSuppression(enabled: boolean): void; // Enable or disable audio suppression (noise gate).
192
+ SetForceMono(enabled: boolean): void; // Enable or disable the force mono audio setting.
195
193
 
196
194
  // Scene management functions.
197
195
  AddSourceToScene(sourceName: string): void;
198
196
  RemoveSourceFromScene(sourceName: string): void;
199
197
  GetSourcePos(name: string): SceneItemPosition & SourceDimensions;
200
198
  SetSourcePos(name: string, pos: SceneItemPosition): void;
201
- // TODO: Cropping?
202
199
 
203
200
  // Preview functions.
204
201
  InitPreview(hwnd: Buffer): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "noobs",
3
- "version": "0.0.115",
3
+ "version": "0.0.131",
4
4
  "description": "A native Node.js addon with libobs bindings for Warcraft Recorder.",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
package/src/main.cpp CHANGED
@@ -7,11 +7,10 @@
7
7
  ObsInterface* obs = nullptr;
8
8
 
9
9
  Napi::Value ObsInit(const Napi::CallbackInfo& info) {
10
- bool valid = info.Length() == 4 &&
10
+ bool valid = info.Length() == 3 &&
11
11
  info[0].IsString() && // Dist path
12
12
  info[1].IsString() && // Log path
13
- info[2].IsString() && // Recording path
14
- info[3].IsFunction(); // JavaScript callback
13
+ info[2].IsFunction(); // JavaScript callback
15
14
 
16
15
  if (!valid) {
17
16
  Napi::Error::New(info.Env(), "Invalid arguments passed to ObsInit").ThrowAsJavaScriptException();
@@ -20,13 +19,12 @@ Napi::Value ObsInit(const Napi::CallbackInfo& info) {
20
19
 
21
20
  std::string distPath = info[0].As<Napi::String>().Utf8Value();
22
21
  std::string logPath = info[1].As<Napi::String>().Utf8Value();
23
- std::string recordingPath = info[2].As<Napi::String>().Utf8Value();
24
- Napi::Function fn = info[3].As<Napi::Function>();
22
+ Napi::Function fn = info[2].As<Napi::Function>();
25
23
 
26
24
  Napi::ThreadSafeFunction jscb =
27
25
  Napi::ThreadSafeFunction::New(info.Env(), fn, "JavaScript callback", 0, 1);
28
26
 
29
- obs = new ObsInterface(distPath, logPath, recordingPath, jscb);
27
+ obs = new ObsInterface(distPath, logPath, jscb);
30
28
  return info.Env().Undefined();
31
29
  }
32
30
 
@@ -118,7 +116,6 @@ Napi::Value ObsSetVideoEncoder(const Napi::CallbackInfo& info) {
118
116
 
119
117
  obs_data_t* settings = napi_to_data(obj);
120
118
  obs->setVideoEncoder(id, settings);
121
- obs_data_release(settings);
122
119
 
123
120
  return info.Env().Undefined();
124
121
  }
@@ -139,12 +136,7 @@ Napi::Value ObsSetBuffering(const Napi::CallbackInfo& info) {
139
136
  }
140
137
 
141
138
  bool buffering = info[0].As<Napi::Boolean>().Value();
142
- bool success = obs->setBuffering(buffering);
143
-
144
- if (!success) {
145
- Napi::Error::New(info.Env(), "Failed to set buffering mode, is recording active?").ThrowAsJavaScriptException();
146
- return info.Env().Undefined();
147
- }
139
+ obs->setBuffering(buffering);
148
140
 
149
141
  return info.Env().Undefined();
150
142
  }
@@ -329,8 +321,8 @@ Napi::Value ObsCreateSource(const Napi::CallbackInfo& info) {
329
321
  std::string name = info[0].As<Napi::String>().Utf8Value();
330
322
  std::string type = info[1].As<Napi::String>().Utf8Value();
331
323
 
332
- obs->createSource(name, type);
333
- return info.Env().Undefined();
324
+ std::string real_name = obs->createSource(name, type);
325
+ return Napi::String::New(info.Env(), real_name);
334
326
  }
335
327
 
336
328
  Napi::Value ObsDeleteSource(const Napi::CallbackInfo& info) {
@@ -436,98 +428,77 @@ Napi::Value ObsSetMuteAudioInputs(const Napi::CallbackInfo& info) {
436
428
  return info.Env().Undefined();
437
429
  }
438
430
 
439
- Napi::Value ObsSetOutputVolume(const Napi::CallbackInfo& info) {
431
+ Napi::Value ObsSetSourceVolume(const Napi::CallbackInfo& info) {
440
432
  if (!obs) {
441
- blog(LOG_ERROR, "ObsSetOutputVolume called but obs is not initialized");
433
+ blog(LOG_ERROR, "ObsSetSourceVolume called but obs is not initialized");
442
434
  throw std::runtime_error("Obs not initialized");
443
435
  }
444
436
 
445
- bool valid = info.Length() == 1 && info[0].IsNumber();
446
- float volume = info[0].As<Napi::Number>().FloatValue();
437
+ bool valid = info.Length() == 2 && info[0].IsString() && info[1].IsNumber();
438
+ std::string name = info[0].As<Napi::String>().Utf8Value();
439
+ float volume = info[1].As<Napi::Number>().FloatValue();
447
440
 
448
441
  if (!valid || (volume < 0.0f || volume > 1.0f)) {
449
442
  Napi::TypeError::New(info.Env(), "Invalid arguments passed to ObsSetOutputVolume").ThrowAsJavaScriptException();
450
443
  return info.Env().Undefined();
451
444
  }
452
445
 
453
- obs->setOutputVolume(volume);
446
+ obs->setSourceVolume(name,volume);
454
447
  return info.Env().Undefined();
455
448
  }
456
449
 
457
- Napi::Value ObsSetInputVolume(const Napi::CallbackInfo& info) {
450
+ Napi::Value ObsSetVolmeterEnabled(const Napi::CallbackInfo& info) {
458
451
  if (!obs) {
459
- blog(LOG_ERROR, "ObsSetInputVolume called but obs is not initialized");
452
+ blog(LOG_ERROR, "ObsSetVolmeterEnabled called but obs is not initialized");
460
453
  throw std::runtime_error("Obs not initialized");
461
454
  }
462
455
 
463
- bool valid = info.Length() == 1 && info[0].IsNumber();
464
- float volume = info[0].As<Napi::Number>().FloatValue();
465
-
466
- if (!valid || (volume < 0.0f || volume > 1.0f)) {
467
- Napi::TypeError::New(info.Env(), "Invalid arguments passed to ObsSetInputVolume").ThrowAsJavaScriptException();
468
- return info.Env().Undefined();
469
- }
470
-
471
- obs->setInputVolume(volume);
472
- return info.Env().Undefined();
473
- }
474
-
475
- Napi::Value ObsSetProcessVolume(const Napi::CallbackInfo& info) {
476
- if (!obs) {
477
- blog(LOG_ERROR, "ObsSetProcessVolume called but obs is not initialized");
478
- throw std::runtime_error("Obs not initialized");
479
- }
456
+ bool valid = info.Length() == 1 && info[0].IsBoolean();
480
457
 
481
- bool valid = info.Length() == 1 && info[0].IsNumber();
482
- float volume = info[0].As<Napi::Number>().FloatValue();
483
458
 
484
- if (!valid || (volume < 0.0f || volume > 1.0f)) {
485
- Napi::TypeError::New(info.Env(), "Invalid arguments passed to ObsSetProcessVolume").ThrowAsJavaScriptException();
459
+ if (!valid) {
460
+ Napi::TypeError::New(info.Env(), "Invalid arguments passed to ObsSetVolmeterEnabled").ThrowAsJavaScriptException();
486
461
  return info.Env().Undefined();
487
462
  }
488
463
 
489
- obs->setProcessVolume(volume);
464
+ bool enabled = info[0].As<Napi::Boolean>().Value();
465
+ obs->setVolmeterEnabled(enabled);
490
466
  return info.Env().Undefined();
491
467
  }
492
468
 
493
- Napi::Value ObsSetVolmeterEnabled(const Napi::CallbackInfo& info) {
469
+ Napi::Value ObsSetAudioSuppression(const Napi::CallbackInfo& info) {
494
470
  if (!obs) {
495
- blog(LOG_ERROR, "ObsSetVolmeterEnabled called but obs is not initialized");
471
+ blog(LOG_ERROR, "ObsSetAudioSuppression called but obs is not initialized");
496
472
  throw std::runtime_error("Obs not initialized");
497
473
  }
498
474
 
499
475
  bool valid = info.Length() == 1 && info[0].IsBoolean();
500
476
 
501
-
502
477
  if (!valid) {
503
- Napi::TypeError::New(info.Env(), "Invalid arguments passed to ObsSetVolmeterEnabled").ThrowAsJavaScriptException();
504
- return info.Env().Undefined();
478
+ Napi::TypeError::New(info.Env(), "Invalid arguments passed to ObsSetAudioSuppression").ThrowAsJavaScriptException();
479
+ return info.Env().Undefined();
505
480
  }
506
481
 
507
482
  bool enabled = info[0].As<Napi::Boolean>().Value();
508
- obs->setVolmeterEnabled(enabled);
483
+ obs->setAudioSuppression(enabled);
509
484
  return info.Env().Undefined();
510
485
  }
511
486
 
512
- Napi::Value ObsCreateScene(const Napi::CallbackInfo& info) {
487
+ Napi::Value ObsSetForceMono(const Napi::CallbackInfo& info) {
513
488
  if (!obs) {
514
- blog(LOG_ERROR, "ObsCreateScene called but obs is not initialized");
489
+ blog(LOG_ERROR, "ObsSetForceMono called but obs is not initialized");
515
490
  throw std::runtime_error("Obs not initialized");
516
491
  }
517
492
 
518
- bool valid = info.Length() == 2 &&
519
- info[0].IsString() && // Scene name
520
- info[1].IsString(); // Source type
493
+ bool valid = info.Length() == 1 && info[0].IsBoolean();
521
494
 
522
495
  if (!valid) {
523
- Napi::TypeError::New(info.Env(), "Invalid arguments passed to ObsCreateScene").ThrowAsJavaScriptException();
496
+ Napi::TypeError::New(info.Env(), "Invalid arguments passed to ObsSetForceMono").ThrowAsJavaScriptException();
524
497
  return info.Env().Undefined();
525
498
  }
526
499
 
527
- std::string name = info[0].As<Napi::String>().Utf8Value();
528
- std::string type = info[1].As<Napi::String>().Utf8Value();
529
-
530
- obs->createSource(name, type);
500
+ bool enabled = info[0].As<Napi::Boolean>().Value();
501
+ obs->setForceMono(enabled);
531
502
  return info.Env().Undefined();
532
503
  }
533
504
 
@@ -664,12 +635,10 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) {
664
635
  exports.Set("SetSourceSettings", Napi::Function::New(env, ObsSetSourceSettings));
665
636
  exports.Set("GetSourceProperties", Napi::Function::New(env, ObsGetSourceProperties));
666
637
  exports.Set("SetMuteAudioInputs", Napi::Function::New(env, ObsSetMuteAudioInputs));
667
-
668
- exports.Set("SetOutputVolume", Napi::Function::New(env, ObsSetOutputVolume));
669
- exports.Set("SetInputVolume", Napi::Function::New(env, ObsSetInputVolume));
670
- exports.Set("SetProcessVolume", Napi::Function::New(env, ObsSetProcessVolume));
671
-
638
+ exports.Set("SetSourceVolume", Napi::Function::New(env, ObsSetSourceVolume));
672
639
  exports.Set("SetVolmeterEnabled", Napi::Function::New(env, ObsSetVolmeterEnabled));
640
+ exports.Set("SetAudioSuppression", Napi::Function::New(env, ObsSetAudioSuppression));
641
+ exports.Set("SetForceMono", Napi::Function::New(env, ObsSetForceMono));
673
642
 
674
643
  exports.Set("AddSourceToScene", Napi::Function::New(env, ObsAddSourceToScene));
675
644
  exports.Set("RemoveSourceFromScene", Napi::Function::New(env, ObsRemoveSourceFromScene));