rpc: add hamlib_mode_name

This function returns a string that's useable as the mode of a logged
contact.

Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
2 files changed, 31 insertions(+), 15 deletions(-)

M rpc/hamlib.c
M rpc/include/hlog-rpc/rig-mode.h
M rpc/hamlib.c +29 -15
@@ 101,24 101,24 @@ static int hamlib_err2errno(int e)
 	panic("Unknown hamlib error code: %u", e);
 }
 
-#define MAP()							\
-	ENTRY(HRIG_MODE_AM,       RIG_MODE_AM)			\
-	ENTRY(HRIG_MODE_C4FM,     RIG_MODE_C4FM)		\
-	ENTRY(HRIG_MODE_FM,       RIG_MODE_FM)			\
-	ENTRY(HRIG_MODE_FM_DATA,  RIG_MODE_PKTFM)		\
-	ENTRY(HRIG_MODE_LSB,      RIG_MODE_LSB)			\
-	ENTRY(HRIG_MODE_LSB_CW,   RIG_MODE_CWR)			\
-	ENTRY(HRIG_MODE_LSB_DATA, RIG_MODE_PKTLSB)		\
-	ENTRY(HRIG_MODE_LSB_RTTY, RIG_MODE_RTTYR)		\
-	ENTRY(HRIG_MODE_USB,      RIG_MODE_USB)			\
-	ENTRY(HRIG_MODE_USB_CW,   RIG_MODE_CW)			\
-	ENTRY(HRIG_MODE_USB_DATA, RIG_MODE_PKTUSB)		\
-	ENTRY(HRIG_MODE_USB_RTTY, RIG_MODE_RTTY)
+#define MAP()								\
+	ENTRY(HRIG_MODE_AM,       RIG_MODE_AM,      "AM")		\
+	ENTRY(HRIG_MODE_C4FM,     RIG_MODE_C4FM,    "C4FM")		\
+	ENTRY(HRIG_MODE_FM,       RIG_MODE_FM,      "FM")		\
+	ENTRY(HRIG_MODE_FM_DATA,  RIG_MODE_PKTFM,   "DATA-FM")		\
+	ENTRY(HRIG_MODE_LSB,      RIG_MODE_LSB,     "LSB")		\
+	ENTRY(HRIG_MODE_LSB_CW,   RIG_MODE_CWR,     "CW")		\
+	ENTRY(HRIG_MODE_LSB_DATA, RIG_MODE_PKTLSB,  "DATA-L")		\
+	ENTRY(HRIG_MODE_LSB_RTTY, RIG_MODE_RTTYR,   "RTTY")		\
+	ENTRY(HRIG_MODE_USB,      RIG_MODE_USB,     "USB")		\
+	ENTRY(HRIG_MODE_USB_CW,   RIG_MODE_CW,      "CW")		\
+	ENTRY(HRIG_MODE_USB_DATA, RIG_MODE_PKTUSB,  "DATA-U")		\
+	ENTRY(HRIG_MODE_USB_RTTY, RIG_MODE_RTTY,    "RTTY")
 
 static int hamlib_mode2hmode(rmode_t mode)
 {
 	switch (mode) {
-#define ENTRY(hmode, rmode)	case rmode: return hmode;
+#define ENTRY(hmode, rmode, str)	case rmode: return hmode;
 		MAP()
 #undef ENTRY
 	}

          
@@ 132,7 132,7 @@ static rmode_t hamlib_hmode2mode(enum hr
 		case HRIG_MODE_UNKNOWN:
 			break;
 
-#define ENTRY(hmode, rmode)	case hmode: return rmode;
+#define ENTRY(hmode, rmode, str)	case hmode: return rmode;
 		MAP()
 #undef ENTRY
 	}

          
@@ 140,6 140,20 @@ static rmode_t hamlib_hmode2mode(enum hr
 	return RIG_MODE_NONE;
 }
 
+const char *hamlib_mode_name(enum hrig_mode mode)
+{
+	switch (mode) {
+		case HRIG_MODE_UNKNOWN:
+			return NULL;
+
+#define ENTRY(hmode, rmode, str)	case hmode: return str;
+		MAP()
+#undef ENTRY
+	}
+
+	return NULL;
+}
+
 const char *hamlib_mode_name_raw(enum hrig_mode mode)
 {
 	switch (mode) {

          
M rpc/include/hlog-rpc/rig-mode.h +2 -0
@@ 39,6 39,8 @@ enum hrig_mode {
 	HRIG_MODE_USB_RTTY,
 };
 
+/* mode name usable for logging */
+extern const char *hamlib_mode_name(enum hrig_mode mode);
 /* string-ified version of the enum */
 extern const char *hamlib_mode_name_raw(enum hrig_mode mode);