mirror of
https://github.com/paleotronic/microm8-gui.git
synced 2025-02-18 07:31:07 +00:00
auto restart process if needed
This commit is contained in:
parent
624484eefb
commit
68b30613f5
@ -1,7 +1,7 @@
|
|||||||
object GUIForm: TGUIForm
|
object GUIForm: TGUIForm
|
||||||
Left = 371
|
Left = 275
|
||||||
Height = 683
|
Height = 683
|
||||||
Top = 112
|
Top = 109
|
||||||
Width = 1078
|
Width = 1078
|
||||||
AlphaBlendValue = 128
|
AlphaBlendValue = 128
|
||||||
Caption = 'microM8 GUI'
|
Caption = 'microM8 GUI'
|
||||||
@ -10549,6 +10549,7 @@ object GUIForm: TGUIForm
|
|||||||
WindowTop = 0
|
WindowTop = 0
|
||||||
WindowWidth = 0
|
WindowWidth = 0
|
||||||
FillAttribute = 0
|
FillAttribute = 0
|
||||||
|
OnTerminate = MicroM8ProcessTerminate
|
||||||
left = 240
|
left = 240
|
||||||
top = 160
|
top = 160
|
||||||
end
|
end
|
||||||
|
@ -7,7 +7,7 @@ interface
|
|||||||
uses
|
uses
|
||||||
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, Menus, ComCtrls,
|
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, Menus, ComCtrls,
|
||||||
ExtCtrls, StdCtrls, fphttpclient, LCLType, Buttons, AsyncProcess, DateUtils,
|
ExtCtrls, StdCtrls, fphttpclient, LCLType, Buttons, AsyncProcess, DateUtils,
|
||||||
Clipbrd,
|
Clipbrd, lclintf,
|
||||||
{$IFDEF WINDOWS}
|
{$IFDEF WINDOWS}
|
||||||
Windows,
|
Windows,
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
@ -369,6 +369,7 @@ type
|
|||||||
procedure MenuItem14Click(Sender: TObject);
|
procedure MenuItem14Click(Sender: TObject);
|
||||||
procedure MenuItem15Click(Sender: TObject);
|
procedure MenuItem15Click(Sender: TObject);
|
||||||
procedure MenuItem16Click(Sender: TObject);
|
procedure MenuItem16Click(Sender: TObject);
|
||||||
|
procedure MicroM8ProcessTerminate(Sender: TObject);
|
||||||
procedure miD1InsBlankClick(Sender: TObject);
|
procedure miD1InsBlankClick(Sender: TObject);
|
||||||
procedure miD2InsBlankClick(Sender: TObject);
|
procedure miD2InsBlankClick(Sender: TObject);
|
||||||
procedure MenuItem1Click(Sender: TObject);
|
procedure MenuItem1Click(Sender: TObject);
|
||||||
@ -568,6 +569,7 @@ type
|
|||||||
procedure WaitReposTimer(Sender: TObject);
|
procedure WaitReposTimer(Sender: TObject);
|
||||||
procedure SendOSDMessage(msg: string);
|
procedure SendOSDMessage(msg: string);
|
||||||
procedure LaunchPAK(disk: string);
|
procedure LaunchPAK(disk: string);
|
||||||
|
procedure CheckMicroM8RunState;
|
||||||
private
|
private
|
||||||
lx, ly, lw, lh: integer;
|
lx, ly, lw, lh: integer;
|
||||||
lastShowTime: TDateTime;
|
lastShowTime: TDateTime;
|
||||||
@ -582,6 +584,7 @@ type
|
|||||||
VolPosition, WarpPosition: integer;
|
VolPosition, WarpPosition: integer;
|
||||||
VolDrag, WarpDrag: boolean;
|
VolDrag, WarpDrag: boolean;
|
||||||
Caps: boolean;
|
Caps: boolean;
|
||||||
|
NeedsRestart, Quitting: boolean;
|
||||||
public
|
public
|
||||||
procedure AppActivate(Sender: TObject);
|
procedure AppActivate(Sender: TObject);
|
||||||
procedure AppDeactivate(Sender: TObject);
|
procedure AppDeactivate(Sender: TObject);
|
||||||
@ -2373,7 +2376,9 @@ begin
|
|||||||
result := self.httpc.Get(url)
|
result := self.httpc.Get(url)
|
||||||
except
|
except
|
||||||
on e: Exception do begin
|
on e: Exception do begin
|
||||||
// nothing much
|
// restart backend if not running
|
||||||
|
NeedsRestart:=true;
|
||||||
|
CheckMicroM8RunState;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -2386,6 +2391,9 @@ begin
|
|||||||
except
|
except
|
||||||
on e: Exception do begin
|
on e: Exception do begin
|
||||||
// nothing much
|
// nothing much
|
||||||
|
// restart backend if not running
|
||||||
|
NeedsRestart:=true;
|
||||||
|
CheckMicroM8RunState;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -2409,6 +2417,9 @@ begin
|
|||||||
except
|
except
|
||||||
on e: Exception do begin
|
on e: Exception do begin
|
||||||
// nothing much
|
// nothing much
|
||||||
|
// restart backend if not running
|
||||||
|
NeedsRestart:=true;
|
||||||
|
CheckMicroM8RunState;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -2623,6 +2634,7 @@ end;
|
|||||||
|
|
||||||
procedure TGUIForm.FormCloseQuery(Sender: TObject; var CanClose: boolean);
|
procedure TGUIForm.FormCloseQuery(Sender: TObject; var CanClose: boolean);
|
||||||
begin
|
begin
|
||||||
|
Quitting := true;
|
||||||
SimpleGet( baseUrl+'/api/control/quit' );
|
SimpleGet( baseUrl+'/api/control/quit' );
|
||||||
CanClose := true;
|
CanClose := true;
|
||||||
end;
|
end;
|
||||||
@ -3203,6 +3215,11 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TGUIForm.MicroM8ProcessTerminate(Sender: TObject);
|
||||||
|
begin
|
||||||
|
//lblTerm.Caption := 'core has terminated';
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TGUIForm.miD1InsBlankClick(Sender: TObject);
|
procedure TGUIForm.miD1InsBlankClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
SimpleGet(baseUrl + '/api/control/hardware/disk/blank/0');
|
SimpleGet(baseUrl + '/api/control/hardware/disk/blank/0');
|
||||||
@ -3221,9 +3238,25 @@ end;
|
|||||||
|
|
||||||
procedure TGUIForm.MenuItem2Click(Sender: TObject);
|
procedure TGUIForm.MenuItem2Click(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
|
Quitting := true;
|
||||||
SimpleGet( baseUrl+'/api/control/quit' );
|
SimpleGet( baseUrl+'/api/control/quit' );
|
||||||
Application.Terminate();
|
Application.Terminate();
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TGUIForm.CheckMicroM8RunState;
|
||||||
|
begin
|
||||||
|
if Quitting then
|
||||||
|
exit;
|
||||||
|
if not NeedsRestart then
|
||||||
|
exit;
|
||||||
|
if MicroM8Process.Active then
|
||||||
|
exit;
|
||||||
|
{ okay not running and we want to start it }
|
||||||
|
MicroM8Process.Active := true;
|
||||||
|
Sleep(50);
|
||||||
|
lx := -1;
|
||||||
|
ReposWindow;
|
||||||
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
5
main.lfm
5
main.lfm
@ -1,7 +1,7 @@
|
|||||||
object GUIForm: TGUIForm
|
object GUIForm: TGUIForm
|
||||||
Left = 371
|
Left = 275
|
||||||
Height = 683
|
Height = 683
|
||||||
Top = 112
|
Top = 109
|
||||||
Width = 1078
|
Width = 1078
|
||||||
AlphaBlendValue = 128
|
AlphaBlendValue = 128
|
||||||
Caption = 'microM8 GUI'
|
Caption = 'microM8 GUI'
|
||||||
@ -10549,6 +10549,7 @@ object GUIForm: TGUIForm
|
|||||||
WindowTop = 0
|
WindowTop = 0
|
||||||
WindowWidth = 0
|
WindowWidth = 0
|
||||||
FillAttribute = 0
|
FillAttribute = 0
|
||||||
|
OnTerminate = MicroM8ProcessTerminate
|
||||||
left = 240
|
left = 240
|
||||||
top = 160
|
top = 160
|
||||||
end
|
end
|
||||||
|
35
main.pas
35
main.pas
@ -369,6 +369,7 @@ type
|
|||||||
procedure MenuItem14Click(Sender: TObject);
|
procedure MenuItem14Click(Sender: TObject);
|
||||||
procedure MenuItem15Click(Sender: TObject);
|
procedure MenuItem15Click(Sender: TObject);
|
||||||
procedure MenuItem16Click(Sender: TObject);
|
procedure MenuItem16Click(Sender: TObject);
|
||||||
|
procedure MicroM8ProcessTerminate(Sender: TObject);
|
||||||
procedure miD1InsBlankClick(Sender: TObject);
|
procedure miD1InsBlankClick(Sender: TObject);
|
||||||
procedure miD2InsBlankClick(Sender: TObject);
|
procedure miD2InsBlankClick(Sender: TObject);
|
||||||
procedure MenuItem1Click(Sender: TObject);
|
procedure MenuItem1Click(Sender: TObject);
|
||||||
@ -568,6 +569,7 @@ type
|
|||||||
procedure WaitReposTimer(Sender: TObject);
|
procedure WaitReposTimer(Sender: TObject);
|
||||||
procedure SendOSDMessage(msg: string);
|
procedure SendOSDMessage(msg: string);
|
||||||
procedure LaunchPAK(disk: string);
|
procedure LaunchPAK(disk: string);
|
||||||
|
procedure CheckMicroM8RunState;
|
||||||
private
|
private
|
||||||
lx, ly, lw, lh: integer;
|
lx, ly, lw, lh: integer;
|
||||||
lastShowTime: TDateTime;
|
lastShowTime: TDateTime;
|
||||||
@ -582,6 +584,7 @@ type
|
|||||||
VolPosition, WarpPosition: integer;
|
VolPosition, WarpPosition: integer;
|
||||||
VolDrag, WarpDrag: boolean;
|
VolDrag, WarpDrag: boolean;
|
||||||
Caps: boolean;
|
Caps: boolean;
|
||||||
|
NeedsRestart, Quitting: boolean;
|
||||||
public
|
public
|
||||||
procedure AppActivate(Sender: TObject);
|
procedure AppActivate(Sender: TObject);
|
||||||
procedure AppDeactivate(Sender: TObject);
|
procedure AppDeactivate(Sender: TObject);
|
||||||
@ -2373,7 +2376,9 @@ begin
|
|||||||
result := self.httpc.Get(url)
|
result := self.httpc.Get(url)
|
||||||
except
|
except
|
||||||
on e: Exception do begin
|
on e: Exception do begin
|
||||||
// nothing much
|
// restart backend if not running
|
||||||
|
NeedsRestart:=true;
|
||||||
|
CheckMicroM8RunState;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -2386,6 +2391,9 @@ begin
|
|||||||
except
|
except
|
||||||
on e: Exception do begin
|
on e: Exception do begin
|
||||||
// nothing much
|
// nothing much
|
||||||
|
// restart backend if not running
|
||||||
|
NeedsRestart:=true;
|
||||||
|
CheckMicroM8RunState;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -2409,6 +2417,9 @@ begin
|
|||||||
except
|
except
|
||||||
on e: Exception do begin
|
on e: Exception do begin
|
||||||
// nothing much
|
// nothing much
|
||||||
|
// restart backend if not running
|
||||||
|
NeedsRestart:=true;
|
||||||
|
CheckMicroM8RunState;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -2623,6 +2634,7 @@ end;
|
|||||||
|
|
||||||
procedure TGUIForm.FormCloseQuery(Sender: TObject; var CanClose: boolean);
|
procedure TGUIForm.FormCloseQuery(Sender: TObject; var CanClose: boolean);
|
||||||
begin
|
begin
|
||||||
|
Quitting := true;
|
||||||
SimpleGet( baseUrl+'/api/control/quit' );
|
SimpleGet( baseUrl+'/api/control/quit' );
|
||||||
CanClose := true;
|
CanClose := true;
|
||||||
end;
|
end;
|
||||||
@ -3203,6 +3215,11 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TGUIForm.MicroM8ProcessTerminate(Sender: TObject);
|
||||||
|
begin
|
||||||
|
//lblTerm.Caption := 'core has terminated';
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TGUIForm.miD1InsBlankClick(Sender: TObject);
|
procedure TGUIForm.miD1InsBlankClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
SimpleGet(baseUrl + '/api/control/hardware/disk/blank/0');
|
SimpleGet(baseUrl + '/api/control/hardware/disk/blank/0');
|
||||||
@ -3221,9 +3238,25 @@ end;
|
|||||||
|
|
||||||
procedure TGUIForm.MenuItem2Click(Sender: TObject);
|
procedure TGUIForm.MenuItem2Click(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
|
Quitting := true;
|
||||||
SimpleGet( baseUrl+'/api/control/quit' );
|
SimpleGet( baseUrl+'/api/control/quit' );
|
||||||
Application.Terminate();
|
Application.Terminate();
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TGUIForm.CheckMicroM8RunState;
|
||||||
|
begin
|
||||||
|
if Quitting then
|
||||||
|
exit;
|
||||||
|
if not NeedsRestart then
|
||||||
|
exit;
|
||||||
|
if MicroM8Process.Active then
|
||||||
|
exit;
|
||||||
|
{ okay not running and we want to start it }
|
||||||
|
MicroM8Process.Active := true;
|
||||||
|
Sleep(1000);
|
||||||
|
lx := -1;
|
||||||
|
ReposWindow;
|
||||||
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user