noobs 0.0.158 → 0.0.176

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.
package/dist/noobs.node CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "noobs",
3
- "version": "0.0.158",
3
+ "version": "0.0.176",
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",
@@ -66,10 +66,10 @@ void ObsInterface::load_module(const char* module, const char* data, bool allowF
66
66
  blog(LOG_INFO, "Allow fail: %d", allowFail);
67
67
 
68
68
  obs_module_t *ptr = NULL;
69
- int success = obs_open_module(&ptr, module, data);
69
+ int openmod = obs_open_module(&ptr, module, data);
70
70
 
71
- if (success != MODULE_SUCCESS) {
72
- blog(LOG_ERROR, "Failed to open module: %s", module);
71
+ if (openmod != MODULE_SUCCESS) {
72
+ blog(LOG_ERROR, "Failed to open module: %s, %d", module, openmod);
73
73
  throw std::runtime_error("Failed to open module!");
74
74
  }
75
75
 
package/src/utils.cpp CHANGED
@@ -8,56 +8,56 @@
8
8
  #include <windows.h>
9
9
 
10
10
  void log_handler(int lvl, const char *msg, va_list args, void *p) {
11
- static std::ofstream logFile;
12
- static bool initialized = false;
13
-
14
- if (!initialized) {
15
- // Build log filename
16
- auto now = std::chrono::system_clock::now();
17
- auto t = std::chrono::system_clock::to_time_t(now);
18
- std::stringstream filename;
19
- filename << "OBS-" << std::put_time(std::localtime(&t), "%Y-%m-%d") << ".log";
11
+ static std::stringstream logFileName;
12
+ static bool logInitialized = false;
13
+
14
+ if (!logInitialized) {
15
+ // Build the log filename.
16
+ auto now = std::chrono::system_clock::now();
17
+ auto t = std::chrono::system_clock::to_time_t(now);
20
18
 
21
- std::string log_dir = static_cast<const char*>(p);
22
- if (!log_dir.empty() && log_dir.back() != '\\' && log_dir.back() != '/')
23
- log_dir += '\\';
19
+ std::string logDir = static_cast<const char*>(p);
24
20
 
25
- logFile.open(log_dir + filename.str(), std::ios::app);
26
- initialized = true;
21
+ if (!logDir.empty() && logDir.back() != '\\' && logDir.back() != '/') {
22
+ logDir += '\\';
27
23
  }
24
+
25
+ logFileName << logDir << "OBS-" << std::put_time(std::localtime(&t), "%Y-%m-%d") << ".log";
26
+ logInitialized = true;
27
+ }
28
28
 
29
- if (!logFile.is_open()) return;
29
+ // Timestamp
30
+ auto now = std::chrono::system_clock::now();
31
+ auto t = std::chrono::system_clock::to_time_t(now);
32
+ auto ms = std::chrono::duration_cast<std::chrono::milliseconds>(
33
+ now.time_since_epoch()) % 1000;
30
34
 
31
- // Timestamp
32
- auto now = std::chrono::system_clock::now();
33
- auto t = std::chrono::system_clock::to_time_t(now);
34
- auto ms = std::chrono::duration_cast<std::chrono::milliseconds>(
35
- now.time_since_epoch()) % 1000;
35
+ std::stringstream timestamp;
36
+ timestamp << "[" << std::put_time(std::localtime(&t), "%Y-%m-%d %H:%M:%S")
37
+ << "." << std::setfill('0') << std::setw(3) << ms.count() << "] ";
36
38
 
37
- std::stringstream timestamp;
38
- timestamp << "[" << std::put_time(std::localtime(&t), "%Y-%m-%d %H:%M:%S")
39
- << "." << std::setfill('0') << std::setw(3) << ms.count() << "] ";
39
+ // Log level
40
+ const char* level_str = "UNKNOWN";
41
+ switch (lvl) {
42
+ case LOG_ERROR: level_str = "ERROR"; break;
43
+ case LOG_WARNING: level_str = "WARN"; break;
44
+ case LOG_INFO: level_str = "INFO"; break;
45
+ case LOG_DEBUG: level_str = "DEBUG"; break;
46
+ }
47
+ timestamp << "[" << level_str << "] ";
40
48
 
41
- // Log level
42
- const char* level_str = "UNKNOWN";
43
- switch (lvl) {
44
- case LOG_ERROR: level_str = "ERROR"; break;
45
- case LOG_WARNING: level_str = "WARN"; break;
46
- case LOG_INFO: level_str = "INFO"; break;
47
- case LOG_DEBUG: level_str = "DEBUG"; break;
48
- }
49
- timestamp << "[" << level_str << "] ";
49
+ // Format message
50
+ char buffer[4096];
51
+ vsnprintf(buffer, sizeof(buffer), msg, args);
50
52
 
51
- // Format message
52
- char buffer[4096];
53
- vsnprintf(buffer, sizeof(buffer), msg, args);
53
+ // Prepend timestamp and flush per line
54
+ std::istringstream iss(buffer);
55
+ std::string line;
56
+ std::ofstream logFile(logFileName.str(), std::ios::app);
54
57
 
55
- // Prepend timestamp and flush per line
56
- std::istringstream iss(buffer);
57
- std::string line;
58
- while (std::getline(iss, line)) {
59
- logFile << timestamp.str() << line << std::endl; // std::endl flushes
60
- }
58
+ while (logFile.is_open() && std::getline(iss, line)) {
59
+ logFile << timestamp.str() << line << std::endl; // std::endl flushes
60
+ }
61
61
  }
62
62
 
63
63
  Napi::Object data_to_napi(Napi::Env env, obs_data_t* data) {