Annotation of hatari/src/gui-sdl/dlgSound.c, revision 1.1

1.1     ! root        1: /*
        !             2:   Hatari - dlgSound.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: char DlgSound_rcsid[] = "Hatari $Id: dlgSound.c,v 1.3 2003/12/25 14:19:39 thothy Exp $";
        !             8: 
        !             9: #include "main.h"
        !            10: #include "configuration.h"
        !            11: #include "dialog.h"
        !            12: #include "memAlloc.h"
        !            13: #include "sdlgui.h"
        !            14: #include "file.h"
        !            15: #include "sound.h"
        !            16: 
        !            17: 
        !            18: #define DLGSOUND_ENABLE     3
        !            19: #define DLGSOUND_LOW        5
        !            20: #define DLGSOUND_MEDIUM     6
        !            21: #define DLGSOUND_HIGH       7
        !            22: #define DLGSOUND_RECNAME    11
        !            23: #define DLGSOUND_RECBROWSE  12
        !            24: #define DLGSOUND_RECORD     13
        !            25: #define DLGSOUND_EXIT       14
        !            26: 
        !            27: 
        !            28: static char dlgRecordName[35];
        !            29: 
        !            30: 
        !            31: /* The sound dialog: */
        !            32: SGOBJ sounddlg[] =
        !            33: {
        !            34:   { SGBOX, 0, 0, 0,0, 38,24, NULL },
        !            35:   { SGBOX, 0, 0, 1,1, 36,11, NULL },
        !            36:   { SGTEXT, 0, 0, 13,2, 13,1, "Sound options" },
        !            37:   { SGCHECKBOX, 0, 0, 12,4, 14,1, "Enable sound" },
        !            38:   { SGTEXT, 0, 0, 11,6, 14,1, "Playback quality:" },
        !            39:   { SGRADIOBUT, 0, 0, 12,8, 15,1, "Low (11kHz)" },
        !            40:   { SGRADIOBUT, 0, 0, 12,9, 19,1, "Medium (22kHz)" },
        !            41:   { SGRADIOBUT, 0, 0, 12,10, 14,1, "High (44kHz)" },
        !            42:   { SGBOX, 0, 0, 1,13, 36,8, NULL },
        !            43:   { SGTEXT, 0, 0, 13,14, 14,1, "Capture YM/WAV" },
        !            44:   { SGTEXT, 0, 0, 2,16, 26,1, "File name (*.wav or *.ym):" },
        !            45:   { SGTEXT, 0, 0, 2,17, 34,1, dlgRecordName },
        !            46:   { SGBUTTON, 0, 0, 30,16, 6,1, "Browse" },
        !            47:   { SGBUTTON, 0, 0, 12,19, 16,1, NULL },
        !            48:   { SGBUTTON, 0, 0, 10,22, 20,1, "Back to main menu" },
        !            49:   { -1, 0, 0, 0,0, 0,0, NULL }
        !            50: };
        !            51: 
        !            52: 
        !            53: /*-----------------------------------------------------------------------*/
        !            54: /*
        !            55:   Show and process the sound dialog.
        !            56: */
        !            57: void Dialog_SoundDlg(void)
        !            58: {
        !            59:   int but;
        !            60:   char *tmpname;
        !            61: 
        !            62:   /* Allocate memory for tmpname: */
        !            63:   tmpname = Memory_Alloc(FILENAME_MAX);
        !            64: 
        !            65:   SDLGui_CenterDlg(sounddlg);
        !            66: 
        !            67:   /* Set up dialog from actual values: */
        !            68: 
        !            69:   if( DialogParams.Sound.bEnableSound )
        !            70:     sounddlg[DLGSOUND_ENABLE].state |= SG_SELECTED;
        !            71:   else
        !            72:     sounddlg[DLGSOUND_ENABLE].state &= ~SG_SELECTED;
        !            73: 
        !            74:   sounddlg[DLGSOUND_LOW].state &= ~SG_SELECTED;
        !            75:   sounddlg[DLGSOUND_MEDIUM].state &= ~SG_SELECTED;
        !            76:   sounddlg[DLGSOUND_HIGH].state &= ~SG_SELECTED;
        !            77:   if(DialogParams.Sound.nPlaybackQuality == PLAYBACK_LOW)
        !            78:     sounddlg[DLGSOUND_LOW].state |= SG_SELECTED;
        !            79:   else if(DialogParams.Sound.nPlaybackQuality == PLAYBACK_MEDIUM)
        !            80:     sounddlg[DLGSOUND_MEDIUM].state |= SG_SELECTED;
        !            81:   else
        !            82:     sounddlg[DLGSOUND_HIGH].state |= SG_SELECTED;
        !            83: 
        !            84:   File_ShrinkName(dlgRecordName, DialogParams.Sound.szYMCaptureFileName, sounddlg[DLGSOUND_RECNAME].w);
        !            85: 
        !            86:   if( Sound_AreWeRecording() )
        !            87:     sounddlg[DLGSOUND_RECORD].txt = "Stop recording";
        !            88:   else
        !            89:     sounddlg[DLGSOUND_RECORD].txt = "Record sound";
        !            90: 
        !            91:   /* The sound dialog main loop */
        !            92:   do
        !            93:   {
        !            94:     but = SDLGui_DoDialog(sounddlg);
        !            95:     switch(but)
        !            96:     {
        !            97:       case DLGSOUND_RECBROWSE:                    /* Choose a new record file */
        !            98:         strcpy(tmpname, DialogParams.Sound.szYMCaptureFileName);
        !            99:         if( SDLGui_FileSelect(tmpname, NULL, TRUE) )
        !           100:         {
        !           101:           if( !File_DoesFileNameEndWithSlash(tmpname) )
        !           102:           {
        !           103:             strcpy(DialogParams.Sound.szYMCaptureFileName, tmpname);
        !           104:             File_ShrinkName(dlgRecordName, tmpname, sounddlg[DLGSOUND_RECNAME].w);
        !           105:           }
        !           106:         }
        !           107:         break;
        !           108:       case  DLGSOUND_RECORD:
        !           109:         if(Sound_AreWeRecording())
        !           110:         {
        !           111:           sounddlg[DLGSOUND_RECORD].txt = "Record sound";
        !           112:           Sound_EndRecording();
        !           113:         }
        !           114:         else
        !           115:         {
        !           116:           /* make sure that we have a valid file name... */
        !           117:           if(strlen(DialogParams.Sound.szYMCaptureFileName) < 4)
        !           118:           {
        !           119:             strcpy(DialogParams.Sound.szYMCaptureFileName, "./hatari.wav");
        !           120:           }
        !           121:           sounddlg[DLGSOUND_RECORD].txt = "Stop recording";
        !           122:           Sound_BeginRecording(DialogParams.Sound.szYMCaptureFileName);
        !           123:         }
        !           124:         break;
        !           125:     }
        !           126:   }
        !           127:   while( but!=DLGSOUND_EXIT && !bQuitProgram );
        !           128: 
        !           129:   /* Read values from dialog */
        !           130:   DialogParams.Sound.bEnableSound = (sounddlg[DLGSOUND_ENABLE].state & SG_SELECTED);
        !           131:   if( sounddlg[DLGSOUND_LOW].state & SG_SELECTED )
        !           132:     DialogParams.Sound.nPlaybackQuality = PLAYBACK_LOW;
        !           133:   else if( sounddlg[DLGSOUND_MEDIUM].state & SG_SELECTED )
        !           134:     DialogParams.Sound.nPlaybackQuality = PLAYBACK_MEDIUM;
        !           135:   else
        !           136:     DialogParams.Sound.nPlaybackQuality = PLAYBACK_HIGH;
        !           137: 
        !           138:   Memory_Free(tmpname);
        !           139: }

unix.superglobalmegacorp.com

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