16
#include "interface.h"
19
static gint link_type;
20
static gchar device[MAXCHARS];
25
static gint custom_toggled = 0;
26
static gint prev_link_type = 0;
28
gpointer wentry1 = NULL;
29
gpointer wentry2 = NULL;
34
port = (options.link_cable)->port;
35
method = ticable_get_method();
36
link_type = (options.link_cable)->link_type;
37
io_addr = ticable_get_io_address();
38
strcpy(device, ticable_get_io_device());
41
gint display_linktype_dbox()
46
dbox = create_linktype_dbox();
49
user_data = gtk_object_get_data(GTK_OBJECT(dbox), "radiobutton1");
50
if(link_type == LINK_TGL)
51
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (user_data), TRUE);
53
user_data = gtk_object_get_data(GTK_OBJECT(dbox), "radiobutton2");
54
if(link_type == LINK_PAR)
55
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (user_data), TRUE);
57
user_data = gtk_object_get_data(GTK_OBJECT(dbox), "radiobutton3");
58
if(link_type == LINK_TIE)
59
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (user_data), TRUE);
61
user_data = gtk_object_get_data(GTK_OBJECT(dbox), "radiobutton4");
62
if(link_type == LINK_TPU)
63
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (user_data), TRUE);
65
user_data = gtk_object_get_data(GTK_OBJECT(dbox), "radiobutton5");
66
if(link_type == LINK_SER)
67
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (user_data), TRUE);
69
user_data = gtk_object_get_data(GTK_OBJECT(dbox), "radiobutton6");
70
if(link_type == LINK_AVR)
71
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (user_data), TRUE);
73
user_data = gtk_object_get_data(GTK_OBJECT(dbox), "radiobutton7");
74
if(link_type == LINK_VTI)
75
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (user_data), TRUE);
77
user_data = gtk_object_get_data(GTK_OBJECT(dbox), "radiobutton8");
78
if(link_type == LINK_UGL)
79
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (user_data), TRUE);
83
gtk_widget_show_all(dbox);
88
/************************************/
89
/* Called when the box is displayed */
90
/************************************/
94
on_linktype_dbox_show20 (GtkWidget *widget,
97
//DISPLAY("show20\n");
101
gtk_label_set_text(GTK_LABEL(GTK_BIN(user_data)->child),
103
if(port == PARALLEL_PORT_1)
104
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (user_data), TRUE);
105
gtk_widget_show(GTK_WIDGET(GTK_BIN(user_data)->child));
106
gtk_widget_show(user_data);
111
gtk_label_set_text(GTK_LABEL(GTK_BIN(user_data)->child),
113
if(port == SERIAL_PORT_1)
114
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (user_data), TRUE);
115
gtk_widget_show(user_data);
118
gtk_label_set_text(GTK_LABEL(GTK_BIN(user_data)->child),
119
"Virtual port #1 (emu)");
120
if(port == VIRTUAL_PORT_1)
121
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (user_data), TRUE);
122
gtk_widget_show(user_data);
126
gtk_widget_hide(user_data);
130
gtk_label_set_text(GTK_LABEL(GTK_BIN(user_data)->child),
131
"Virtual port #1 (emu)");
132
if(port == VIRTUAL_PORT_1)
133
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (user_data), TRUE);
134
gtk_widget_show(user_data);
137
gtk_widget_hide(user_data);
139
gtk_label_set_text(GTK_LABEL(GTK_BIN(user_data)->child),
141
if(io_addr == TPU_RAW_MODE)
142
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (user_data), TRUE);
143
gtk_widget_show(user_data);
147
gtk_label_set_text(GTK_LABEL(GTK_BIN(user_data)->child),
149
if(port == USB_PORT_1)
150
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (user_data), TRUE);
151
gtk_widget_show(GTK_WIDGET(GTK_BIN(user_data)->child));
152
gtk_widget_show(user_data);
159
on_linktype_dbox_show21 (GtkWidget *widget,
162
//DISPLAY("show21\n");
166
gtk_label_set_text(GTK_LABEL(GTK_BIN(user_data)->child),
168
if(port == PARALLEL_PORT_2)
169
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (user_data), TRUE);
170
gtk_widget_show(user_data);
175
gtk_label_set_text(GTK_LABEL(GTK_BIN(user_data)->child),
177
if(port == SERIAL_PORT_2)
178
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (user_data), TRUE);
179
gtk_widget_show(user_data);
182
gtk_label_set_text(GTK_LABEL(GTK_BIN(user_data)->child),
183
"Virtual port #2 (tilp)");
184
if(port == VIRTUAL_PORT_2)
185
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (user_data), TRUE);
186
gtk_widget_show(user_data);
190
gtk_widget_hide(user_data);
194
gtk_label_set_text(GTK_LABEL(GTK_BIN(user_data)->child),
195
"Virtual port #2 (tilp)");
196
if(port == VIRTUAL_PORT_2)
197
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (user_data), TRUE);
198
gtk_widget_show(user_data);
201
gtk_widget_hide(user_data);
203
gtk_label_set_text(GTK_LABEL(GTK_BIN(user_data)->child),
205
if(io_addr == TPU_COOKED_MODE)
206
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (user_data), TRUE);
207
gtk_widget_show(user_data);
211
gtk_label_set_text(GTK_LABEL(GTK_BIN(user_data)->child),
213
if(port == USB_PORT_2)
214
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (user_data), TRUE);
215
gtk_widget_show(GTK_WIDGET(GTK_BIN(user_data)->child));
216
gtk_widget_show(user_data);
223
on_linktype_dbox_show22 (GtkWidget *widget,
226
//DISPLAY("show22\n");
230
gtk_label_set_text(GTK_LABEL(GTK_BIN(user_data)->child),
232
if(port == PARALLEL_PORT_3)
233
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (user_data), TRUE);
234
gtk_widget_show(user_data);
239
gtk_label_set_text(GTK_LABEL(GTK_BIN(user_data)->child),
241
if(port == SERIAL_PORT_3)
242
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (user_data), TRUE);
243
gtk_widget_show(user_data);
246
gtk_widget_hide(user_data);
249
gtk_widget_hide(user_data);
252
gtk_widget_hide(user_data);
255
gtk_widget_hide(user_data);
258
gtk_label_set_text(GTK_LABEL(GTK_BIN(user_data)->child),
260
if(port == USB_PORT_3)
261
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (user_data), TRUE);
262
gtk_widget_show(GTK_WIDGET(GTK_BIN(user_data)->child));
263
gtk_widget_show(user_data);
270
on_linktype_dbox_show23 (GtkWidget *widget,
273
//DISPLAY("show23\n");
277
gtk_widget_hide(user_data);
282
gtk_label_set_text(GTK_LABEL(GTK_BIN(user_data)->child),
284
if(port == SERIAL_PORT_4)
285
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (user_data), TRUE);
286
gtk_widget_show(user_data);
289
gtk_widget_hide(user_data);
292
gtk_widget_hide(user_data);
295
gtk_widget_hide(user_data);
298
gtk_widget_hide(user_data);
301
gtk_label_set_text(GTK_LABEL(GTK_BIN(user_data)->child),
303
if(port == USB_PORT_4)
304
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (user_data), TRUE);
305
gtk_widget_show(GTK_WIDGET(GTK_BIN(user_data)->child));
306
gtk_widget_show(user_data);
313
on_linktype_dbox_show24 (GtkWidget *widget,
316
//DISPLAY("show24\n");
320
if(port == USER_PORT)
321
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (user_data), TRUE);
322
gtk_widget_show(user_data);
327
if(port == USER_PORT)
328
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (user_data), TRUE);
329
gtk_widget_show(user_data);
332
gtk_widget_hide(user_data);
335
gtk_widget_hide(user_data);
338
gtk_widget_hide(user_data);
341
gtk_widget_hide(user_data);
344
if(port == USER_PORT)
345
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (user_data), TRUE);
346
gtk_widget_show(user_data);
349
//DISPLAY("port = %i\n", port);
354
on_linktype_dbox_show30 (GtkWidget *widget,
357
gchar buffer[MAXCHARS];
360
g_snprintf(buffer, MAXCHARS, "0x%03x", io_addr);
362
gtk_entry_set_visibility(GTK_ENTRY(user_data), custom_toggled);
363
gtk_entry_set_editable(GTK_ENTRY(user_data), custom_toggled ? TRUE : FALSE);
364
gtk_entry_set_text(GTK_ENTRY(user_data), buffer);
369
on_linktype_dbox_show31 (GtkWidget *widget,
372
gchar buffer[MAXCHARS];
375
g_snprintf(buffer, MAXCHARS, "%s", device);
377
gtk_entry_set_visibility(GTK_ENTRY(user_data), custom_toggled);
378
gtk_entry_set_editable(GTK_ENTRY(user_data), custom_toggled ? TRUE : FALSE);
379
gtk_entry_set_text(GTK_ENTRY(user_data), buffer);
383
/***********************************/
384
/* Called whenever a char is typed */
385
/***********************************/
388
linktype_entry1_changed (GtkEditable *editable,
394
s = gtk_editable_get_chars(GTK_EDITABLE(user_data), 0, -1);
395
result = sscanf(s, "0x%03x", &io_addr);
402
linktype_entry2_changed (GtkEditable *editable,
408
s = gtk_editable_get_chars(GTK_EDITABLE(user_data), 0, -1);
409
result = sscanf(s, "%s", device);
411
strcpy(device, AUTO_NAME);
415
/*******************/
416
/* Link cable type */
417
/*******************/
420
linktype_radiobutton1_toggled (GtkToggleButton *togglebutton,
424
link_type = LINK_TGL;
425
//if(link_type != prev_link_type)
426
//port = SERIAL_PORT_2;
428
if(gtk_toggle_button_get_active(togglebutton))
429
gtk_signal_emit_by_name(GTK_OBJECT(user_data), "show");
433
linktype_radiobutton2_toggled (GtkToggleButton *togglebutton,
437
link_type = LINK_PAR;
438
//if(link_type != prev_link_type)
439
//port = PARALLEL_PORT_1;
441
if(gtk_toggle_button_get_active(togglebutton))
442
gtk_signal_emit_by_name(GTK_OBJECT(user_data), "show");
446
linktype_radiobutton3_toggled (GtkToggleButton *togglebutton,
450
link_type = LINK_TIE;
451
//if(link_type != prev_link_type)
452
//port = VIRTUAL_PORT_2;
454
if(gtk_toggle_button_get_active(togglebutton))
455
gtk_signal_emit_by_name(GTK_OBJECT(user_data), "show");
459
linktype_radiobutton4_toggled (GtkToggleButton *togglebutton,
463
link_type = LINK_TPU;
465
if(gtk_toggle_button_get_active(togglebutton))
466
gtk_signal_emit_by_name(GTK_OBJECT(user_data), "show");
470
linktype_radiobutton5_toggled (GtkToggleButton *togglebutton,
474
link_type = LINK_SER;
475
//if(link_type != prev_link_type)
476
//port = SERIAL_PORT_2;
478
if(gtk_toggle_button_get_active(togglebutton))
479
gtk_signal_emit_by_name(GTK_OBJECT(user_data), "show");
483
linktype_radiobutton6_toggled (GtkToggleButton *togglebutton,
487
link_type = LINK_AVR;
488
//if(link_type != prev_link_type)
489
//port = SERIAL_PORT_2;
491
if(gtk_toggle_button_get_active(togglebutton))
492
gtk_signal_emit_by_name(GTK_OBJECT(user_data), "show");
496
linktype_radiobutton7_toggled (GtkToggleButton *togglebutton,
500
link_type = LINK_VTI;
501
//if(link_type != prev_link_type)
502
//port = VIRTUAL_PORT_2;
504
if(gtk_toggle_button_get_active(togglebutton))
505
gtk_signal_emit_by_name(GTK_OBJECT(user_data), "show");
509
linktype_radiobutton8_toggled (GtkToggleButton *togglebutton,
513
link_type = LINK_UGL;
514
//if(link_type != prev_link_type)
517
if(gtk_toggle_button_get_active(togglebutton))
518
gtk_signal_emit_by_name(GTK_OBJECT(user_data), "show");
528
linktype_radiobutton10_toggled (GtkToggleButton *togglebutton,
535
port = PARALLEL_PORT_1;
540
port = SERIAL_PORT_1;
543
port = VIRTUAL_PORT_1;
546
port = VIRTUAL_PORT_1;
549
port = VIRTUAL_PORT_1;
552
//io_addr = TPU_RAW_MODE;
562
linktype_radiobutton11_toggled (GtkToggleButton *togglebutton,
569
port = PARALLEL_PORT_2;
574
port = SERIAL_PORT_2;
577
port = VIRTUAL_PORT_2;
580
port = VIRTUAL_PORT_2;
583
port = VIRTUAL_PORT_2;
586
//io_addr = TPU_COOKED_MODE;
596
linktype_radiobutton12_toggled (GtkToggleButton *togglebutton,
603
port = PARALLEL_PORT_3;
608
port = SERIAL_PORT_3;
626
linktype_radiobutton13_toggled (GtkToggleButton *togglebutton,
637
port = SERIAL_PORT_4;
655
linktype_radiobutton14_toggled (GtkToggleButton *togglebutton,
659
custom_toggled = gtk_toggle_button_get_active(togglebutton);
664
gtk_entry_set_visibility(GTK_ENTRY(wentry1), custom_toggled);
665
gtk_entry_set_editable(GTK_ENTRY(wentry1), custom_toggled ? TRUE : FALSE);
666
gtk_entry_set_visibility(GTK_ENTRY(wentry2), custom_toggled);
667
gtk_entry_set_editable(GTK_ENTRY(wentry2), custom_toggled ? TRUE : FALSE);
676
linktype_ok_button_clicked (GtkButton *button,
679
gtk_widget_destroy(GTK_WIDGET(user_data));
681
(options.link_cable)->method = method;
682
(options.link_cable)->port = port;
683
(options.link_cable)->link_type = link_type;
684
(options.link_cable)->io_addr = io_addr;
685
strcpy((options.link_cable)->device, device);
687
ti68k_reconfigure_linkport();
694
linktype_cancel_button_clicked (GtkButton *button,
697
gtk_widget_destroy(GTK_WIDGET(user_data));
702
on_linktype_dbox_show (GtkWidget *widget,
706
if(link_type != prev_link_type)
712
case LINK_TGL: port = SERIAL_PORT_2;
714
case LINK_PAR: port = PARALLEL_PORT_1;
717
case LINK_VTI: port = VIRTUAL_PORT_2;
719
case LINK_UGL: port = USB_PORT_1;
724
prev_link_type = link_type;
729
on_linktype_button_fs_clicked (GtkButton *button,
732
gtk_widget_show(create_fileselection_device());
737
on_seldev_ok_button1_clicked (GtkButton *button,
742
s = gtk_file_selection_get_filename(GTK_FILE_SELECTION(user_data));
743
gtk_entry_set_text(GTK_ENTRY(wentry2), s);
745
gtk_widget_destroy(GTK_WIDGET(user_data));
750
on_seldev_cancel_button1_clicked (GtkButton *button,
753
gtk_widget_destroy(GTK_WIDGET(user_data));
758
on_fileselection_device_show (GtkWidget *widget,
763
s = gtk_editable_get_chars(GTK_EDITABLE(wentry2), 0, -1);
764
gtk_file_selection_set_filename(GTK_FILE_SELECTION(user_data), s);
769
on_button2_pressed (GtkButton *button,
772
//display_probeio_dbox();