39 |
#include "data/pixmaps/s8.xpm" |
#include "data/pixmaps/s8.xpm" |
40 |
#include "data/pixmaps/s9.xpm" |
#include "data/pixmaps/s9.xpm" |
41 |
|
|
42 |
|
/* The following 2 structs are generated by mkrigstruct */ |
43 |
|
struct rig_id { |
44 |
|
const gint modelnr; |
45 |
|
const gchar *modelname; |
46 |
|
}; |
47 |
|
|
48 |
|
static const struct rig_id rig_id_list[] = { |
49 |
|
{1504, "WR-3100"}, |
50 |
|
{352, "OptoScan535"}, |
51 |
|
{304, "IC-275"}, |
52 |
|
{336, "IC-R10"}, |
53 |
|
{320, "IC-736"}, |
54 |
|
{208, "TS-811"}, |
55 |
|
{224, "TS-680S"}, |
56 |
|
{2401, "EKD-500"}, |
57 |
|
{1601, "TT-550"}, |
58 |
|
{1505, "WR-3150"}, |
59 |
|
{401, "IC-PCR1000"}, |
60 |
|
{353, "OptoScan456"}, |
61 |
|
{337, "IC-R71"}, |
62 |
|
{321, "IC-737"}, |
63 |
|
{209, "TS-850"}, |
64 |
|
{225, "TS-140S"}, |
65 |
|
{113, "FT-900"}, |
66 |
|
{1, "Dummy"}, |
67 |
|
{1602, "TT-538 Jupiter"}, |
68 |
|
{1506, "WR-3500"}, |
69 |
|
{802, "BC245xlt"}, |
70 |
|
{402, "IC-PCR100"}, |
71 |
|
{354, "IC ID-1"}, |
72 |
|
{306, "IC-471"}, |
73 |
|
{338, "IC-R72"}, |
74 |
|
{226, "TM-D700"}, |
75 |
|
{210, "TS-870S"}, |
76 |
|
{114, "FT-920"}, |
77 |
|
{1603, "RX-320"}, |
78 |
|
{1507, "WR-3700"}, |
79 |
|
{803, "BC895xlt"}, |
80 |
|
{307, "IC-475"}, |
81 |
|
{339, "IC-R75"}, |
82 |
|
{323, "IC-746"}, |
83 |
|
{355, "IC-703"}, |
84 |
|
{227, "TM-V7"}, |
85 |
|
{211, "TS-940S"}, |
86 |
|
{115, "FT-890"}, |
87 |
|
{1604, "RX-340"}, |
88 |
|
{1204, "WJ-8888"}, |
89 |
|
{340, "IC-R7000"}, |
90 |
|
{356, "IC-7800"}, |
91 |
|
{324, "IC-751"}, |
92 |
|
{116, "FT-990"}, |
93 |
|
{2501, "Elektor 3/04"}, |
94 |
|
{2101, "4937 DI5 tuner module"}, |
95 |
|
{1701, "DX-77"}, |
96 |
|
{1605, "RX-350"}, |
97 |
|
{501, "AR8200"}, |
98 |
|
{341, "IC-R7100"}, |
99 |
|
{357, "IC-756PROIII"}, |
100 |
|
{309, "IC-706"}, |
101 |
|
{213, "TS-950SDX"}, |
102 |
|
{117, "FRG-100"}, |
103 |
|
{101, "FT-847"}, |
104 |
|
{2502, "DRT1"}, |
105 |
|
{2102, "4702 DT5 tuner module"}, |
106 |
|
{902, "R-8A"}, |
107 |
|
{502, "AR8000"}, |
108 |
|
{342, "ICR-8500"}, |
109 |
|
{358, "IC-R20"}, |
110 |
|
{326, "IC-756"}, |
111 |
|
{310, "IC-706MkII"}, |
112 |
|
{214, "TS-2000"}, |
113 |
|
{118, "FRG-9600"}, |
114 |
|
{1607, "TT-516 Argonaut V"}, |
115 |
|
{903, "R-8B"}, |
116 |
|
{503, "AR7030"}, |
117 |
|
{343, "IC-R9000"}, |
118 |
|
{327, "IC-756PRO"}, |
119 |
|
{311, "IC-706MkIIG"}, |
120 |
|
{215, "R-5000"}, |
121 |
|
{119, "FRG-8800"}, |
122 |
|
{103, "FT-1000D"}, |
123 |
|
{1608, "TT-565 Orion"}, |
124 |
|
{504, "AR5000"}, |
125 |
|
{344, "IC-910"}, |
126 |
|
{312, "IC-707"}, |
127 |
|
{328, "IC-761"}, |
128 |
|
{216, "TS-570S"}, |
129 |
|
{104, "MARK-V FT-1000MP"}, |
130 |
|
{120, "FT-817"}, |
131 |
|
{2601, "SW/FM radio"}, |
132 |
|
{2201, "DSP-10"}, |
133 |
|
{1801, "505DSP"}, |
134 |
|
{505, "AR3030"}, |
135 |
|
{345, "IC-78"}, |
136 |
|
{329, "IC-765"}, |
137 |
|
{313, "IC-718"}, |
138 |
|
{217, "TH-D7A"}, |
139 |
|
{201, "TS-50S"}, |
140 |
|
{105, "FT-747GX"}, |
141 |
|
{121, "FT-100"}, |
142 |
|
{1402, "TRP8000"}, |
143 |
|
{506, "AR3000A"}, |
144 |
|
{330, "IC-775"}, |
145 |
|
{346, "IC-746PRO"}, |
146 |
|
{314, "IC-725"}, |
147 |
|
{202, "TS-440"}, |
148 |
|
{122, "FT-857"}, |
149 |
|
{106, "FT-757GX"}, |
150 |
|
{331, "IC-781"}, |
151 |
|
{347, "IC-756PROII"}, |
152 |
|
{315, "IC-726"}, |
153 |
|
{203, "TS-450S"}, |
154 |
|
{123, "FT-897"}, |
155 |
|
{107, "FT-757GXII"}, |
156 |
|
{1004, "HF-235"}, |
157 |
|
{316, "IC-728"}, |
158 |
|
{220, "TH-F7E"}, |
159 |
|
{204, "TS-570D"}, |
160 |
|
{2301, "SDR-1000"}, |
161 |
|
{1901, "RPC rig"}, |
162 |
|
{1501, "WR-1000"}, |
163 |
|
{221, "K2"}, |
164 |
|
{205, "TS-690S"}, |
165 |
|
{1502, "WR-1500"}, |
166 |
|
{606, "NRD-535D"}, |
167 |
|
{334, "IC-821H"}, |
168 |
|
{206, "TS-711"}, |
169 |
|
{222, "TS-930"}, |
170 |
|
{110, "FT-736R"}, |
171 |
|
{1503, "WR-1550"}, |
172 |
|
{1103, "RA6790/GM"}, |
173 |
|
{607, "NRD-545 DSP"}, |
174 |
|
{351, "Omni VI Plus"}, |
175 |
|
{303, "IC-271"}, |
176 |
|
{335, "IC-970"}, |
177 |
|
{319, "IC-735"}, |
178 |
|
{223, "TH-G71"}, |
179 |
|
{207, "TS-790"}, |
180 |
|
{0, NULL}, /* end marker */ |
181 |
|
}; |
182 |
|
|
183 |
typedef struct |
typedef struct |
184 |
{ |
{ |
185 |
gchar **xpmdata; |
gchar **xpmdata; |
204 |
extern preferencestype preferences; |
extern preferencestype preferences; |
205 |
extern statetype state; |
extern statetype state; |
206 |
extern GtkWidget *mainwindow; |
extern GtkWidget *mainwindow; |
|
GList *rigs = NULL; |
|
207 |
gint svalue[10]; |
gint svalue[10]; |
|
extern GList *riglist; |
|
208 |
gint hamlibtimer = -1; |
gint hamlibtimer = -1; |
209 |
RIG *myrig; |
RIG *myrig; |
210 |
GdkPixmap *pixmap = NULL; |
GdkPixmap *pixmap = NULL; |
330 |
/* sort function for creating the list of rigs */ |
/* sort function for creating the list of rigs */ |
331 |
static gint sortcaps (gconstpointer a, gconstpointer b) |
static gint sortcaps (gconstpointer a, gconstpointer b) |
332 |
{ |
{ |
333 |
struct rig_caps *acaps = (struct rig_caps *)a; |
gchar *amodel = (gchar *)a; |
334 |
struct rig_caps *bcaps = (struct rig_caps *)b; |
gchar *bmodel = (gchar *)b; |
|
|
|
|
return (g_ascii_strcasecmp(acaps->model_name,bcaps->model_name)); |
|
|
} |
|
335 |
|
|
336 |
/* Append a new entry in the driver list. It is called by rig_list_foreach */ |
return (g_ascii_strcasecmp(amodel, bmodel)); |
|
static gint |
|
|
riglist_make_list (const struct rig_caps *caps, gpointer data) |
|
|
{ |
|
|
rigs = g_list_insert_sorted (rigs, (gpointer) caps, sortcaps); |
|
|
return 1; /* !=0, we want them all ! */ |
|
337 |
} |
} |
338 |
|
|
339 |
/* Return a list with pointers of available drivers from hamlib */ |
/* Return a list with pointers of available drivers from hamlib */ |
340 |
GList * |
GList * |
341 |
riglist_get_list (void) |
riglist_get_list (void) |
342 |
{ |
{ |
343 |
gint status; |
gint i; |
344 |
|
GList *rigs = NULL; |
345 |
|
|
346 |
rig_load_all_backends (); |
for (i = 0; rig_id_list[i].modelname != NULL; i++) |
347 |
status = rig_list_foreach (riglist_make_list, NULL); |
rigs = g_list_insert_sorted |
348 |
|
(rigs, (gpointer)rig_id_list[i].modelname, sortcaps); |
349 |
return rigs; |
return rigs; |
350 |
} |
} |
351 |
|
|
353 |
gint |
gint |
354 |
get_rigid (gchar * rig) |
get_rigid (gchar * rig) |
355 |
{ |
{ |
356 |
gint i, numrigs; |
guint i; |
|
struct rig_caps *rcaps = NULL; |
|
357 |
|
|
358 |
numrigs = g_list_length (riglist); |
for (i = 0; rig_id_list[i].modelname != NULL; i++) |
359 |
for (i = 0; i < numrigs; i++) |
if (!strcmp (rig_id_list[i].modelname, rig)) |
360 |
{ |
return (rig_id_list[i].modelnr); |
361 |
rcaps = (struct rig_caps *) g_list_nth_data (riglist, i); |
return -1; |
|
if (g_ascii_strcasecmp (rig, rcaps->model_name) == 0) |
|
|
break; |
|
|
} |
|
|
if (i > 0) |
|
|
return rcaps->rig_model; |
|
|
else |
|
|
return (-1); |
|
362 |
} |
} |
363 |
|
|
364 |
/* return string with mode */ |
/* return string with mode */ |