Annotation of previous_trunk/src/gui-sdl/dlgDevice.c, revision 1.1

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.bPrinterConnected)
        !            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.bPrinterConnected = (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: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.