]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
imported winuaesrc1310.zip
authorToni Wilen <twilen@winuae.net>
Fri, 4 Aug 2006 12:42:25 +0000 (15:42 +0300)
committerToni Wilen <twilen@winuae.net>
Mon, 22 Feb 2010 19:29:09 +0000 (21:29 +0200)
audio.c
disk.c
od-win32/avioutput.c
od-win32/avioutput.h
od-win32/resources/resource.h
od-win32/resources/winuae.rc
od-win32/sounddep/sound.c
od-win32/win32gui.c

diff --git a/audio.c b/audio.c
index 3ddb94dc566d466228be14380ae9b4258422a9a0..7706360416ece97a02c1039f253ebca82bb5b580 100755 (executable)
--- a/audio.c
+++ b/audio.c
@@ -466,7 +466,7 @@ static void sinc_prehandler(unsigned long best_evtime)
          * write data into sinc queue for mixing in the BLEP */
         if (acd->output_state != output) {
             if (acd->sinc_queue_length > SINC_QUEUE_LENGTH - 1) {
-                write_log("warning: sinc queue truncated. Last age: %d.\n", acd->sinc_queue[SINC_QUEUE_LENGTH-1].age);
+                //write_log("warning: sinc queue truncated. Last age: %d.\n", acd->sinc_queue[SINC_QUEUE_LENGTH-1].age);
                 acd->sinc_queue_length = SINC_QUEUE_LENGTH - 1;
             }
             /* make room for new and add the new value */
diff --git a/disk.c b/disk.c
index 343b98e7b387925445db0be759f8ef4572554ee5..c95a829c54a206e1152387592e1a8ef4abeee2c1 100755 (executable)
--- a/disk.c
+++ b/disk.c
@@ -1148,32 +1148,31 @@ static uae_u8 mfmencodetable[16] = {
     0x4a, 0x49, 0x44, 0x45, 0x52, 0x51, 0x54, 0x55
 };
 
-static uae_u16 *mfmcoder(uae_u8 *s, uae_u16 *mfm, int len)
+
+static uae_u16 dos_encode_byte(uae_u8 byte)
+{           
+    uae_u8 b2, b1;        
+    uae_u16 word;
+
+    b1 = byte;
+    b2 = b1 >> 4;
+    b1 &= 15;
+    word = mfmencodetable[b2] <<8 | mfmencodetable[b1];
+    return (word | ((word & (256 | 64)) ? 0 : 128));
+}
+
+static uae_u16 *mfmcoder(uae_u8 *src, uae_u16 *dest, int len) 
 {
-    static int prev;
+    int i;
 
-    if (!s) {
-       prev = len;
-       return NULL;
-    }
-    while (len-- > 0) {
-       uae_u16 db;
-       uae_u8 b1, b2;
-       uae_u8 b = *s++;
-       b1 = b;
-       b2 = b >> 4;
-       b1 &= 15;
-       db = (mfmencodetable[b2] << 8) | mfmencodetable[b1];
-       db = db | ((db & (256 | 64)) ? 0 : 128);
-       if (!prev && !(db & 0x4000))
-           db |= 0x8000;
-       prev = db & 1;
-       *mfm++ = db;
+    for (i = 0; i < len; i++) {
+       *dest = dos_encode_byte(*src++);
+       *dest |= ((dest[-1] & 1)||(*dest & 0x4000)) ? 0: 0x8000;            
+       dest++;
     }
-    return mfm;
+    return dest;
 }
 
-
 static void decode_pcdos (drive *drv)
 {
     int i;
@@ -1183,8 +1182,8 @@ static void decode_pcdos (drive *drv)
     uae_u16 crc16;
     trackid *ti = drv->trackdata + tr;
 
-    mfmcoder (NULL, NULL, 0);
     mfm2 = drv->bigmfmbuf;
+    *mfm2++ = 0x9254;
     memset (secbuf, 0x4e, 80); // 94
     memset (secbuf + 80, 0x00, 12); // 12
     secbuf[92] = 0xc2;
@@ -1220,8 +1219,8 @@ static void decode_pcdos (drive *drv)
        crc16 = get_crc16(secbuf + 56, 3 + 1 + 512);
        secbuf[60 + 512] = crc16 >> 8;
        secbuf[61 + 512] = crc16 & 0xff;
-       memset(secbuf + 512 + 62, 0x4e, 80 / drv->ddhd);
-       dstmfmbuf = mfmcoder(secbuf, mfm2, 60 + 512 + 2 + 80 / drv->ddhd);
+       memset(secbuf + 512 + 62, 0x4e, 76 / drv->ddhd);
+       dstmfmbuf = mfmcoder(secbuf, mfm2, 60 + 512 + 2 + 76 / drv->ddhd);
        mfm2[12] = 0x4489;
        mfm2[13] = 0x4489;
        mfm2[14] = 0x4489;
@@ -1229,6 +1228,8 @@ static void decode_pcdos (drive *drv)
        mfm2[57] = 0x4489;
        mfm2[58] = 0x4489;
     }
+    for (i = 0; i < 200; i++)
+        *dstmfmbuf++ = 0x9254;
     drv->skipoffset = 0;
     drv->tracklen = (dstmfmbuf - drv->bigmfmbuf) * 16;
     if (disk_debug_logging > 0)
index c4585b148d30444014f06cb6cfacc3e725796b1b..eef5d8ed56e33bc5239467c1669f1aaddb5111a8 100755 (executable)
@@ -53,7 +53,7 @@ int avioutput_audio, avioutput_video, avioutput_enabled, avioutput_requested;
 
 int avioutput_width, avioutput_height, avioutput_bits;
 int avioutput_fps = VBLANK_HZ_PAL;
-DWORD avioutput_framelimiter = 0;
+DWORD avioutput_framelimiter = 0, avioutput_nosoundoutput = 0;
 
 char avioutput_filename[MAX_DPATH];
 static char avioutput_filename_tmp[MAX_DPATH];
@@ -105,14 +105,20 @@ static HKEY openavikey(void)
 static void storesettings(HKEY avikey)
 {
     RegSetValueEx(avikey, "FrameLimiter", 0, REG_DWORD, (BYTE*)&avioutput_framelimiter, sizeof(DWORD));
+    RegSetValueEx(avikey, "NoSoundOutput", 0, REG_DWORD, (BYTE*)&avioutput_nosoundoutput, sizeof(DWORD));
     RegSetValueEx(avikey, "FPS", 0, REG_DWORD, (BYTE*)&avioutput_fps, sizeof(DWORD));
 }
 static void getsettings(HKEY avikey)
 {
     DWORD val;
     DWORD ss = sizeof (DWORD);
+    if (RegQueryValueEx(avikey, "NoSoundOutput", 0, NULL, (BYTE*)&val, &ss) == ERROR_SUCCESS)
+       avioutput_nosoundoutput = val;
+    ss = sizeof (DWORD);
     if (RegQueryValueEx(avikey, "FrameLimiter", 0, NULL, (BYTE*)&val, &ss) == ERROR_SUCCESS)
        avioutput_framelimiter = val;
+    if (!avioutput_framelimiter)
+       avioutput_nosoundoutput = 1;
     ss = sizeof (DWORD);
     if (RegQueryValueEx(avikey, "FPS", 0, NULL, (BYTE*)&val, &ss) == ERROR_SUCCESS)
        avioutput_fps = val;
index 81a44533051c8450db64317ea61cffe9ff61aba4..693cbead24b71456d468d041d2dbc2dab8cc2f56 100755 (executable)
@@ -10,7 +10,7 @@ extern int avioutput_video, avioutput_audio, avioutput_enabled, avioutput_reques
 
 extern int avioutput_width, avioutput_height, avioutput_bits;
 extern int avioutput_fps;
-extern DWORD avioutput_framelimiter;
+extern DWORD avioutput_framelimiter, avioutput_nosoundoutput;
 
 extern char avioutput_filename[MAX_DPATH];
 
index 0913fb48e0c757024ce2bd70af929c158b8b6f29..f516f95e3244b01e1b4002b28cc0d5eaa112c07d 100755 (executable)
 #define IDC_STATE_BUFFERSIZE            1647
 #define IDC_SOUNDDRIVESELECT            1647
 #define IDC_PANELTREE                   1647
+#define IDC_AVIOUTPUT_FRAMELIMITER2     1647
+#define IDC_AVIOUTPUT_NOSOUNDOUTPUT     1647
 #define IDC_AVIOUTPUT_DIMENSIONS_STATIC 1648
 #define IDC_STATE_BUFFERSIZE_TEXT       1648
 #define IDC_CONFIGTREE                  1648
index 7db6595036b5ddd8e6dfe48f4881b3ba47e9752d..ce0b423088d349f281d90fddd10c38be2c0ce76a 100755 (executable)
@@ -500,11 +500,11 @@ BEGIN
                     "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,174,56,100,10
 END
 
-IDD_AVIOUTPUT DIALOGEX 0, 0, 288, 193
+IDD_AVIOUTPUT DIALOGEX 0, 0, 288, 203
 STYLE DS_SETFONT | DS_CONTROL | WS_CHILD
 FONT 8, "MS Sans Serif", 0, 0, 0x1
 BEGIN
-    GROUPBOX        "Output Properties",IDC_STATIC,5,8,274,97
+    GROUPBOX        "Output Properties",IDC_STATIC,5,8,274,118
     EDITTEXT        IDC_AVIOUTPUT_FILETEXT,15,21,226,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER,WS_EX_CLIENTEDGE
     PUSHBUTTON      "...",IDC_AVIOUTPUT_FILE,249,20,19,12
     CONTROL         "Audio",IDC_AVIOUTPUT_AUDIO,"Button",BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_FLAT | WS_TABSTOP,15,36,32,11
@@ -513,19 +513,21 @@ BEGIN
     CONTROL         "",IDC_AVIOUTPUT_VIDEO_STATIC,"Static",SS_LEFTNOWORDWRAP | SS_CENTERIMAGE | SS_SUNKEN | WS_GROUP,59,50,209,11
     CONTROL         "Disable frame rate limit while recording",IDC_AVIOUTPUT_FRAMELIMITER,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,68,136,10
-    CONTROL         "AVI output enabled",IDC_AVIOUTPUT_ACTIVATED,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,15,83,108,14
-    CONTROL         "PAL",IDC_AVIOUTPUT_PAL,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,133,83,66,14
-    CONTROL         "NTSC",IDC_AVIOUTPUT_NTSC,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,204,83,66,14
-    CONTROL         "Slider1",IDC_AVIOUTPUT_FPS,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | TBS_ENABLESELRANGE | WS_TABSTOP,156,68,97,11
-    LTEXT           "fps",IDC_AVIOUTPUT_FPS_STATIC,255,68,19,8
-    PUSHBUTTON      "Save screenshot",IDC_SCREENSHOT,16,124,76,14
-    GROUPBOX        "Ripper",IDC_STATIC,5,110,275,38
-    PUSHBUTTON      "Pro Wizard",IDC_PROWIZARD,100,124,76,14,WS_DISABLED
-    CONTROL         "Sample ripper",IDC_SAMPLERIPPER_ACTIVATED,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,192,124,77,14
-    GROUPBOX        "Input Recorder",IDC_STATIC,5,152,275,33
-    CONTROL         "Record",IDC_INPREC_RECORD,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,191,164,77,14
-    CONTROL         "Playback",IDC_INPREC_PLAY,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,16,165,77,14
-    CONTROL         "Alt. playback mode",IDC_INPREC_PLAYMODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,103,167,78,10
+    CONTROL         "AVI output enabled",IDC_AVIOUTPUT_ACTIVATED,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,15,103,108,14
+    CONTROL         "PAL",IDC_AVIOUTPUT_PAL,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,133,103,66,14
+    CONTROL         "NTSC",IDC_AVIOUTPUT_NTSC,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,204,103,66,14
+    CONTROL         "Slider1",IDC_AVIOUTPUT_FPS,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | TBS_ENABLESELRANGE | WS_TABSTOP,156,84,97,11
+    LTEXT           "fps",IDC_AVIOUTPUT_FPS_STATIC,255,84,19,8
+    PUSHBUTTON      "Save screenshot",IDC_SCREENSHOT,16,141,76,14
+    GROUPBOX        "Ripper",IDC_STATIC,5,127,274,38
+    PUSHBUTTON      "Pro Wizard",IDC_PROWIZARD,100,141,76,14,WS_DISABLED
+    CONTROL         "Sample ripper",IDC_SAMPLERIPPER_ACTIVATED,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,192,141,77,14
+    GROUPBOX        "Input Recorder",IDC_STATIC,5,166,274,33
+    CONTROL         "Record",IDC_INPREC_RECORD,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,191,177,77,14
+    CONTROL         "Playback",IDC_INPREC_PLAY,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,16,178,77,14
+    CONTROL         "Alt. playback mode",IDC_INPREC_PLAYMODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,103,180,78,10
+    CONTROL         "Disable sound output while recording",IDC_AVIOUTPUT_NOSOUNDOUTPUT,
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,85,136,10
 END
 
 IDD_INPUT DIALOGEX 0, 0, 300, 242
index fd2dfa4b259f6a3966e6ad8b1e78a2820553e3ac..fbb2ea8710b1435f79ac38ee2ac45c2a9bebd845 100755 (executable)
@@ -38,8 +38,6 @@
 #define ADJUST_SIZE 10
 #define EXP 1.3
 
-#define FILTER_FREQUENCY 7000.0
-
 //#define SOUND_DEBUG
 
 static int obtainedfreq;
@@ -601,7 +599,7 @@ void finish_sound_buffer (void)
 #ifdef AVIOUTPUT
     if (avioutput_audio)
         AVIOutput_WriteAudio ((uae_u8*)sndbuffer, sndbufsize);
-    if (avioutput_enabled && !avioutput_framelimiter)
+    if (avioutput_enabled && (!avioutput_framelimiter || avioutput_nosoundoutput))
        return;
 #endif
     if (!have_sound)
index 1d9ce79d961e61bf34d4659c5c0c9f6c8cb39114..510e9e6acac7a6cc3c96306f318686a0261d8d9d 100755 (executable)
@@ -5098,10 +5098,9 @@ static void enable_for_sounddlg (HWND hDlg)
     EnableWindow (GetDlgItem (hDlg, IDC_SOUNDDRIVESELECT), workprefs.produce_sound);
     EnableWindow (GetDlgItem (hDlg, IDC_SOUNDDRIVEVOLUME), workprefs.produce_sound);
     EnableWindow (GetDlgItem (hDlg, IDC_SOUNDDRIVEVOLUME2), workprefs.produce_sound);
-
     EnableWindow (GetDlgItem (hDlg, IDC_AUDIOSYNC), workprefs.produce_sound);
     EnableWindow (GetDlgItem (hDlg, IDC_SOUNDFILTER), workprefs.produce_sound);
+    EnableWindow (GetDlgItem (hDlg, IDC_SOUNDSWAP), workprefs.produce_sound);
 
     EnableWindow (GetDlgItem (hDlg, IDC_SOUNDCALIBRATE), workprefs.produce_sound && full_property_sheet);
 }
@@ -8159,6 +8158,7 @@ static void values_to_avioutputdlg(HWND hDlg)
     }
        
     CheckDlgButton (hDlg, IDC_AVIOUTPUT_FRAMELIMITER, avioutput_framelimiter ? FALSE : TRUE);
+    CheckDlgButton (hDlg, IDC_AVIOUTPUT_FRAMELIMITER, avioutput_nosoundoutput ? TRUE : FALSE);
     CheckDlgButton (hDlg, IDC_AVIOUTPUT_ACTIVATED, avioutput_requested ? BST_CHECKED : BST_UNCHECKED);
     CheckDlgButton (hDlg, IDC_SAMPLERIPPER_ACTIVATED, sampleripper_enabled ? BST_CHECKED : BST_UNCHECKED);
 }
@@ -8221,7 +8221,11 @@ static void enable_for_avioutputdlg(HWND hDlg)
     }
     SetWindowText(GetDlgItem(hDlg, IDC_AVIOUTPUT_VIDEO_STATIC), tmp);
 
+    EnableWindow(GetDlgItem(hDlg, IDC_AVIOUTPUT_NOSOUNDOUTPUT), avioutput_framelimiter ? TRUE : FALSE);
+    if (!avioutput_framelimiter)
+       avioutput_nosoundoutput = 1;
     CheckDlgButton (hDlg, IDC_AVIOUTPUT_FRAMELIMITER, avioutput_framelimiter ? FALSE : TRUE);
+    CheckDlgButton (hDlg, IDC_AVIOUTPUT_NOSOUNDOUTPUT, avioutput_nosoundoutput ? TRUE : FALSE);
 
     EnableWindow(GetDlgItem(hDlg, IDC_AVIOUTPUT_ACTIVATED), (!avioutput_audio && !avioutput_video) ? FALSE : TRUE);
 
@@ -8283,6 +8287,10 @@ static INT_PTR CALLBACK AVIOutputDlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPA
                    avioutput_framelimiter = IsDlgButtonChecked (hDlg, IDC_AVIOUTPUT_FRAMELIMITER) ? 0 : 1;
                    AVIOutput_SetSettings();
                break;
+               case IDC_AVIOUTPUT_NOSOUNDOUTPUT:
+                   avioutput_nosoundoutput = IsDlgButtonChecked (hDlg, IDC_AVIOUTPUT_NOSOUNDOUTPUT) ? 1 : 0;
+                   AVIOutput_SetSettings();
+               break;
 
                case IDC_INPREC_PLAYMODE:
                break;