]> git.rkrishnan.org Git - pihpsdr.git/commitdiff
rigctl: implement zzmg correctly
authorRamakrishnan Muthukrishnan <ram@rkrishnan.org>
Wed, 12 Jan 2022 05:44:10 +0000 (11:14 +0530)
committerRamakrishnan Muthukrishnan <ram@rkrishnan.org>
Wed, 12 Jan 2022 05:44:10 +0000 (11:14 +0530)
rigctl.c

index 100c98fad7d8c5d2120242eba9cf057513be9c19..fc5c66b5ccc398ced5494aed0c083335da4482b4 100644 (file)
--- a/rigctl.c
+++ b/rigctl.c
@@ -1817,14 +1817,17 @@ gboolean parse_extended_cmd(char *command, CLIENT *client) {
       }
       break;
     case 'G': // ZZMG
-      // set/read mic gain
-      if (command[4] == ';') {
-        sprintf(reply, "ZZMG%03d;", (int)mic_gain);
-        send_resp(client->fd, reply);
-      } else if (command[7] == ';') {
-        mic_gain = (double)atoi(&command[4]);
-      }
-      break;
+        // set/read mic gain
+        if (command[4] == ';') {
+            sprintf(reply, "ZZMG%03d;", (int)(((mic_gain + 12.0) / 72.0) * 100.0));
+            send_resp(client->fd, reply);
+        } else if (command[7] == ';') {
+            command[7] = '\0';
+            double gain = (double)atoi(&command[4]);
+            gain = ((gain / 100.0) * 72.0) - 12.0;
+            set_mic_gain(gain);
+        }
+        break;
     case 'L': // ZZML
       // read DSP modes and indexes
       if (command[4] == ';') {