int len, wlen;
uae_u16 dat, dat2;
int request_word, request_word_skip;
+ int vpos;
};
int sampleripper_enabled;
return INTREQR() & (0x80 << nr);
}
-static void setirq (int nr)
+static void setirq (int nr, int debug)
{
- INTREQ (0x8000 | (0x80 << nr));
#ifdef DEBUG_AUDIO
if (debugchannel (nr))
- write_log ("SETIRQ %d %08.8X\n", nr, m68k_getpc());
+ write_log ("SETIRQ %d %08.8X (%d)\n", nr, m68k_getpc(), debug);
#endif
+ INTREQ (0x8000 | (0x80 << nr));
}
static void newsample (int nr, sample8_t sample)
}
}
+static void zerostate(struct audio_channel_data *cdp)
+{
+ cdp->state = 0;
+ cdp->evtime = MAX_EV;
+ cdp->request_word = 0;
+}
+
static void audio_handler (int nr, int timed)
{
struct audio_channel_data *cdp = audio_channel + nr;
cdp->request_word = 0;
cdp->request_word_skip = 0;
cdp->intreq2 = 0;
+ cdp->vpos = vpos;
if (cdp->dmaen) {
cdp->state = 1;
cdp->wlen = cdp->len;
} else if (!cdp->dmaen && cdp->request_word < 0 && !isirq (nr)) {
cdp->evtime = 0;
cdp->state = 2;
- setirq (nr);
+ setirq (nr, 0);
audio_handler (nr, timed);
return;
}
if (cdp->wlen != 1)
cdp->wlen = (cdp->wlen - 1) & 0xFFFF;
cdp->request_word = 2;
+ /* "mysterious" delay for Mission Elevator */
+ //if (cdp->vpos == vpos)
if (current_hpos () > maxhpos - 20)
cdp->request_word_skip = 1;
return;
cdp->request_word = 2;
return;
}
- setirq (nr);
+ setirq (nr, 1);
if (!cdp->dmaen) {
cdp->state = 0;
cdp->request_word = 0;
cdp->per = PERIOD_MAX;
if (!cdp->dmaen && isirq (nr) && ((cdp->per <= 30 ) || (evtime == 0 || evtime == MAX_EV || evtime == cdp->per))) {
- cdp->state = 0;
- cdp->evtime = MAX_EV;
- cdp->request_word = 0;
+ zerostate (cdp);
return;
}
/* Period attachment? */
if (audap) {
if (cdp->intreq2 && cdp->dmaen)
- setirq (nr);
+ setirq (nr, 2);
cdp->intreq2 = 0;
cdp->request_word = 1;
cdp->dat = cdp->dat2;
if (napnav)
cdp->request_word = 1;
if (cdp->intreq2 && napnav)
- setirq (nr);
+ setirq (nr, 3);
} else {
if (napnav)
- setirq (nr);
+ setirq (nr, 4);
}
cdp->intreq2 = 0;
#ifdef DEBUG_AUDIO
if (debugchannel (nr))
- write_log ("AUD%dDAT: %04.4X STATE=%d IRQ=%d %p\n", nr,
+ write_log ("AUD%dDAT: %04.4X STATE=%d IRQ=%d %08.8X\n", nr,
v, cdp->state, isirq(nr) ? 1 : 0, m68k_getpc());
#endif
update_audio ();
audio_channel[nr].lc = (audio_channel[nr].lc & 0xffff) | ((uae_u32)v << 16);
#ifdef DEBUG_AUDIO
if (debugchannel (nr))
- write_log ("AUD%dLCH: %04.4X %p\n", nr, v, m68k_getpc());
+ write_log ("AUD%dLCH: %04.4X %08.8X\n", nr, v, m68k_getpc());
#endif
}
audio_channel[nr].lc = (audio_channel[nr].lc & ~0xffff) | (v & 0xFFFE);
#ifdef DEBUG_AUDIO
if (debugchannel (nr))
- write_log ("AUD%dLCL: %04.4X %p\n", nr, v, m68k_getpc());
+ write_log ("AUD%dLCL: %04.4X %08.8X\n", nr, v, m68k_getpc());
#endif
}
audio_channel[nr].per = per;
#ifdef DEBUG_AUDIO
if (debugchannel (nr))
- write_log ("AUD%dPER: %d %p\n", nr, v, m68k_getpc());
+ write_log ("AUD%dPER: %d %08.8X\n", nr, v, m68k_getpc());
#endif
}
audio_channel[nr].len = v;
#ifdef DEBUG_AUDIO
if (debugchannel (nr))
- write_log ("AUD%dLEN: %d %p\n", nr, v, m68k_getpc());
+ write_log ("AUD%dLEN: %d %08.8X\n", nr, v, m68k_getpc());
#endif
}
#endif
#ifdef DEBUG_AUDIO
if (debugchannel (nr))
- write_log ("AUD%dVOL: %d %p\n", nr, v2, m68k_getpc());
+ write_log ("AUD%dVOL: %d %08.8X\n", nr, v2, m68k_getpc());
+#endif
+}
+
+void audio_update_irq (uae_u16 v)
+{
+#ifdef DEBUG_AUDIO
+ uae_u16 v2 = intreq, v3 = intreq;
+ int i;
+ if (v & 0x8000)
+ v2 |= v & 0x7FFF;
+ else
+ v2 &= ~v;
+ v2 &= (0x80 | 0x100 | 0x200 | 0x400);
+ v3 &= (0x80 | 0x100 | 0x200 | 0x400);
+ for (i = 0; i < 4; i++) {
+ if ((1 << i) & DEBUG_CHANNEL_MASK) {
+ uae_u16 mask = 0x80 << i;
+ if ((v2 & mask) != (v3 & mask))
+ write_log("AUD%dINTREQ %d->%d %08.8X\n", i, !!(v3 & mask), !!(v2 & mask), m68k_getpc());
+ }
+ }
#endif
}
-void update_adkmasks (void)
+void audio_update_adkmasks (void)
{
unsigned long t = adkcon | (adkcon >> 4);
audio_channel[0].adk_mask = (((t >> 0) & 1) - 1);
audio_channel[1].adk_mask = (((t >> 1) & 1) - 1);
audio_channel[2].adk_mask = (((t >> 2) & 1) - 1);
audio_channel[3].adk_mask = (((t >> 3) & 1) - 1);
+#ifdef DEBUG_AUDIO
+ {
+ static int prevcon = -1;
+ if ((prevcon & 0xff) != (adkcon & 0xff)) {
+ write_log("ADKCON=%02.2x %08.8X\n", adkcon & 0xff, m68k_getpc());
+ prevcon = adkcon;
+ }
+ }
+#endif
}
int init_audio (void)
#ifdef PARALLEL_PORT
if (isprinter() > 0) {
doprinter (val);
+ cia_parallelack ();
} else if (isprinter() < 0) {
parallel_direct_write_data (val, ciaadrb);
+ cia_parallelack ();
#ifdef ARCADIA
} else if (arcadia_rom) {
arcadia_parport (1, ciaaprb, ciaadrb);
#endif
}
- cia_parallelack ();
#endif
break;
case 2:
void INTREQ_0 (uae_u16 v)
{
+ if (v & (0x80|0x100|0x200|0x400))
+ audio_update_irq (v);
setclr (&intreq,v);
doint ();
}
update_audio ();
setclr (&adkcon,v);
- update_adkmasks ();
+ audio_update_adkmasks ();
DISK_update (hpos);
if ((v >> 11) & 1)
serial_uartbreak ((adkcon >> 11) & 1);
/* must be called after audio_reset */
adkcon = 0;
serial_uartbreak (0);
- update_adkmasks ();
+ audio_update_adkmasks ();
}
init_sprites ();
uae_u16 v;
uae_u32 vv;
- update_adkmasks ();
+ audio_update_adkmasks ();
INTENA (0);
INTREQ (0);
#if 0
#include "sysconfig.h"
#include "sysdeps.h"
+#include "options.h"
#include "custom.h"
#include "xwin.h"
return (alpha & ((1 << bits) - 1)) << shift;
}
+static int greyscale(int v)
+{
+#if 0
+ double l;
+ double lum = currprefs.gfx_luminance / 5.0;
+ double con = currprefs.gfx_contrast / 10.0;
+
+ l = v;
+ l = l + lum / (256 / 100);
+ l = (l - con) / (256 - 2 * con) * 256;
+ if (l < 0)
+ l = 0;
+ if (l > 255)
+ l = 255;
+ return (int)l;
+#else
+ return v;
+#endif
+}
+
#if 0
static void colormodify (int *r, int *g, int *b)
{
int r = ((i >> 8) << 4) | (i >> 8);
int g = (((i >> 4) & 0xf) << 4) | ((i >> 4) & 0x0f);
int b = ((i & 0xf) << 4) | (i & 0x0f);
- //colormodify (&r, &g, &b);
+ r = greyscale (r);
+ g = greyscale (g);
+ b = greyscale (b);
xcolors[i] = doMask(r, rw, rs) | doMask(g, gw, gs) | doMask(b, bw, bs) | doAlpha (alpha, aw, as);
}
#ifdef AGA
/* create AGA color tables */
for(i = 0; i < 256; i++) {
- xredcolors[i] = doColor (i, rw, rs) | doAlpha (alpha, aw, as);
- xgreencolors[i] = doColor (i, gw, gs) | doAlpha (alpha, aw, as);
- xbluecolors[i] = doColor (i, bw, bs) | doAlpha (alpha, aw, as);;
+ xredcolors[i] = greyscale (doColor (i, rw, rs)) | doAlpha (alpha, aw, as);
+ xgreencolors[i] = greyscale (doColor (i, gw, gs)) | doAlpha (alpha, aw, as);
+ xbluecolors[i] = greyscale (doColor (i, bw, bs)) | doAlpha (alpha, aw, as);
}
#endif
}
int nb_cols[3]; /* r,g,b */
int maxcol = newmaxcol == 0 ? 256 : newmaxcol;
int i,j,k,l;
-
xcolnr *map;
map = (xcolnr *)malloc (sizeof(xcolnr) * maxcol);
extern void schedule_audio (void);
extern void audio_evhandler (void);
extern void audio_hsync (int);
-extern void update_adkmasks (void);
+extern void audio_update_adkmasks (void);
+extern void audio_update_irq (uae_u16);
extern void update_sound (int freq);
extern void audio_sampleripper(int);
int maxblocklines; /* Set to 0 if you want calls to flush_line after each drawn line, or the number of
* lines that flush_block wants to/can handle (it isn't really useful to use another
* value than maxline here). */
- int can_double; /* Set if the high part of each entry in xcolors contains the same value
- * as the low part, so that two pixels can be drawn at once. */
};
extern struct vidbuf_description gfxvidinfo;
!define PRODUCT_NAME "WinUAE"
-!define PRODUCT_VERSION "1.1"
+!define PRODUCT_VERSION "1.1.1"
!define PRODUCT_PUBLISHER "Toni Wilen"
!define PRODUCT_WEB_SITE "http://www.winuae.net/"
!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\winuae.exe"
FONT 8, "MS Sans Serif", 0, 0, 0x1
BEGIN
GROUPBOX "Screen",IDC_SCREENRESTEXT,12,0,199,67,BS_LEFT
- RTEXT "Fullscreen",IDC_SELECTRESTEXT,22,17,34,15,SS_CENTERIMAGE
- COMBOBOX IDC_DISPLAYSELECT,61,10,143,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_RESOLUTION,61,27,77,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+ RTEXT "Fullscreen",IDC_SELECTRESTEXT,17,17,34,15,SS_CENTERIMAGE
+ COMBOBOX IDC_DISPLAYSELECT,57,10,147,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+ COMBOBOX IDC_RESOLUTION,57,27,52,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDC_REFRESHRATE,143,27,61,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- RTEXT "Windowed",IDC_WINDOWEDTEXT,22,51,35,8
- EDITTEXT IDC_XSIZE,61,48,35,12,ES_NUMBER
- EDITTEXT IDC_YSIZE,103,48,35,12,ES_NUMBER
+ RTEXT "Windowed",IDC_WINDOWEDTEXT,18,51,35,8
+ EDITTEXT IDC_XSIZE,57,48,35,12,ES_NUMBER
+ EDITTEXT IDC_YSIZE,101,48,35,12,ES_NUMBER
CONTROL "VSync",IDC_VSYNC,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,145,49,54,10
GROUPBOX "Settings",IDC_SETTINGSTEXT,12,77,199,89
CONTROL "Full Screen",IDC_AFULLSCREEN,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,35,89,90,10
LTEXT "FPS Adj.",IDC_REFRESH2TEXT,18,149,28,8
CONTROL "",IDC_FRAMERATE2,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,46,144,127,20
EDITTEXT IDC_RATE2TEXT,177,148,26,12,ES_CENTER | ES_READONLY
+ COMBOBOX IDC_RESOLUTIONDEPTH,110,27,32,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
END
IDD_MEMORY DIALOGEX 0, 0, 300, 175
CONTROL "After Picasso96",IDC_TRUST2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,230,155,64,10
END
-IDD_FLOPPY DIALOGEX 0, 0, 300, 230
+IDD_FLOPPY DIALOGEX 0, 0, 300, 224
STYLE DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
FONT 8, "MS Sans Serif", 0, 0, 0x0
BEGIN
CONTROL "",IDC_DF3WP,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,238,111,9,15
PUSHBUTTON "Eject",IDC_EJECT3,253,110,30,15
PUSHBUTTON "...",IDC_DF3,287,109,10,15
- GROUPBOX "New disk image",IDC_SETTINGSTEXT,5,147,289,35
- COMBOBOX IDC_FLOPPYTYPE,16,160,51,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- PUSHBUTTON "Create Standard ""Floppy"" [] Creates standard 880kb ADF disk image.",IDC_CREATE,76,160,97,15
- PUSHBUTTON "Create Custom ""Floppy"" [] Creates ~2Mb low level (MFM) ADF disk image. Useful for programs that use non-AmigaDOS disk format (for example some save disks or MSDOS formatted floppies)",IDC_CREATE_RAW,183,160,101,15
- GROUPBOX "Floppy drive emulation speed",IDC_SETTINGSTEXT2,5,185,289,35
- CONTROL "",IDC_FLOPPYSPD,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,32,193,116,20
- EDITTEXT IDC_FLOPPYSPDTEXT,169,196,107,12,ES_CENTER | ES_READONLY
+ GROUPBOX "New disk image",IDC_SETTINGSTEXT,5,183,289,35
+ COMBOBOX IDC_FLOPPYTYPE,16,196,51,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ PUSHBUTTON "Create Standard ""Floppy"" [] Creates standard 880kb ADF disk image.",IDC_CREATE,76,196,97,15
+ PUSHBUTTON "Create Custom ""Floppy"" [] Creates ~2Mb low level (MFM) ADF disk image. Useful for programs that use non-AmigaDOS disk format (for example some save disks or MSDOS formatted floppies)",IDC_CREATE_RAW,183,196,101,15
+ GROUPBOX "Floppy drive emulation speed",IDC_SETTINGSTEXT2,5,144,289,35
+ CONTROL "",IDC_FLOPPYSPD,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,32,152,116,20
+ EDITTEXT IDC_FLOPPYSPDTEXT,169,155,107,12,ES_CENTER | ES_READONLY
PUSHBUTTON "Delete Saveimage",IDC_SAVEIMAGE0,43,5,70,15,NOT WS_VISIBLE
PUSHBUTTON "Delete Saveimage",IDC_SAVEIMAGE1,43,40,70,15,NOT WS_VISIBLE
PUSHBUTTON "Delete Saveimage",IDC_SAVEIMAGE2,43,75,70,15,NOT WS_VISIBLE
COMBOBOX IDC_KBLED2,22,153,56,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDC_KBLED3,22,173,56,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
GROUPBOX "Logging:",IDC_STATIC,97,120,195,25
- CONTROL "Create log file",IDC_CREATELOGFILE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,107,130,72,10,0,HIDC_CREATELOGFILE
- CONTROL "Illegal mem accesses",IDC_ILLEGAL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,189,130,80,10
+ CONTROL "Create log file",IDC_CREATELOGFILE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,107,131,72,10,0,HIDC_CREATELOGFILE
+ CONTROL "Illegal mem accesses",IDC_ILLEGAL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,189,131,80,10
GROUPBOX "State files:",IDC_STATIC,98,146,195,69
PUSHBUTTON "Load state...",IDC_DOLOADSTATE,105,162,49,14
PUSHBUTTON "Save state...",IDC_DOSAVESTATE,106,188,49,14
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,1,0,0
- PRODUCTVERSION 1,1,0,0
+ FILEVERSION 1,1,1,0
+ PRODUCTVERSION 1,1,1,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
BLOCK "040904b0"
BEGIN
VALUE "FileDescription", "WinUAE"
- VALUE "FileVersion", "1.1.0"
+ VALUE "FileVersion", "1.1.1"
VALUE "InternalName", "WinUAE"
VALUE "LegalCopyright", "© 1996-2005 under the GNU Public License (GPL)"
VALUE "OriginalFilename", "WinUAE.exe"
VALUE "ProductName", "WinUAE"
- VALUE "ProductVersion", "1.1.0"
+ VALUE "ProductVersion", "1.1.1"
END
END
BLOCK "VarFileInfo"
return 1;
}
-static void WIN32_HandleRegistryStuff( void )
+static void WIN32_HandleRegistryStuff(void)
{
RGBFTYPE colortype = RGBFB_NONE;
DWORD dwType = REG_DWORD;
- DWORD dwDisplayInfoSize = sizeof( colortype );
+ DWORD dwDisplayInfoSize = sizeof(colortype);
DWORD size;
DWORD disposition;
char path[MAX_DPATH] = "";
KEY_WRITE | KEY_READ, NULL, &hWinUAEKeyLocal, &disposition) == ERROR_SUCCESS))
{
/* Set our (default) sub-key to BE the "WinUAE" command for editing a configuration */
- sprintf(path, "%sWinUAE.exe -f \"%%1\" -s use_gui=yes", start_path_data);
+ sprintf(path, "%sWinUAE.exe -f \"%%1\" -s use_gui=yes", start_path_exe);
RegSetValueEx(hWinUAEKeyLocal, "", 0, REG_SZ, (CONST BYTE *)path, strlen(path) + 1);
RegCloseKey(hWinUAEKeyLocal);
}
KEY_WRITE | KEY_READ, NULL, &hWinUAEKeyLocal, &disposition) == ERROR_SUCCESS))
{
/* Set our (default) sub-key to BE the "WinUAE" command for launching a configuration */
- sprintf(path, "%sWinUAE.exe -f \"%%1\"", start_path_data);
+ sprintf(path, "%sWinUAE.exe -f \"%%1\"", start_path_exe);
RegSetValueEx(hWinUAEKeyLocal, "", 0, REG_SZ, (CONST BYTE *)path, strlen( path ) + 1);
RegCloseKey(hWinUAEKeyLocal);
}
if (RegQueryValueEx (hWinUAEKey, "Version", 0, &dwType, (LPBYTE)&version, &size) == ERROR_SUCCESS) {
if (checkversion (version))
RegSetValueEx (hWinUAEKey, "Version", 0, REG_SZ, (CONST BYTE *)VersionStr, strlen (VersionStr) + 1);
+ } else {
+ RegSetValueEx (hWinUAEKey, "Version", 0, REG_SZ, (CONST BYTE *)VersionStr, strlen (VersionStr) + 1);
}
size = sizeof (version);
dwType = REG_SZ;
extern int manual_palette_refresh_needed;
extern int mouseactive, focus;
extern int ignore_messages_all;
-#define WINUAEBETA 1
-#define WINUAEBETASTR " Beta 2"
+#define WINUAEBETA 0
+#define WINUAEBETASTR ""
extern char start_path_exe[MAX_DPATH];
extern char start_path_data[MAX_DPATH];
void init_colors (void)
{
- int i;
HRESULT ddrval;
if (ncols256 == 0) {
AVIOutput_RGBinfo (red_bits, green_bits, blue_bits, red_shift, green_shift, blue_shift);
#endif
}
-
- switch (gfxvidinfo.pixbytes)
- {
- case 2:
- for (i = 0; i < 4096; i++)
- xcolors[i] = xcolors[i] * 0x00010001;
- gfxvidinfo.can_double = 1;
- break;
- case 1:
- for (i = 0; i < 4096; i++)
- xcolors[i] = xcolors[i] * 0x01010101;
- gfxvidinfo.can_double = 1;
- break;
- default:
- gfxvidinfo.can_double = 0;
- break;
- }
}
#ifdef PICASSO96
int *p = 0;
switch (da_mode_selected)
{
- case 0:
+ case 3:
p = &workprefs.gfx_hue;
break;
- case 1:
+ case 4:
p = &workprefs.gfx_saturation;
break;
- case 2:
+ case 0:
p = &workprefs.gfx_luminance;
break;
- case 3:
+ case 1:
p = &workprefs.gfx_contrast;
break;
- case 4:
+ case 2:
p = &workprefs.gfx_gamma;
break;
}
if (v == *p)
return;
*p = v;
+#if 0
currprefs.gfx_hue = workprefs.gfx_hue;
currprefs.gfx_saturation = workprefs.gfx_saturation;
+ currprefs.gfx_gamma = workprefs.gfx_gamma;
+#endif
currprefs.gfx_luminance = workprefs.gfx_luminance;
currprefs.gfx_contrast = workprefs.gfx_contrast;
- currprefs.gfx_gamma = workprefs.gfx_gamma;
init_colors ();
- reset_drawing ();
- redraw_frame ();
updatedisplayarea ();
+ WIN32GFX_WindowMove ();
+ init_custom();
}
void init_da (HWND hDlg)
{
int *p;
SendDlgItemMessage(hDlg, IDC_DA_MODE, CB_RESETCONTENT, 0, 0);
- SendDlgItemMessage(hDlg, IDC_DA_MODE, CB_ADDSTRING, 0, (LPARAM)"Hue");
- SendDlgItemMessage(hDlg, IDC_DA_MODE, CB_ADDSTRING, 0, (LPARAM)"Saturation");
SendDlgItemMessage(hDlg, IDC_DA_MODE, CB_ADDSTRING, 0, (LPARAM)"Luminance");
SendDlgItemMessage(hDlg, IDC_DA_MODE, CB_ADDSTRING, 0, (LPARAM)"Contrast");
+#if 0
SendDlgItemMessage(hDlg, IDC_DA_MODE, CB_ADDSTRING, 0, (LPARAM)"Gamma");
+ SendDlgItemMessage(hDlg, IDC_DA_MODE, CB_ADDSTRING, 0, (LPARAM)"Hue");
+ SendDlgItemMessage(hDlg, IDC_DA_MODE, CB_ADDSTRING, 0, (LPARAM)"Saturation");
+#endif
if (da_mode_selected == CB_ERR)
da_mode_selected = 0;
SendDlgItemMessage (hDlg, IDC_DA_MODE, CB_SETCURSEL, da_mode_selected, 0);
SendDlgItemMessage (hDlg, IDC_FRAMERATE, TBM_SETPAGESIZE, 0, 1);
SendDlgItemMessage (hDlg, IDC_FRAMERATE, TBM_SETRANGE, TRUE, MAKELONG (MIN_REFRESH_RATE, MAX_REFRESH_RATE));
SendDlgItemMessage (hDlg, IDC_FRAMERATE2, TBM_SETPAGESIZE, 0, 1);
- SendDlgItemMessage (hDlg, IDC_FRAMERATE2, TBM_SETRANGE, TRUE, MAKELONG (5, 99));
+ SendDlgItemMessage (hDlg, IDC_FRAMERATE2, TBM_SETRANGE, TRUE, MAKELONG (1, 99));
init_displays_combo (hDlg);
init_resolution_combo (hDlg);
#if 0
SendDlgItemMessage(hDlg, f_text, WM_SETTEXT, 0, (LPARAM)workprefs.df[n]);
i = 0;
while (s = DISK_history_get (i)) {
-#if 1
char tmpname[MAX_DPATH], tmppath[MAX_DPATH], *p, *p2;
-#endif
i++;
if (strlen (s) == 0)
continue;
-#if 1
strcpy (tmppath, s);
p = tmppath + strlen(tmppath) - 1;
for (j = 0; archive_extensions[j]; j++) {
strcat (tmpname, tmppath);
strcat (tmpname, " }");
}
-#endif
if (f_text >= 0)
SendDlgItemMessage (hDlg, f_text, CB_ADDSTRING, 0, (LPARAM)tmpname);
if (fkey) {
out[0] = 0;
val = SendDlgItemMessage (hDlg, f_text, CB_GETCURSEL, 0, 0L);
if (val == CB_ERR) {
+ char *p1, *p2;
+ char *tmp;
SendDlgItemMessage (hDlg, f_text, WM_GETTEXT, (WPARAM)maxlen, (LPARAM)out);
+ tmp = xmalloc (maxlen + 1);
+ strcpy (tmp, out);
+ p1 = strstr(tmp, " { ");
+ p2 = strstr(tmp, " }");
+ if (p1 && p2 && p2 > p1) {
+ *p1 = 0;
+ memset (out, 0, maxlen);
+ memcpy (out, p1 + 3, p2 - p1 - 3);
+ strcat (out, tmp);
+ }
+ xfree (tmp);
} else {
char *p = DISK_history_get (val);
#if 0