hamlib 0.1.23 → 0.1.24

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/index.d.ts CHANGED
@@ -482,6 +482,15 @@ declare class HamLib {
482
482
  */
483
483
  getSupportedFunctions(): string[];
484
484
 
485
+ /**
486
+ * Get list of supported radio modes
487
+ * @returns Array of supported mode strings
488
+ * @example
489
+ * const modes = rig.getSupportedModes();
490
+ * console.log('Supported modes:', modes); // ['USB', 'LSB', 'CW', 'FM', 'AM', ...]
491
+ */
492
+ getSupportedModes(): string[];
493
+
485
494
  // Split Operations
486
495
 
487
496
  /**
package/lib/index.js CHANGED
@@ -307,6 +307,17 @@ class HamLib {
307
307
  return this._nativeInstance.getSupportedFunctions();
308
308
  }
309
309
 
310
+ /**
311
+ * Get list of supported radio modes
312
+ * @returns {Array<string>} Array of supported mode strings
313
+ * @example
314
+ * const modes = rig.getSupportedModes();
315
+ * console.log('Supported modes:', modes); // ['USB', 'LSB', 'CW', 'FM', 'AM', ...]
316
+ */
317
+ getSupportedModes() {
318
+ return this._nativeInstance.getSupportedModes();
319
+ }
320
+
310
321
  // Split Operations
311
322
 
312
323
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hamlib",
3
- "version": "0.1.23",
3
+ "version": "0.1.24",
4
4
  "description": "Node.js wrapper for hamlib radio control library",
5
5
  "main": "index.js",
6
6
  "module": "lib/index.mjs",
@@ -1,7 +1,7 @@
1
1
  Node-HamLib Precompiled Binaries
2
2
  ================================
3
- Build Time: Sun Oct 19 05:09:54 UTC 2025
4
- Git Commit: 300713b7df0efe245e97518a6051327cfd4ac7aa
3
+ Build Time: Sun Oct 19 14:19:17 UTC 2025
4
+ Git Commit: e810fce21b570a4bac71580f4371b548e08443b0
5
5
  Git Ref: refs/heads/main
6
6
 
7
7
  Supported Platforms:
Binary file
Binary file
package/src/hamlib.cpp CHANGED
@@ -3246,6 +3246,32 @@ Napi::Value NodeHamLib::GetSupportedFunctions(const Napi::CallbackInfo & info) {
3246
3246
  return funcArray;
3247
3247
  }
3248
3248
 
3249
+ // Mode Query
3250
+ Napi::Value NodeHamLib::GetSupportedModes(const Napi::CallbackInfo & info) {
3251
+ Napi::Env env = info.Env();
3252
+
3253
+ // Get mode list from rig state (populated during rig_open from rx/tx range lists)
3254
+ rmode_t modes = my_rig->state.mode_list;
3255
+ Napi::Array modeArray = Napi::Array::New(env);
3256
+ uint32_t index = 0;
3257
+
3258
+ // Iterate through all possible mode bits (similar to rig_sprintf_mode)
3259
+ for (unsigned int i = 0; i < HAMLIB_MAX_MODES; i++) {
3260
+ rmode_t mode_bit = modes & (1ULL << i);
3261
+
3262
+ if (mode_bit) {
3263
+ const char* mode_str = rig_strrmode(mode_bit);
3264
+
3265
+ // Skip empty or unknown modes
3266
+ if (mode_str && mode_str[0] != '\0') {
3267
+ modeArray[index++] = Napi::String::New(env, mode_str);
3268
+ }
3269
+ }
3270
+ }
3271
+
3272
+ return modeArray;
3273
+ }
3274
+
3249
3275
  // Split Operations
3250
3276
  Napi::Value NodeHamLib::SetSplitFreq(const Napi::CallbackInfo & info) {
3251
3277
  Napi::Env env = info.Env();
@@ -3600,7 +3626,10 @@ Napi::Function NodeHamLib::GetClass(Napi::Env env) {
3600
3626
  NodeHamLib::InstanceMethod("setFunction", & NodeHamLib::SetFunction),
3601
3627
  NodeHamLib::InstanceMethod("getFunction", & NodeHamLib::GetFunction),
3602
3628
  NodeHamLib::InstanceMethod("getSupportedFunctions", & NodeHamLib::GetSupportedFunctions),
3603
-
3629
+
3630
+ // Mode Query
3631
+ NodeHamLib::InstanceMethod("getSupportedModes", & NodeHamLib::GetSupportedModes),
3632
+
3604
3633
  // Split Operations
3605
3634
  NodeHamLib::InstanceMethod("setSplitFreq", & NodeHamLib::SetSplitFreq),
3606
3635
  NodeHamLib::InstanceMethod("getSplitFreq", & NodeHamLib::GetSplitFreq),
package/src/hamlib.h CHANGED
@@ -71,7 +71,10 @@ class NodeHamLib : public Napi::ObjectWrap<NodeHamLib> {
71
71
  Napi::Value SetFunction(const Napi::CallbackInfo&);
72
72
  Napi::Value GetFunction(const Napi::CallbackInfo&);
73
73
  Napi::Value GetSupportedFunctions(const Napi::CallbackInfo&);
74
-
74
+
75
+ // Mode Query
76
+ Napi::Value GetSupportedModes(const Napi::CallbackInfo&);
77
+
75
78
  // Split Operations
76
79
  Napi::Value SetSplitFreq(const Napi::CallbackInfo&);
77
80
  Napi::Value GetSplitFreq(const Napi::CallbackInfo&);