From d30495c0d9a6b9900bcee8757272d04340a3ed3d Mon Sep 17 00:00:00 2001 From: zueuk Date: Mon, 20 Apr 2009 07:39:47 +0000 Subject: [PATCH] favourite variations added, 64-bit rendering removed --- 2.10/Source/Options.dfm | 101 +++++++++++++++++++++++++--------------- 2.10/Source/Regstry.pas | 50 +++++++++++--------- 2 files changed, 92 insertions(+), 59 deletions(-) diff --git a/2.10/Source/Options.dfm b/2.10/Source/Options.dfm index ea712ba..7428182 100644 --- a/2.10/Source/Options.dfm +++ b/2.10/Source/Options.dfm @@ -275,8 +275,7 @@ object OptionsForm: TOptionsForm Items.Strings = ( '32-bit integer' '32-bit float' - '48-bit integer' - '64-bit integer') + '48-bit integer') end end end @@ -986,44 +985,72 @@ object OptionsForm: TOptionsForm object VariationsPage: TTabSheet Caption = 'Variations' ImageIndex = 4 - object GroupBox17: TGroupBox - Left = 8 + object PageControl1: TPageControl + Left = 0 Top = 0 - Width = 341 - Height = 233 + Width = 443 + Height = 237 HelpContext = 1026 - Caption = 'Enabled' - TabOrder = 2 - object clbVarEnabled: TCheckListBox - Left = 12 - Top = 16 - Width = 317 - Height = 206 - Columns = 2 - ItemHeight = 13 - TabOrder = 0 - TabWidth = 100 - end - end - object btnSetAll: TButton - Left = 356 - Top = 176 - Width = 75 - Height = 25 - HelpContext = 1027 - Caption = 'Set All' + ActivePage = varsPageEnabled + Align = alClient TabOrder = 0 - OnClick = btnSetAllClick - end - object btnClearAll: TButton - Left = 356 - Top = 208 - Width = 75 - Height = 25 - HelpContext = 1028 - Caption = 'Clear All' - TabOrder = 1 - OnClick = btnClearAllClick + object varsPageEnabled: TTabSheet + Caption = 'Enabled' + object clbVarEnabled: TCheckListBox + Left = 2 + Top = 2 + Width = 348 + Height = 206 + Columns = 2 + ItemHeight = 13 + TabOrder = 0 + TabWidth = 100 + end + object btnSetAll: TButton + Left = 356 + Top = 148 + Width = 75 + Height = 25 + HelpContext = 1027 + Caption = 'Set All' + TabOrder = 1 + OnClick = btnSetAllClick + end + object btnClearAll: TButton + Left = 356 + Top = 180 + Width = 75 + Height = 25 + HelpContext = 1028 + Caption = 'Clear All' + TabOrder = 2 + OnClick = btnClearAllClick + end + end + object varsPageFavourite: TTabSheet + Caption = 'Favourite' + ImageIndex = 1 + object clbVarFavourites: TCheckListBox + Left = 2 + Top = 2 + Width = 348 + Height = 206 + Columns = 2 + ItemHeight = 13 + TabOrder = 0 + TabWidth = 100 + end + object btnClearVarFavs: TButton + Left = 356 + Top = 180 + Width = 75 + Height = 25 + HelpContext = 1028 + Caption = 'Clear All' + TabOrder = 1 + OnClick = btnClearVarFavsClick + end + end end end object TabSheet1: TTabSheet diff --git a/2.10/Source/Regstry.pas b/2.10/Source/Regstry.pas index 805ebd2..dc0316c 100644 --- a/2.10/Source/Regstry.pas +++ b/2.10/Source/Regstry.pas @@ -29,28 +29,24 @@ procedure SaveSettings; implementation -uses Windows, SysUtils, Forms, Registry, Global, Dialogs, XFormMan; +uses Windows, SysUtils, Forms, Registry, Global, Dialogs, XFormMan, Math; -(* -procedure UnpackVariations(v: int64); -{ Unpacks the variation options form an integer } -var - i: integer; -begin - for i := 0 to NRVAR - 1 do - Variations[i] := boolean(v shr i and 1); -end; -*) +const + variationSelectedForRandom = 1; + variationIsFavourite = 2; procedure ReadSettings; var Registry: TRegistry; DefaultPath: string; i, maxVars: integer; + value: integer; VariationOptions: int64; begin + SetLength(RandomVariations, NRVAR); + SetLength(FavouriteVariations, NRVAR); + DefaultPath := ExtractFilePath(Application.Exename); -// ShowMessage(DefaultPath); Registry := TRegistry.Create; try Registry.RootKey := HKEY_CURRENT_USER; @@ -607,6 +603,8 @@ begin end; if Registry.ValueExists('InternalBitsPerSample') then begin InternalBitsPerSample := Registry.ReadInteger('InternalBitsPerSample'); + if (InternalBitsPerSample < 0) or (InternalBitsPerSample > 2) then + InternalBitsPerSample := 0; end else begin InternalBitsPerSample := 0; end; @@ -686,21 +684,24 @@ begin end; Registry.CloseKey; - SetLength(Variations, NRVAR); if Registry.OpenKey('Software\' + APP_NAME + '\Variations', False) then begin for i := 0 to NRVAR-1 do begin - if Registry.ValueExists(Varnames(i)) then - Variations[i] := Registry.ReadBool(Varnames(i)) - else - Variations[i] := false; + if Registry.ValueExists(Varnames(i)) then begin + value := Registry.ReadInteger(Varnames(i)); + RandomVariations[i] := (value and variationSelectedForRandom) <> 0; + FavouriteVariations[i] := (value and variationIsFavourite) <> 0; + end + else begin + RandomVariations[i] := false; + end; end; end else begin if NRVAR >= 64 then maxVars := 63 else maxVars := NRVAR-1; for i := 0 to maxVars do - Variations[i] := boolean(VariationOptions shr i and 1); + RandomVariations[i] := boolean(VariationOptions shr i and 1); end; Registry.CloseKey; @@ -835,6 +836,8 @@ begin if Registry.ValueExists('BitsPerSample') then begin renderBitsPerSample := Registry.ReadInteger('BitsPerSample'); + if (renderBitsPerSample < 0) or (renderBitsPerSample > 2) then + renderBitsPerSample := 0; end else begin @@ -1052,6 +1055,7 @@ procedure SaveSettings; var Registry: TRegistry; i: integer; + value: integer; begin Registry := TRegistry.Create; try @@ -1146,10 +1150,12 @@ begin if Registry.OpenKey('\Software\' + APP_NAME + '\Variations', True) then begin for i := 0 to NRVAR-1 do begin - if Registry.ValueExists(Varnames(i)) then - if Registry.ReadBool(Varnames(i)) = Variations[i] then - continue; - Registry.WriteBool(Varnames(i), Variations[i]); + if Registry.ValueExists(Varnames(i)) then begin + value := IfThen(RandomVariations[i], variationSelectedForRandom, 0) + + IfThen(FavouriteVariations[i], variationIsFavourite, 0); + if Registry.ReadInteger(Varnames(i)) = value then continue; //? + end; + Registry.WriteInteger(Varnames(i), value); end; end; Registry.CloseKey;