Adding the hard disk image now shows a progress bar indicating progress so that the end user is no longer left with a non-responding dialog and no idea what's going on.
This commit is contained in:
@@ -8,15 +8,13 @@
|
|||||||
*
|
*
|
||||||
* Handling of hard disk image files.
|
* Handling of hard disk image files.
|
||||||
*
|
*
|
||||||
* Version: @(#)hdd_image.c 1.0.9 2017/12/09
|
* Version: @(#)hdd_image.c 1.0.10 2018/01/24
|
||||||
*
|
*
|
||||||
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
|
* Authors: Miran Grca, <mgrca8@gmail.com>
|
||||||
* Miran Grca, <mgrca8@gmail.com>
|
|
||||||
* Fred N. van Kempen, <decwiz@yahoo.com>
|
* Fred N. van Kempen, <decwiz@yahoo.com>
|
||||||
*
|
*
|
||||||
* Copyright 2008-2017 Sarah Walker.
|
* Copyright 2016-2018 Miran Grca.
|
||||||
* Copyright 2016-2017 Miran Grca.
|
* Copyright 2017,2018 Fred N. van Kempen.
|
||||||
* Copyright 2017 Fred N. van Kempen.
|
|
||||||
*/
|
*/
|
||||||
#define _LARGEFILE_SOURCE
|
#define _LARGEFILE_SOURCE
|
||||||
#define _LARGEFILE64_SOURCE
|
#define _LARGEFILE64_SOURCE
|
||||||
@@ -354,10 +352,12 @@ prepare_new_hard_disk:
|
|||||||
empty_sector_1mb = (char *) malloc(1048576);
|
empty_sector_1mb = (char *) malloc(1048576);
|
||||||
memset(empty_sector_1mb, 0, 1048576);
|
memset(empty_sector_1mb, 0, 1048576);
|
||||||
|
|
||||||
|
pclog("Writing image sectors: [");
|
||||||
if (s > 0)
|
if (s > 0)
|
||||||
{
|
{
|
||||||
for (i = 0; i < s; i++)
|
for (i = 0; i < s; i++)
|
||||||
{
|
{
|
||||||
|
pclog("#");
|
||||||
fwrite(empty_sector, 1, 512, hdd_images[id].file);
|
fwrite(empty_sector, 1, 512, hdd_images[id].file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -366,9 +366,11 @@ prepare_new_hard_disk:
|
|||||||
{
|
{
|
||||||
for (i = 0; i < t; i++)
|
for (i = 0; i < t; i++)
|
||||||
{
|
{
|
||||||
|
pclog("#");
|
||||||
fwrite(empty_sector_1mb, 1, 1045876, hdd_images[id].file);
|
fwrite(empty_sector_1mb, 1, 1045876, hdd_images[id].file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
pclog("]\n");
|
||||||
|
|
||||||
free(empty_sector_1mb);
|
free(empty_sector_1mb);
|
||||||
}
|
}
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
* Application resource script for Windows.
|
* Application resource script for Windows.
|
||||||
*
|
*
|
||||||
* Version: @(#)86Box.rc 1.0.24 2018/01/19
|
* Version: @(#)86Box.rc 1.0.25 2018/01/24
|
||||||
*
|
*
|
||||||
* Authors: Miran Grca, <mgrca8@gmail.com>
|
* Authors: Miran Grca, <mgrca8@gmail.com>
|
||||||
* Fred N. van Kempen, <decwiz@yahoo.com>
|
* Fred N. van Kempen, <decwiz@yahoo.com>
|
||||||
@@ -516,6 +516,9 @@ BEGIN
|
|||||||
LTEXT "LUN:",IDT_1724,168,72,15,8
|
LTEXT "LUN:",IDT_1724,168,72,15,8
|
||||||
COMBOBOX IDC_COMBO_HD_CHANNEL_IDE,134,71,77,12,CBS_DROPDOWNLIST |
|
COMBOBOX IDC_COMBO_HD_CHANNEL_IDE,134,71,77,12,CBS_DROPDOWNLIST |
|
||||||
WS_VSCROLL | WS_TABSTOP
|
WS_VSCROLL | WS_TABSTOP
|
||||||
|
LTEXT "Progress:",IDT_1752,7,7,204,9
|
||||||
|
CONTROL "IMGCreateProgress",IDC_PBAR_IMG_CREATE,"msctls_progress32",PBS_SMOOTH |
|
||||||
|
WS_BORDER,7,16,204,12
|
||||||
END
|
END
|
||||||
|
|
||||||
DLG_CFG_REMOVABLE_DEVICES DIALOG DISCARDABLE 97, 0, 267, 202
|
DLG_CFG_REMOVABLE_DEVICES DIALOG DISCARDABLE 97, 0, 267, 202
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
* Windows resource defines.
|
* Windows resource defines.
|
||||||
*
|
*
|
||||||
* Version: @(#)resource.h 1.0.17 2018/01/18
|
* Version: @(#)resource.h 1.0.18 2018/01/24
|
||||||
*
|
*
|
||||||
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
|
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
|
||||||
* Miran Grca, <mgrca8@gmail.com>
|
* Miran Grca, <mgrca8@gmail.com>
|
||||||
@@ -85,6 +85,7 @@
|
|||||||
#define IDT_1749 1749 /* File name: */
|
#define IDT_1749 1749 /* File name: */
|
||||||
#define IDT_1750 1750 /* Disk size: */
|
#define IDT_1750 1750 /* Disk size: */
|
||||||
#define IDT_1751 1751 /* RPM mode: */
|
#define IDT_1751 1751 /* RPM mode: */
|
||||||
|
#define IDT_1752 1752 /* Progress: */
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -170,6 +171,7 @@
|
|||||||
#define IDC_EDIT_HD_CYL 1143
|
#define IDC_EDIT_HD_CYL 1143
|
||||||
#define IDC_EDIT_HD_SIZE 1144
|
#define IDC_EDIT_HD_SIZE 1144
|
||||||
#define IDC_COMBO_HD_TYPE 1145
|
#define IDC_COMBO_HD_TYPE 1145
|
||||||
|
#define IDC_PBAR_IMG_CREATE 1146
|
||||||
|
|
||||||
#define IDC_REMOV_DEVICES 1150 /* removable dev config */
|
#define IDC_REMOV_DEVICES 1150 /* removable dev config */
|
||||||
#define IDC_LIST_FLOPPY_DRIVES 1151
|
#define IDC_LIST_FLOPPY_DRIVES 1151
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
* Windows 86Box Settings dialog handler.
|
* Windows 86Box Settings dialog handler.
|
||||||
*
|
*
|
||||||
* Version: @(#)win_settings.c 1.0.32 2018/01/24
|
* Version: @(#)win_settings.c 1.0.33 2018/01/24
|
||||||
*
|
*
|
||||||
* Author: Miran Grca, <mgrca8@gmail.com>
|
* Author: Miran Grca, <mgrca8@gmail.com>
|
||||||
*
|
*
|
||||||
@@ -2807,6 +2807,15 @@ win_settings_hard_disks_add_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM
|
|||||||
}
|
}
|
||||||
h = GetDlgItem(hdlg, IDC_EDIT_HD_FILE_NAME);
|
h = GetDlgItem(hdlg, IDC_EDIT_HD_FILE_NAME);
|
||||||
EnableWindow(h, FALSE);
|
EnableWindow(h, FALSE);
|
||||||
|
|
||||||
|
h = GetDlgItem(hdlg, IDT_1752);
|
||||||
|
EnableWindow(h, FALSE);
|
||||||
|
ShowWindow(h, SW_HIDE);
|
||||||
|
|
||||||
|
h = GetDlgItem(hdlg, IDC_PBAR_IMG_CREATE);
|
||||||
|
EnableWindow(h, FALSE);
|
||||||
|
ShowWindow(h, SW_HIDE);
|
||||||
|
|
||||||
no_update = 0;
|
no_update = 0;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
@@ -2939,11 +2948,36 @@ win_settings_hard_disks_add_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM
|
|||||||
size -= r;
|
size -= r;
|
||||||
r >>= 11;
|
r >>= 11;
|
||||||
|
|
||||||
|
if (size || r) {
|
||||||
|
h = GetDlgItem(hdlg, IDT_1731);
|
||||||
|
EnableWindow(h, FALSE);
|
||||||
|
ShowWindow(h, SW_HIDE);
|
||||||
|
|
||||||
|
h = GetDlgItem(hdlg, IDC_EDIT_HD_FILE_NAME);
|
||||||
|
EnableWindow(h, FALSE);
|
||||||
|
ShowWindow(h, SW_HIDE);
|
||||||
|
|
||||||
|
h = GetDlgItem(hdlg, IDC_CFILE);
|
||||||
|
EnableWindow(h, FALSE);
|
||||||
|
ShowWindow(h, SW_HIDE);
|
||||||
|
|
||||||
|
h = GetDlgItem(hdlg, IDC_PBAR_IMG_CREATE);
|
||||||
|
SendMessage(h, PBM_SETRANGE32, (WPARAM) 0, (LPARAM) (size + r - 1));
|
||||||
|
SendMessage(h, PBM_SETPOS, (WPARAM) 0, (LPARAM) 0);
|
||||||
|
EnableWindow(h, TRUE);
|
||||||
|
ShowWindow(h, SW_SHOW);
|
||||||
|
|
||||||
|
h = GetDlgItem(hdlg, IDT_1752);
|
||||||
|
EnableWindow(h, TRUE);
|
||||||
|
ShowWindow(h, SW_SHOW);
|
||||||
|
}
|
||||||
|
|
||||||
if (size)
|
if (size)
|
||||||
{
|
{
|
||||||
for (i = 0; i < size; i++)
|
for (i = 0; i < size; i++)
|
||||||
{
|
{
|
||||||
fwrite(buf, 1, 512, f);
|
fwrite(buf, 1, 512, f);
|
||||||
|
SendMessage(h, PBM_SETPOS, (WPARAM) i, (LPARAM) 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2954,6 +2988,7 @@ win_settings_hard_disks_add_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM
|
|||||||
for (i = 0; i < r; i++)
|
for (i = 0; i < r; i++)
|
||||||
{
|
{
|
||||||
fwrite(big_buf, 1, 1048576, f);
|
fwrite(big_buf, 1, 1048576, f);
|
||||||
|
SendMessage(h, PBM_SETPOS, (WPARAM) (size + i), (LPARAM) 0);
|
||||||
}
|
}
|
||||||
free(big_buf);
|
free(big_buf);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user