|
|
1.1 root 1: /*
2: Hatari - dlgDevice.c
3:
4: This file is distributed under the GNU Public License, version 2 or at
5: your option any later version. Read the file gpl.txt for details.
6:
7: Device (Printer etc.) setup dialog
8: */
1.1.1.6 ! root 9: const char DlgDevice_rcsid[] = "Hatari $Id: dlgDevice.c,v 1.13 2008-06-08 16:07:39 eerot Exp $";
1.1 root 10:
11: #include "main.h"
12: #include "configuration.h"
13: #include "dialog.h"
14: #include "sdlgui.h"
15: #include "file.h"
16: #include "screen.h"
17:
18:
19: #define DEVDLG_PRNENABLE 3
1.1.1.3 root 20: #define DEVDLG_PRNBROWSE 5
1.1 root 21: #define DEVDLG_PRNFILENAME 6
22: #define DEVDLG_RS232ENABLE 8
23: #define DEVDLG_RS232OUTBROWSE 10
24: #define DEVDLG_RS232OUTNAME 11
25: #define DEVDLG_RS232INBROWSE 13
26: #define DEVDLG_RS232INNAME 14
27: #define DEVDLG_MIDIENABLE 16
1.1.1.6 ! root 28: #define DEVDLG_MIDIINBROWSE 18
! 29: #define DEVDLG_MIDIINNAME 19
! 30: #define DEVDLG_MIDIOUTBROWSE 21
! 31: #define DEVDLG_MIDIOUTNAME 22
! 32: #define DEVDLG_EXIT 23
1.1 root 33:
34:
1.1.1.4 root 35: #define MAX_DLG_FILENAME 46+1
36: static char dlgPrinterName[MAX_DLG_FILENAME];
37: static char dlgRs232OutName[MAX_DLG_FILENAME];
38: static char dlgRs232InName[MAX_DLG_FILENAME];
1.1.1.6 ! root 39: static char dlgMidiInName[MAX_DLG_FILENAME];
1.1.1.4 root 40: static char dlgMidiOutName[MAX_DLG_FILENAME];
1.1 root 41:
42: /* The devices dialog: */
43: static SGOBJ devicedlg[] =
44: {
1.1.1.6 ! root 45: { SGBOX, 0, 0, 0,0, 52,24, NULL },
1.1 root 46: { SGTEXT, 0, 0, 20,1, 13,1, "Devices setup" },
47:
48: { SGBOX, 0, 0, 1,3, 50,4, NULL },
49: { SGCHECKBOX, 0, 0, 2,3, 28,1, "Enable printer emulation" },
50: { SGTEXT, 0, 0, 2,5, 10,1, "Print to file:" },
51: { SGBUTTON, 0, 0, 42,5, 8,1, "Browse" },
52: { SGTEXT, 0, 0, 3,6, 46,1, dlgPrinterName },
53:
54: { SGBOX, 0, 0, 1,8, 50,6, NULL },
55: { SGCHECKBOX, 0, 0, 2,8, 28,1, "Enable RS232 emulation" },
56: { SGTEXT, 0, 0, 2,10, 10,1, "Write RS232 output to file:" },
57: { SGBUTTON, 0, 0, 42,10, 8,1, "Browse" },
58: { SGTEXT, 0, 0, 3,11, 46,1, dlgRs232OutName },
59: { SGTEXT, 0, 0, 2,12, 10,1, "Read RS232 input from file:" },
60: { SGBUTTON, 0, 0, 42,12, 8,1, "Browse" },
61: { SGTEXT, 0, 0, 3,13, 46,1, dlgRs232InName },
62:
1.1.1.6 ! root 63: { SGBOX, 0, 0, 1,15, 50,6, NULL },
1.1 root 64: { SGCHECKBOX, 0, 0, 2,15, 28,1, "Enable MIDI emulation" },
1.1.1.6 ! root 65: { SGTEXT, 0, 0, 2,17, 26,1, "Read MIDI input from file:" },
1.1 root 66: { SGBUTTON, 0, 0, 42,17, 8,1, "Browse" },
1.1.1.6 ! root 67: { SGTEXT, 0, 0, 3,18, 46,1, dlgMidiInName },
! 68: { SGTEXT, 0, 0, 2,19, 26,1, "Write MIDI output to file:" },
! 69: { SGBUTTON, 0, 0, 42,19, 8,1, "Browse" },
! 70: { SGTEXT, 0, 0, 3,20, 46,1, dlgMidiOutName },
1.1 root 71:
1.1.1.6 ! root 72: { SGBUTTON, SG_DEFAULT, 0, 16,22, 20,1, "Back to main menu" },
1.1 root 73: { -1, 0, 0, 0,0, 0,0, NULL }
74: };
75:
76:
77: /*-----------------------------------------------------------------------*/
78: /*
79: Show and process the "Device" dialog.
80: */
81: void Dialog_DeviceDlg(void)
82: {
83: int but;
84:
85: SDLGui_CenterDlg(devicedlg);
86:
87: /* Set up dialog from actual values: */
88:
1.1.1.5 root 89: if (ConfigureParams.Printer.bEnablePrinting)
1.1 root 90: devicedlg[DEVDLG_PRNENABLE].state |= SG_SELECTED;
91: else
92: devicedlg[DEVDLG_PRNENABLE].state &= ~SG_SELECTED;
1.1.1.5 root 93: File_ShrinkName(dlgPrinterName, ConfigureParams.Printer.szPrintToFileName, devicedlg[DEVDLG_PRNFILENAME].w);
1.1 root 94:
1.1.1.5 root 95: if (ConfigureParams.RS232.bEnableRS232)
1.1 root 96: devicedlg[DEVDLG_RS232ENABLE].state |= SG_SELECTED;
97: else
98: devicedlg[DEVDLG_RS232ENABLE].state &= ~SG_SELECTED;
1.1.1.5 root 99: File_ShrinkName(dlgRs232OutName, ConfigureParams.RS232.szOutFileName, devicedlg[DEVDLG_RS232OUTNAME].w);
100: File_ShrinkName(dlgRs232InName, ConfigureParams.RS232.szInFileName, devicedlg[DEVDLG_RS232INNAME].w);
1.1 root 101:
1.1.1.5 root 102: if (ConfigureParams.Midi.bEnableMidi)
1.1 root 103: devicedlg[DEVDLG_MIDIENABLE].state |= SG_SELECTED;
104: else
105: devicedlg[DEVDLG_MIDIENABLE].state &= ~SG_SELECTED;
1.1.1.6 ! root 106: File_ShrinkName(dlgMidiInName, ConfigureParams.Midi.sMidiInFileName, devicedlg[DEVDLG_MIDIINNAME].w);
! 107: File_ShrinkName(dlgMidiOutName, ConfigureParams.Midi.sMidiOutFileName, devicedlg[DEVDLG_MIDIOUTNAME].w);
1.1 root 108:
109: /* The devices dialog main loop */
110: do
111: {
1.1.1.2 root 112: but = SDLGui_DoDialog(devicedlg, NULL);
1.1 root 113:
114: switch(but)
115: {
116: case DEVDLG_PRNBROWSE: /* Choose a new printer file */
1.1.1.4 root 117: SDLGui_FileConfSelect(dlgPrinterName,
1.1.1.5 root 118: ConfigureParams.Printer.szPrintToFileName,
1.1.1.4 root 119: devicedlg[DEVDLG_PRNFILENAME].w,
120: TRUE);
1.1 root 121: break;
122: case DEVDLG_RS232OUTBROWSE: /* Choose a new RS232 output file */
1.1.1.4 root 123: SDLGui_FileConfSelect(dlgRs232OutName,
1.1.1.5 root 124: ConfigureParams.RS232.szOutFileName,
1.1.1.4 root 125: devicedlg[DEVDLG_RS232OUTNAME].w,
126: TRUE);
1.1 root 127: break;
128: case DEVDLG_RS232INBROWSE: /* Choose a new RS232 input file */
1.1.1.4 root 129: SDLGui_FileConfSelect(dlgRs232InName,
1.1.1.5 root 130: ConfigureParams.RS232.szInFileName,
1.1.1.4 root 131: devicedlg[DEVDLG_RS232INNAME].w,
132: TRUE);
1.1 root 133: break;
1.1.1.6 ! root 134: case DEVDLG_MIDIINBROWSE: /* Choose a new MIDI file */
! 135: SDLGui_FileConfSelect(dlgMidiInName,
! 136: ConfigureParams.Midi.sMidiInFileName,
! 137: devicedlg[DEVDLG_MIDIINNAME].w,
! 138: TRUE);
! 139: break;
! 140: case DEVDLG_MIDIOUTBROWSE: /* Choose a new MIDI file */
1.1.1.4 root 141: SDLGui_FileConfSelect(dlgMidiOutName,
1.1.1.6 ! root 142: ConfigureParams.Midi.sMidiOutFileName,
1.1.1.4 root 143: devicedlg[DEVDLG_MIDIOUTNAME].w,
144: TRUE);
1.1 root 145: break;
146: }
147: }
1.1.1.4 root 148: while (but != DEVDLG_EXIT && but != SDLGUI_QUIT
149: && but != SDLGUI_ERROR && !bQuitProgram);
1.1 root 150:
151: /* Read values from dialog */
1.1.1.5 root 152: ConfigureParams.Printer.bEnablePrinting = (devicedlg[DEVDLG_PRNENABLE].state & SG_SELECTED);
153: ConfigureParams.RS232.bEnableRS232 = (devicedlg[DEVDLG_RS232ENABLE].state & SG_SELECTED);
154: ConfigureParams.Midi.bEnableMidi = (devicedlg[DEVDLG_MIDIENABLE].state & SG_SELECTED);
1.1 root 155: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.