# HG changeset patch # User Josef 'Jeff' Sipek # Date 1674867357 18000 # Fri Jan 27 19:55:57 2023 -0500 # Node ID ea3a6e925297013e7726a016e3cebf3d590555b9 # Parent 6b893ce227993f900cb373130aa4832fbeb1805b 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 diff --git a/rpc/hamlib.c b/rpc/hamlib.c --- a/rpc/hamlib.c +++ b/rpc/hamlib.c @@ -101,24 +101,24 @@ 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 @@ 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 @@ 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) { diff --git a/rpc/include/hlog-rpc/rig-mode.h b/rpc/include/hlog-rpc/rig-mode.h --- a/rpc/include/hlog-rpc/rig-mode.h +++ b/rpc/include/hlog-rpc/rig-mode.h @@ -39,6 +39,8 @@ 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);