fix slider focus issue

This commit is contained in:
April Ayres-Griffiths 2019-04-15 20:00:35 +10:00
parent ad3cc31139
commit 6bbbe2aca6
6 changed files with 481 additions and 228 deletions

View File

@ -241,6 +241,9 @@ object GUIForm: TGUIForm
TabStop = False TabStop = False
TickMarks = tmBoth TickMarks = tmBoth
TickStyle = tsManual TickStyle = tsManual
OnEnter = tbMasterVolumeEnter
OnMouseDown = tbMasterVolumeMouseDown
OnMouseUp = tbMasterVolumeMouseUp
OnKeyDown = FormKeyDown OnKeyDown = FormKeyDown
OnKeyUp = FormKeyUp OnKeyUp = FormKeyUp
TabOrder = 0 TabOrder = 0
@ -283,6 +286,8 @@ object GUIForm: TGUIForm
TabStop = False TabStop = False
TickMarks = tmBoth TickMarks = tmBoth
TickStyle = tsManual TickStyle = tsManual
OnMouseDown = TrackBar2MouseDown
OnMouseUp = TrackBar2MouseUp
OnKeyDown = FormKeyDown OnKeyDown = FormKeyDown
OnKeyUp = FormKeyUp OnKeyUp = FormKeyUp
TabOrder = 1 TabOrder = 1

View File

@ -497,6 +497,13 @@ type
procedure tbCapsModeClick(Sender: TObject); procedure tbCapsModeClick(Sender: TObject);
procedure tbFullscreenClick(Sender: TObject); procedure tbFullscreenClick(Sender: TObject);
procedure tbJoystickAxisSwitchClick(Sender: TObject); procedure tbJoystickAxisSwitchClick(Sender: TObject);
procedure tbMasterVolumeEnter(Sender: TObject);
procedure tbMasterVolumeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure tbMasterVolumeMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure tbMasterVolumeMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure tbRMClick(Sender: TObject); procedure tbRMClick(Sender: TObject);
procedure tbRMColorClick(Sender: TObject); procedure tbRMColorClick(Sender: TObject);
procedure tbScanlinesClick(Sender: TObject); procedure tbScanlinesClick(Sender: TObject);
@ -509,6 +516,10 @@ type
procedure ToolTimerTimer(Sender: TObject); procedure ToolTimerTimer(Sender: TObject);
procedure tbMasterVolumeChange(Sender: TObject); procedure tbMasterVolumeChange(Sender: TObject);
procedure TrackBar2Change(Sender: TObject); procedure TrackBar2Change(Sender: TObject);
procedure TrackBar2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure TrackBar2MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure txtAddressKeyPress(Sender: TObject; var Key: char); procedure txtAddressKeyPress(Sender: TObject; var Key: char);
procedure txtValueKeyPress(Sender: TObject; var Key: char); procedure txtValueKeyPress(Sender: TObject; var Key: char);
procedure UpdateRenderMode; procedure UpdateRenderMode;
@ -564,6 +575,8 @@ type
isFS: boolean; isFS: boolean;
disableFocusStealing: boolean; disableFocusStealing: boolean;
guiActive: boolean; guiActive: boolean;
VolPosition, WarpPosition: integer;
VolDrag, WarpDrag: boolean;
public public
procedure AppActivate(Sender: TObject); procedure AppActivate(Sender: TObject);
procedure AppDeactivate(Sender: TObject); procedure AppDeactivate(Sender: TObject);
@ -1680,7 +1693,7 @@ end;
procedure TGUIForm.miSPEjectClick(Sender: TObject); procedure TGUIForm.miSPEjectClick(Sender: TObject);
begin begin
SimpleGet(baseUrl + '/api/control/hardware/disk/eject/2'); StatusBar1.SimpleText := SimpleGet(baseUrl + '/api/control/hardware/disk/eject/2');
end; end;
procedure TGUIForm.miSPFileClick(Sender: TObject); procedure TGUIForm.miSPFileClick(Sender: TObject);
@ -1881,6 +1894,29 @@ begin
UpdateJoystickAxis; UpdateJoystickAxis;
end; end;
procedure TGUIForm.tbMasterVolumeEnter(Sender: TObject);
begin
//embedPanel.SetFocus;
end;
procedure TGUIForm.tbMasterVolumeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
Key := VK_F1;
end;
procedure TGUIForm.tbMasterVolumeMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
VolDrag := true;
end;
procedure TGUIForm.tbMasterVolumeMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
VolDrag := false;
end;
procedure TGUIForm.UpdateJoystickAxis; procedure TGUIForm.UpdateJoystickAxis;
begin begin
case GetConfig( 'input/init.joystick.axis0' ) of case GetConfig( 'input/init.joystick.axis0' ) of
@ -2060,6 +2096,13 @@ end;
procedure TGUIForm.tbMasterVolumeChange(Sender: TObject); procedure TGUIForm.tbMasterVolumeChange(Sender: TObject);
begin begin
{$IFDEF LINUX}
if not VolDrag then
begin
tbMasterVolume.Position := VolPosition;
exit;
end;
{$ENDIF}
case TTrackBar(sender).Position of case TTrackBar(sender).Position of
0: UpdateConfig( 'audio/init.master.volume', '0.0', false ); 0: UpdateConfig( 'audio/init.master.volume', '0.0', false );
1: UpdateConfig( 'audio/init.master.volume', '0.1', false ); 1: UpdateConfig( 'audio/init.master.volume', '0.1', false );
@ -2105,6 +2148,14 @@ end;
procedure TGUIForm.TrackBar2Change(Sender: TObject); procedure TGUIForm.TrackBar2Change(Sender: TObject);
begin begin
{$IFDEF LINUX}
if not WarpDrag then
begin
TrackBar2.Position := WarpPosition;
exit;
end;
{$ENDIF}
case TTrackBar(sender).Position of case TTrackBar(sender).Position of
0: UpdateConfig( 'hardware/current.cpu.warp', '0.25', false); 0: UpdateConfig( 'hardware/current.cpu.warp', '0.25', false);
1: UpdateConfig( 'hardware/current.cpu.warp', '0.50', false); 1: UpdateConfig( 'hardware/current.cpu.warp', '0.50', false);
@ -2114,6 +2165,18 @@ begin
end; end;
end; end;
procedure TGUIForm.TrackBar2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
WarpDrag := true;
end;
procedure TGUIForm.TrackBar2MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
WarpDrag := false;
end;
procedure TGUIForm.txtAddressKeyPress(Sender: TObject; var Key: char); procedure TGUIForm.txtAddressKeyPress(Sender: TObject; var Key: char);
begin begin
if Key = #13 then if Key = #13 then
@ -2375,6 +2438,7 @@ var
json, S, pval: string; json, S, pval: string;
Respo: TStringStream; Respo: TStringStream;
f: TReplaceFlags; f: TReplaceFlags;
d: double;
begin begin
pval := 'false'; pval := 'false';
if persist then if persist then
@ -2386,6 +2450,24 @@ begin
Respo := TStringStream.Create(''); Respo := TStringStream.Create('');
SimpleFormPost(baseUrl + '/api/control/settings/update',json,Respo); SimpleFormPost(baseUrl + '/api/control/settings/update',json,Respo);
S := Respo.DataString; S := Respo.DataString;
if path = 'audio/init.master.volume' then
begin
d := StrToFloat( value );
VolPosition := Round(10 * d);
end;
if path = 'hardware/current.cpu.warp' then
begin
case value of
'0.25': TrackBar2.Position := 0;
'0.50': TrackBar2.Position := 1;
'1.00': TrackBar2.Position := 2;
'2.00': TrackBar2.Position := 3;
'4.00': TrackBar2.Position := 4;
end;
end;
//self.StatusBar1.SimpleText:=json; //self.StatusBar1.SimpleText:=json;
Respo.Destroy; Respo.Destroy;
end; end;
@ -2395,6 +2477,7 @@ var
json, S, pval: string; json, S, pval: string;
Respo: TStringStream; Respo: TStringStream;
f: TReplaceFlags; f: TReplaceFlags;
d: double;
begin begin
json := '{"path":"' + path + json := '{"path":"' + path +
'"}'; '"}';
@ -2402,6 +2485,44 @@ begin
SimpleFormPost(baseUrl + '/api/control/settings/get',json,Respo); SimpleFormPost(baseUrl + '/api/control/settings/get',json,Respo);
Result := Respo.DataString; Result := Respo.DataString;
//self.StatusBar1.SimpleText:=json; //self.StatusBar1.SimpleText:=json;
if path = 'audio/init.master.volume' then
begin
try
begin
d := StrToFloat( Result );
VolPosition := Round(10 * d)
end;
except
on e: Exception do
begin
end;
end;
end;
if path = 'hardware/current.cpu.warp' then
begin
try
begin
d := StrToFloat(Result);
case Round(d * 100) of
25: WarpPosition := 0;
50: WarpPosition := 1;
100: WarpPosition := 2;
200: WarpPosition := 3;
400: WarpPosition := 4;
end;
end;
except
on e: Exception do
begin
end;
end;
end;
Respo.Destroy; Respo.Destroy;
end; end;

View File

@ -21,8 +21,8 @@
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/> <IsVisibleTab Value="True"/>
<TopLine Value="2537"/> <TopLine Value="2147"/>
<CursorPos X="3" Y="2539"/> <CursorPos X="24" Y="2169"/>
<UsageCount Value="323"/> <UsageCount Value="323"/>
<Loaded Value="True"/> <Loaded Value="True"/>
<LoadedDesigner Value="True"/> <LoadedDesigner Value="True"/>
@ -61,129 +61,129 @@
<EditorIndex Value="-1"/> <EditorIndex Value="-1"/>
<TopLine Value="40"/> <TopLine Value="40"/>
<CursorPos X="17" Y="44"/> <CursorPos X="17" Y="44"/>
<UsageCount Value="23"/> <UsageCount Value="22"/>
</Unit5> </Unit5>
</Units> </Units>
<JumpHistory Count="30" HistoryIndex="29"> <JumpHistory Count="30" HistoryIndex="29">
<Position1> <Position1>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="1324" Column="31" TopLine="1307"/> <Caret Line="714" Column="6" TopLine="777"/>
</Position1> </Position1>
<Position2> <Position2>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="1685" Column="63" TopLine="1663"/> <Caret Line="715" Column="6" TopLine="715"/>
</Position2> </Position2>
<Position3> <Position3>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="2109" Column="33" TopLine="2099"/> <Caret Line="717" Column="6" TopLine="717"/>
</Position3> </Position3>
<Position4> <Position4>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="2116" Column="33" TopLine="2106"/> <Caret Line="1353" Column="39" TopLine="1329"/>
</Position4> </Position4>
<Position5> <Position5>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="638" Column="15" TopLine="634"/> <Caret Line="1354" Column="39" TopLine="1330"/>
</Position5> </Position5>
<Position6> <Position6>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="1206" TopLine="1203"/> <Caret Line="1361" Column="39" TopLine="1337"/>
</Position6> </Position6>
<Position7> <Position7>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="2427" Column="3" TopLine="2424"/> <Caret Line="919" Column="39" TopLine="902"/>
</Position7> </Position7>
<Position8> <Position8>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="2808" Column="26" TopLine="2798"/> <Caret Line="906" Column="71" TopLine="887"/>
</Position8> </Position8>
<Position9> <Position9>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="535" Column="15" TopLine="530"/> <Caret Line="751" Column="53" TopLine="736"/>
</Position9> </Position9>
<Position10> <Position10>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="2813" Column="13" TopLine="2805"/> <Caret Line="980" Column="56" TopLine="963"/>
</Position10> </Position10>
<Position11> <Position11>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="757" Column="53" TopLine="747"/> <Caret Line="2553" Column="38" TopLine="2537"/>
</Position11> </Position11>
<Position12> <Position12>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="758" Column="53" TopLine="748"/> <Caret Line="2554" Column="38" TopLine="2538"/>
</Position12> </Position12>
<Position13> <Position13>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="759" Column="53" TopLine="749"/> <Caret Line="2561" Column="38" TopLine="2545"/>
</Position13> </Position13>
<Position14> <Position14>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="760" Column="53" TopLine="750"/> <Caret Line="1332" Column="3" TopLine="1348"/>
</Position14> </Position14>
<Position15> <Position15>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="762" Column="53" TopLine="752"/> <Caret Line="1316" TopLine="1310"/>
</Position15> </Position15>
<Position16> <Position16>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="862" Column="52" TopLine="859"/> <Caret Line="1325" Column="77" TopLine="1310"/>
</Position16> </Position16>
<Position17> <Position17>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="864" Column="82" TopLine="860"/> <Caret Line="552" Column="24" TopLine="543"/>
</Position17> </Position17>
<Position18> <Position18>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="875" TopLine="861"/> <Caret Line="1338" Column="29" TopLine="1317"/>
</Position18> </Position18>
<Position19> <Position19>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="871" Column="60" TopLine="861"/> <Caret Line="1335" Column="46" TopLine="1317"/>
</Position19> </Position19>
<Position20> <Position20>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="883" Column="39" TopLine="859"/> <Caret Line="2231" Column="25" TopLine="2215"/>
</Position20> </Position20>
<Position21> <Position21>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="714" Column="6" TopLine="777"/> <Caret Line="1338" Column="10" TopLine="1328"/>
</Position21> </Position21>
<Position22> <Position22>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="715" Column="6" TopLine="715"/> <Caret Line="552" Column="24" TopLine="534"/>
</Position22> </Position22>
<Position23> <Position23>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="717" Column="6" TopLine="717"/> <Caret Line="1338" Column="15" TopLine="1307"/>
</Position23> </Position23>
<Position24> <Position24>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="1353" Column="39" TopLine="1329"/> <Caret Line="2229" Column="29" TopLine="2216"/>
</Position24> </Position24>
<Position25> <Position25>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="1354" Column="39" TopLine="1330"/> <Caret Line="1690" Column="13" TopLine="1683"/>
</Position25> </Position25>
<Position26> <Position26>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="1361" Column="39" TopLine="1337"/> <Caret Line="781" Column="24" TopLine="764"/>
</Position26> </Position26>
<Position27> <Position27>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="919" Column="39" TopLine="902"/> <Caret Line="2229" Column="29" TopLine="2222"/>
</Position27> </Position27>
<Position28> <Position28>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="906" Column="71" TopLine="887"/> <Caret Line="552" Column="24" TopLine="534"/>
</Position28> </Position28>
<Position29> <Position29>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="751" Column="53" TopLine="736"/> <Caret Line="1334" Column="39" TopLine="1313"/>
</Position29> </Position29>
<Position30> <Position30>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="980" Column="56" TopLine="963"/> <Caret Line="2171" Column="26" TopLine="2153"/>
</Position30> </Position30>
</JumpHistory> </JumpHistory>
<RunParams> <RunParams>

View File

@ -241,6 +241,9 @@ object GUIForm: TGUIForm
TabStop = False TabStop = False
TickMarks = tmBoth TickMarks = tmBoth
TickStyle = tsManual TickStyle = tsManual
OnEnter = tbMasterVolumeEnter
OnMouseDown = tbMasterVolumeMouseDown
OnMouseUp = tbMasterVolumeMouseUp
OnKeyDown = FormKeyDown OnKeyDown = FormKeyDown
OnKeyUp = FormKeyUp OnKeyUp = FormKeyUp
TabOrder = 0 TabOrder = 0
@ -283,6 +286,8 @@ object GUIForm: TGUIForm
TabStop = False TabStop = False
TickMarks = tmBoth TickMarks = tmBoth
TickStyle = tsManual TickStyle = tsManual
OnMouseDown = TrackBar2MouseDown
OnMouseUp = TrackBar2MouseUp
OnKeyDown = FormKeyDown OnKeyDown = FormKeyDown
OnKeyUp = FormKeyUp OnKeyUp = FormKeyUp
TabOrder = 1 TabOrder = 1

122
main.pas
View File

@ -497,6 +497,13 @@ type
procedure tbCapsModeClick(Sender: TObject); procedure tbCapsModeClick(Sender: TObject);
procedure tbFullscreenClick(Sender: TObject); procedure tbFullscreenClick(Sender: TObject);
procedure tbJoystickAxisSwitchClick(Sender: TObject); procedure tbJoystickAxisSwitchClick(Sender: TObject);
procedure tbMasterVolumeEnter(Sender: TObject);
procedure tbMasterVolumeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure tbMasterVolumeMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure tbMasterVolumeMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure tbRMClick(Sender: TObject); procedure tbRMClick(Sender: TObject);
procedure tbRMColorClick(Sender: TObject); procedure tbRMColorClick(Sender: TObject);
procedure tbScanlinesClick(Sender: TObject); procedure tbScanlinesClick(Sender: TObject);
@ -509,6 +516,10 @@ type
procedure ToolTimerTimer(Sender: TObject); procedure ToolTimerTimer(Sender: TObject);
procedure tbMasterVolumeChange(Sender: TObject); procedure tbMasterVolumeChange(Sender: TObject);
procedure TrackBar2Change(Sender: TObject); procedure TrackBar2Change(Sender: TObject);
procedure TrackBar2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure TrackBar2MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure txtAddressKeyPress(Sender: TObject; var Key: char); procedure txtAddressKeyPress(Sender: TObject; var Key: char);
procedure txtValueKeyPress(Sender: TObject; var Key: char); procedure txtValueKeyPress(Sender: TObject; var Key: char);
procedure UpdateRenderMode; procedure UpdateRenderMode;
@ -564,6 +575,8 @@ type
isFS: boolean; isFS: boolean;
disableFocusStealing: boolean; disableFocusStealing: boolean;
guiActive: boolean; guiActive: boolean;
VolPosition, WarpPosition: integer;
VolDrag, WarpDrag: boolean;
public public
procedure AppActivate(Sender: TObject); procedure AppActivate(Sender: TObject);
procedure AppDeactivate(Sender: TObject); procedure AppDeactivate(Sender: TObject);
@ -1881,6 +1894,29 @@ begin
UpdateJoystickAxis; UpdateJoystickAxis;
end; end;
procedure TGUIForm.tbMasterVolumeEnter(Sender: TObject);
begin
//embedPanel.SetFocus;
end;
procedure TGUIForm.tbMasterVolumeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
Key := VK_F1;
end;
procedure TGUIForm.tbMasterVolumeMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
VolDrag := true;
end;
procedure TGUIForm.tbMasterVolumeMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
VolDrag := false;
end;
procedure TGUIForm.UpdateJoystickAxis; procedure TGUIForm.UpdateJoystickAxis;
begin begin
case GetConfig( 'input/init.joystick.axis0' ) of case GetConfig( 'input/init.joystick.axis0' ) of
@ -2060,6 +2096,13 @@ end;
procedure TGUIForm.tbMasterVolumeChange(Sender: TObject); procedure TGUIForm.tbMasterVolumeChange(Sender: TObject);
begin begin
{$IFDEF LINUX}
if not VolDrag then
begin
tbMasterVolume.Position := VolPosition;
exit;
end;
{$ENDIF}
case TTrackBar(sender).Position of case TTrackBar(sender).Position of
0: UpdateConfig( 'audio/init.master.volume', '0.0', false ); 0: UpdateConfig( 'audio/init.master.volume', '0.0', false );
1: UpdateConfig( 'audio/init.master.volume', '0.1', false ); 1: UpdateConfig( 'audio/init.master.volume', '0.1', false );
@ -2105,6 +2148,14 @@ end;
procedure TGUIForm.TrackBar2Change(Sender: TObject); procedure TGUIForm.TrackBar2Change(Sender: TObject);
begin begin
{$IFDEF LINUX}
if not WarpDrag then
begin
TrackBar2.Position := WarpPosition;
exit;
end;
{$ENDIF}
case TTrackBar(sender).Position of case TTrackBar(sender).Position of
0: UpdateConfig( 'hardware/current.cpu.warp', '0.25', false); 0: UpdateConfig( 'hardware/current.cpu.warp', '0.25', false);
1: UpdateConfig( 'hardware/current.cpu.warp', '0.50', false); 1: UpdateConfig( 'hardware/current.cpu.warp', '0.50', false);
@ -2114,6 +2165,18 @@ begin
end; end;
end; end;
procedure TGUIForm.TrackBar2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
WarpDrag := true;
end;
procedure TGUIForm.TrackBar2MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
WarpDrag := false;
end;
procedure TGUIForm.txtAddressKeyPress(Sender: TObject; var Key: char); procedure TGUIForm.txtAddressKeyPress(Sender: TObject; var Key: char);
begin begin
if Key = #13 then if Key = #13 then
@ -2375,6 +2438,7 @@ var
json, S, pval: string; json, S, pval: string;
Respo: TStringStream; Respo: TStringStream;
f: TReplaceFlags; f: TReplaceFlags;
d: double;
begin begin
pval := 'false'; pval := 'false';
if persist then if persist then
@ -2386,6 +2450,25 @@ begin
Respo := TStringStream.Create(''); Respo := TStringStream.Create('');
SimpleFormPost(baseUrl + '/api/control/settings/update',json,Respo); SimpleFormPost(baseUrl + '/api/control/settings/update',json,Respo);
S := Respo.DataString; S := Respo.DataString;
if path = 'audio/init.master.volume' then
begin
d := StrToFloat( value );
VolPosition := Round(10 * d);
end;
if path = 'hardware/current.cpu.warp' then
begin
d := StrToFloat(value);
case Round(d * 100) of
25: WarpPosition := 0;
50: WarpPosition := 1;
100: WarpPosition := 2;
200: WarpPosition := 3;
400: WarpPosition := 4;
end;
end;
//self.StatusBar1.SimpleText:=json; //self.StatusBar1.SimpleText:=json;
Respo.Destroy; Respo.Destroy;
end; end;
@ -2395,6 +2478,7 @@ var
json, S, pval: string; json, S, pval: string;
Respo: TStringStream; Respo: TStringStream;
f: TReplaceFlags; f: TReplaceFlags;
d: double;
begin begin
json := '{"path":"' + path + json := '{"path":"' + path +
'"}'; '"}';
@ -2402,6 +2486,44 @@ begin
SimpleFormPost(baseUrl + '/api/control/settings/get',json,Respo); SimpleFormPost(baseUrl + '/api/control/settings/get',json,Respo);
Result := Respo.DataString; Result := Respo.DataString;
//self.StatusBar1.SimpleText:=json; //self.StatusBar1.SimpleText:=json;
if path = 'audio/init.master.volume' then
begin
try
begin
d := StrToFloat( Result );
VolPosition := Round(10 * d)
end;
except
on e: Exception do
begin
end;
end;
end;
if path = 'hardware/current.cpu.warp' then
begin
try
begin
d := StrToFloat(Result);
case Round(d * 100) of
25: WarpPosition := 0;
50: WarpPosition := 1;
100: WarpPosition := 2;
200: WarpPosition := 3;
400: WarpPosition := 4;
end;
end;
except
on e: Exception do
begin
end;
end;
end;
Respo.Destroy; Respo.Destroy;
end; end;

388
poc.lps
View File

@ -1,194 +1,194 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<CONFIG> <CONFIG>
<ProjectSession> <ProjectSession>
<PathDelim Value="\"/> <PathDelim Value="\"/>
<Version Value="11"/> <Version Value="11"/>
<BuildModes Active="Default"/> <BuildModes Active="Default"/>
<Units Count="6"> <Units Count="6">
<Unit0> <Unit0>
<Filename Value="poc.lpr"/> <Filename Value="poc.lpr"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/> <EditorIndex Value="-1"/>
<WindowIndex Value="-1"/> <WindowIndex Value="-1"/>
<TopLine Value="-1"/> <TopLine Value="-1"/>
<CursorPos X="-1" Y="-1"/> <CursorPos X="-1" Y="-1"/>
<UsageCount Value="323"/> <UsageCount Value="323"/>
</Unit0> </Unit0>
<Unit1> <Unit1>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="GUIForm"/> <ComponentName Value="GUIForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/> <IsVisibleTab Value="True"/>
<TopLine Value="2147"/> <TopLine Value="2393"/>
<CursorPos X="24" Y="2169"/> <CursorPos X="37" Y="2409"/>
<UsageCount Value="323"/> <UsageCount Value="323"/>
<Loaded Value="True"/> <Loaded Value="True"/>
<LoadedDesigner Value="True"/> <LoadedDesigner Value="True"/>
</Unit1> </Unit1>
<Unit2> <Unit2>
<Filename Value="mixer.pas"/> <Filename Value="mixer.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="frmMixer"/> <ComponentName Value="frmMixer"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<EditorIndex Value="-1"/> <EditorIndex Value="-1"/>
<TopLine Value="3"/> <TopLine Value="3"/>
<CursorPos X="26" Y="25"/> <CursorPos X="26" Y="25"/>
<UsageCount Value="206"/> <UsageCount Value="206"/>
</Unit2> </Unit2>
<Unit3> <Unit3>
<Filename Value="C:\lazarus\lcl\include\picture.inc"/> <Filename Value="C:\lazarus\lcl\include\picture.inc"/>
<EditorIndex Value="-1"/> <EditorIndex Value="-1"/>
<TopLine Value="576"/> <TopLine Value="576"/>
<CursorPos X="49" Y="591"/> <CursorPos X="49" Y="591"/>
<UsageCount Value="108"/> <UsageCount Value="107"/>
</Unit3> </Unit3>
<Unit4> <Unit4>
<Filename Value="C:\lazarus\components\lazutils\utf8process.pp"/> <Filename Value="C:\lazarus\components\lazutils\utf8process.pp"/>
<UnitName Value="UTF8Process"/> <UnitName Value="UTF8Process"/>
<EditorIndex Value="-1"/> <EditorIndex Value="-1"/>
<TopLine Value="636"/> <TopLine Value="636"/>
<CursorPos Y="654"/> <CursorPos Y="654"/>
<UsageCount Value="3"/> <UsageCount Value="2"/>
</Unit4> </Unit4>
<Unit5> <Unit5>
<Filename Value="images\memory.pas"/> <Filename Value="images\memory.pas"/>
<ComponentName Value="memform"/> <ComponentName Value="memform"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<EditorIndex Value="-1"/> <EditorIndex Value="-1"/>
<TopLine Value="40"/> <TopLine Value="40"/>
<CursorPos X="17" Y="44"/> <CursorPos X="17" Y="44"/>
<UsageCount Value="22"/> <UsageCount Value="21"/>
</Unit5> </Unit5>
</Units> </Units>
<JumpHistory Count="30" HistoryIndex="29"> <JumpHistory Count="30" HistoryIndex="29">
<Position1> <Position1>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="714" Column="6" TopLine="777"/> <Caret Line="2078" Column="14" TopLine="2075"/>
</Position1> </Position1>
<Position2> <Position2>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="715" Column="6" TopLine="715"/> <Caret Line="576" Column="29" TopLine="555"/>
</Position2> </Position2>
<Position3> <Position3>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="717" Column="6" TopLine="717"/> <Caret Line="2412" Column="30" TopLine="2398"/>
</Position3> </Position3>
<Position4> <Position4>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="1353" Column="39" TopLine="1329"/> <Caret Line="2421" Column="38" TopLine="2398"/>
</Position4> </Position4>
<Position5> <Position5>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="1354" Column="39" TopLine="1330"/> <Caret Line="1304" Column="44" TopLine="1287"/>
</Position5> </Position5>
<Position6> <Position6>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="1361" Column="39" TopLine="1337"/> <Caret Line="1305" Column="44" TopLine="1287"/>
</Position6> </Position6>
<Position7> <Position7>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="919" Column="39" TopLine="902"/> <Caret Line="1306" Column="44" TopLine="1287"/>
</Position7> </Position7>
<Position8> <Position8>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="906" Column="71" TopLine="887"/> <Caret Line="1307" Column="44" TopLine="1287"/>
</Position8> </Position8>
<Position9> <Position9>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="751" Column="53" TopLine="736"/> <Caret Line="1308" Column="44" TopLine="1287"/>
</Position9> </Position9>
<Position10> <Position10>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="980" Column="56" TopLine="963"/> <Caret Line="1309" Column="44" TopLine="1287"/>
</Position10> </Position10>
<Position11> <Position11>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="2553" Column="38" TopLine="2537"/> <Caret Line="1310" Column="44" TopLine="1287"/>
</Position11> </Position11>
<Position12> <Position12>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="2554" Column="38" TopLine="2538"/> <Caret Line="1311" Column="44" TopLine="1287"/>
</Position12> </Position12>
<Position13> <Position13>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="2561" Column="38" TopLine="2545"/> <Caret Line="1312" Column="44" TopLine="1287"/>
</Position13> </Position13>
<Position14> <Position14>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="1332" Column="3" TopLine="1348"/> <Caret Line="1313" Column="44" TopLine="1287"/>
</Position14> </Position14>
<Position15> <Position15>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="1316" TopLine="1310"/> <Caret Line="1314" Column="45" TopLine="1287"/>
</Position15> </Position15>
<Position16> <Position16>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="1325" Column="77" TopLine="1310"/> <Caret Line="1613" Column="41" TopLine="1585"/>
</Position16> </Position16>
<Position17> <Position17>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="552" Column="24" TopLine="543"/> <Caret Line="2079" Column="42" TopLine="2051"/>
</Position17> </Position17>
<Position18> <Position18>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="1338" Column="29" TopLine="1317"/> <Caret Line="2080" Column="42" TopLine="2052"/>
</Position18> </Position18>
<Position19> <Position19>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="1335" Column="46" TopLine="1317"/> <Caret Line="2081" Column="42" TopLine="2053"/>
</Position19> </Position19>
<Position20> <Position20>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="2231" Column="25" TopLine="2215"/> <Caret Line="2082" Column="42" TopLine="2054"/>
</Position20> </Position20>
<Position21> <Position21>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="1338" Column="10" TopLine="1328"/> <Caret Line="2083" Column="42" TopLine="2055"/>
</Position21> </Position21>
<Position22> <Position22>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="552" Column="24" TopLine="534"/> <Caret Line="2084" Column="42" TopLine="2056"/>
</Position22> </Position22>
<Position23> <Position23>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="1338" Column="15" TopLine="1307"/> <Caret Line="2085" Column="42" TopLine="2057"/>
</Position23> </Position23>
<Position24> <Position24>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="2229" Column="29" TopLine="2216"/> <Caret Line="2086" Column="42" TopLine="2058"/>
</Position24> </Position24>
<Position25> <Position25>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="1690" Column="13" TopLine="1683"/> <Caret Line="2087" Column="42" TopLine="2059"/>
</Position25> </Position25>
<Position26> <Position26>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="781" Column="24" TopLine="764"/> <Caret Line="2088" Column="42" TopLine="2060"/>
</Position26> </Position26>
<Position27> <Position27>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="2229" Column="29" TopLine="2222"/> <Caret Line="2089" Column="43" TopLine="2061"/>
</Position27> </Position27>
<Position28> <Position28>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="552" Column="24" TopLine="534"/> <Caret Line="2106" Column="41" TopLine="2078"/>
</Position28> </Position28>
<Position29> <Position29>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="1334" Column="39" TopLine="1313"/> <Caret Line="2407" Column="33" TopLine="2378"/>
</Position29> </Position29>
<Position30> <Position30>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="2171" Column="26" TopLine="2153"/> <Caret Line="2393" Column="13" TopLine="2391"/>
</Position30> </Position30>
</JumpHistory> </JumpHistory>
<RunParams> <RunParams>
<FormatVersion Value="2"/> <FormatVersion Value="2"/>
<Modes Count="0" ActiveMode=""/> <Modes Count="0" ActiveMode=""/>
</RunParams> </RunParams>
</ProjectSession> </ProjectSession>
</CONFIG> </CONFIG>