|
|
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: */ ! 9: const char DlgDevice_fileid[] = "Hatari dlgDevice.c : " __DATE__ " " __TIME__; ! 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 ! 20: #define DEVDLG_PRNBROWSE 5 ! 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 ! 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 ! 33: ! 34: ! 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]; ! 39: static char dlgMidiInName[MAX_DLG_FILENAME]; ! 40: static char dlgMidiOutName[MAX_DLG_FILENAME]; ! 41: ! 42: /* The devices dialog: */ ! 43: static SGOBJ devicedlg[] = ! 44: { ! 45: { SGBOX, 0, 0, 0,0, 52,24, NULL }, ! 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: ! 63: { SGBOX, 0, 0, 1,15, 50,6, NULL }, ! 64: { SGCHECKBOX, 0, 0, 2,15, 28,1, "Enable MIDI emulation" }, ! 65: { SGTEXT, 0, 0, 2,17, 26,1, "Read MIDI input from file:" }, ! 66: { SGBUTTON, 0, 0, 42,17, 8,1, "Browse" }, ! 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 }, ! 71: ! 72: { SGBUTTON, SG_DEFAULT, 0, 16,22, 20,1, "Back to main menu" }, ! 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: ! 89: if (ConfigureParams.Printer.bEnablePrinting) ! 90: devicedlg[DEVDLG_PRNENABLE].state |= SG_SELECTED; ! 91: else ! 92: devicedlg[DEVDLG_PRNENABLE].state &= ~SG_SELECTED; ! 93: File_ShrinkName(dlgPrinterName, ConfigureParams.Printer.szPrintToFileName, devicedlg[DEVDLG_PRNFILENAME].w); ! 94: ! 95: if (ConfigureParams.RS232.bEnableRS232) ! 96: devicedlg[DEVDLG_RS232ENABLE].state |= SG_SELECTED; ! 97: else ! 98: devicedlg[DEVDLG_RS232ENABLE].state &= ~SG_SELECTED; ! 99: File_ShrinkName(dlgRs232OutName, ConfigureParams.RS232.szOutFileName, devicedlg[DEVDLG_RS232OUTNAME].w); ! 100: File_ShrinkName(dlgRs232InName, ConfigureParams.RS232.szInFileName, devicedlg[DEVDLG_RS232INNAME].w); ! 101: ! 102: if (ConfigureParams.Midi.bEnableMidi) ! 103: devicedlg[DEVDLG_MIDIENABLE].state |= SG_SELECTED; ! 104: else ! 105: devicedlg[DEVDLG_MIDIENABLE].state &= ~SG_SELECTED; ! 106: File_ShrinkName(dlgMidiInName, ConfigureParams.Midi.sMidiInFileName, devicedlg[DEVDLG_MIDIINNAME].w); ! 107: File_ShrinkName(dlgMidiOutName, ConfigureParams.Midi.sMidiOutFileName, devicedlg[DEVDLG_MIDIOUTNAME].w); ! 108: ! 109: /* The devices dialog main loop */ ! 110: do ! 111: { ! 112: but = SDLGui_DoDialog(devicedlg, NULL); ! 113: ! 114: switch(but) ! 115: { ! 116: case DEVDLG_PRNBROWSE: /* Choose a new printer file */ ! 117: SDLGui_FileConfSelect(dlgPrinterName, ! 118: ConfigureParams.Printer.szPrintToFileName, ! 119: devicedlg[DEVDLG_PRNFILENAME].w, ! 120: true); ! 121: break; ! 122: case DEVDLG_RS232OUTBROWSE: /* Choose a new RS232 output file */ ! 123: SDLGui_FileConfSelect(dlgRs232OutName, ! 124: ConfigureParams.RS232.szOutFileName, ! 125: devicedlg[DEVDLG_RS232OUTNAME].w, ! 126: true); ! 127: break; ! 128: case DEVDLG_RS232INBROWSE: /* Choose a new RS232 input file */ ! 129: SDLGui_FileConfSelect(dlgRs232InName, ! 130: ConfigureParams.RS232.szInFileName, ! 131: devicedlg[DEVDLG_RS232INNAME].w, ! 132: true); ! 133: break; ! 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 */ ! 141: SDLGui_FileConfSelect(dlgMidiOutName, ! 142: ConfigureParams.Midi.sMidiOutFileName, ! 143: devicedlg[DEVDLG_MIDIOUTNAME].w, ! 144: true); ! 145: break; ! 146: } ! 147: } ! 148: while (but != DEVDLG_EXIT && but != SDLGUI_QUIT ! 149: && but != SDLGUI_ERROR && !bQuitProgram); ! 150: ! 151: /* Read values from dialog */ ! 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); ! 155: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.