From 5555e22d43177c92e4294d55fb054872881e7b17 Mon Sep 17 00:00:00 2001 From: falkTX Date: Thu, 20 Apr 2023 20:10:40 +0200 Subject: [PATCH] Add inno bits for picking VST2 folder location Signed-off-by: falkTX --- utils/inno/win32.iss | 60 +++++++++++++++++++++++++++++++++++++++++++- utils/inno/win64.iss | 60 +++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 118 insertions(+), 2 deletions(-) diff --git a/utils/inno/win32.iss b/utils/inno/win32.iss index f5d992f..0aba6d3 100644 --- a/utils/inno/win32.iss +++ b/utils/inno/win32.iss @@ -56,7 +56,7 @@ Source: "..\..\bin\Cardinal.lv2\*.*"; DestDir: "{commoncf32}\LV2\Cardinal.lv2"; Source: "..\..\bin\CardinalFX.lv2\*.*"; DestDir: "{commoncf32}\LV2\CardinalFX.lv2"; Components: lv2; Flags: ignoreversion; Source: "..\..\bin\CardinalSynth.lv2\*.*"; DestDir: "{commoncf32}\LV2\CardinalSynth.lv2"; Components: lv2; Flags: ignoreversion; ; vst2 -Source: "..\..\bin\Cardinal.vst\*.*"; DestDir: "{commoncf32}\VST2\Cardinal.vst"; Components: vst2; Flags: ignoreversion; +Source: "..\..\bin\Cardinal.vst\*.*"; DestDir: "{code:GetVST2Dir}\Cardinal.vst"; Components: vst2; Flags: ignoreversion; ; vst3 Source: "..\..\bin\Cardinal.vst3\Contents\x86-win\Cardinal.vst3"; DestDir: "{commoncf32}\VST3\Cardinal.vst3\Contents\x86-win"; Components: vst3; Flags: ignoreversion; Source: "..\..\bin\CardinalFX.vst3\Contents\x86-win\CardinalFX.vst3"; DestDir: "{commoncf32}\VST3\CardinalFX.vst3\Contents\x86-win"; Components: vst3; Flags: ignoreversion; @@ -67,3 +67,61 @@ Source: "..\..\bin\Cardinal.clap\*.*"; DestDir: "{commoncf32}\CLAP\Cardinal.clap [Icons] Name: "{commonprograms}\Cardinal (JACK)"; Filename: "{app}\Cardinal.exe"; IconFilename: "{app}\distrho.ico"; WorkingDir: "{app}"; Comment: "Virtual modular synthesizer plugin (JACK variant)"; Components: jack; Name: "{commonprograms}\Cardinal (Native)"; Filename: "{app}\CardinalNative.exe"; IconFilename: "{app}\distrho.ico"; WorkingDir: "{app}"; Comment: "Virtual modular synthesizer plugin (Native variant)"; Components: native; + +; based on https://www.kvraudio.com/forum/viewtopic.php?t=501615 +[Code] +var + VST2DirPage: TInputDirWizardPage; + TypesComboOnChangePrev: TNotifyEvent; +procedure ComponentsListCheckChanges; +begin + WizardForm.NextButton.Enabled := (WizardSelectedComponents(False) <> ''); +end; +procedure ComponentsListClickCheck(Sender: TObject); +begin + ComponentsListCheckChanges; +end; +procedure TypesComboOnChange(Sender: TObject); +begin + TypesComboOnChangePrev(Sender); + ComponentsListCheckChanges; +end; +procedure InitializeWizard; +begin + WizardForm.ComponentsList.OnClickCheck := @ComponentsListClickCheck; + TypesComboOnChangePrev := WizardForm.TypesCombo.OnChange; + WizardForm.TypesCombo.OnChange := @TypesComboOnChange; + VST2DirPage := CreateInputDirPage(wpSelectComponents, + 'Confirm VST2 Plugin Directory', '', + 'Select the folder in which setup should install the VST2 Plugin, then click Next.', + False, ''); + VST2DirPage.Add('VST2 Plugin Directory'); + VST2DirPage.Values[0] := ExpandConstant('{reg:HKLM\SOFTWARE\VST,VSTPluginsPath|{commonpf32}\VSTPlugins}'); +end; +procedure CurPageChanged(CurPageID: Integer); +begin + if CurPageID = VST2DirPage.ID then + begin + VST2DirPage.Buttons[0].Enabled := WizardIsComponentSelected('vst2'); + VST2DirPage.PromptLabels[0].Enabled := VST2DirPage.Buttons[0].Enabled; + VST2DirPage.Edits[0].Enabled := VST2DirPage.Buttons[0].Enabled; + end; + if CurPageID = wpSelectComponents then + begin + ComponentsListCheckChanges; + end; +end; +function ShouldSkipPage(PageID: Integer): Boolean; +begin + if PageID = VST2DirPage.ID then + begin + If (not WizardIsComponentSelected('vst2'))then + begin + Result := True + end; + end; +end; +function GetVST2Dir(Param: string): string; +begin + Result := VST2DirPage.Values[0]; +end; diff --git a/utils/inno/win64.iss b/utils/inno/win64.iss index 8370de8..b840f7b 100644 --- a/utils/inno/win64.iss +++ b/utils/inno/win64.iss @@ -57,7 +57,7 @@ Source: "..\..\bin\Cardinal.lv2\*.*"; DestDir: "{commoncf64}\LV2\Cardinal.lv2"; Source: "..\..\bin\CardinalFX.lv2\*.*"; DestDir: "{commoncf64}\LV2\CardinalFX.lv2"; Components: lv2; Flags: ignoreversion; Source: "..\..\bin\CardinalSynth.lv2\*.*"; DestDir: "{commoncf64}\LV2\CardinalSynth.lv2"; Components: lv2; Flags: ignoreversion; ; vst2 -Source: "..\..\bin\Cardinal.vst\*.*"; DestDir: "{commoncf64}\VST2\Cardinal.vst"; Components: vst2; Flags: ignoreversion; +Source: "..\..\bin\Cardinal.vst\*.*"; DestDir: "{code:GetVST2Dir}\Cardinal.vst"; Components: vst2; Flags: ignoreversion; ; vst3 Source: "..\..\bin\Cardinal.vst3\Contents\x86_64-win\Cardinal.vst3"; DestDir: "{commoncf64}\VST3\Cardinal.vst3\Contents\x86_64-win"; Components: vst3; Flags: ignoreversion; Source: "..\..\bin\CardinalFX.vst3\Contents\x86_64-win\CardinalFX.vst3"; DestDir: "{commoncf64}\VST3\CardinalFX.vst3\Contents\x86_64-win"; Components: vst3; Flags: ignoreversion; @@ -68,3 +68,61 @@ Source: "..\..\bin\Cardinal.clap\*.*"; DestDir: "{commoncf64}\CLAP\Cardinal.clap [Icons] Name: "{commonprograms}\Cardinal (JACK)"; Filename: "{app}\Cardinal.exe"; IconFilename: "{app}\distrho.ico"; WorkingDir: "{app}"; Comment: "Virtual modular synthesizer plugin (JACK variant)"; Components: jack; Name: "{commonprograms}\Cardinal (Native)"; Filename: "{app}\CardinalNative.exe"; IconFilename: "{app}\distrho.ico"; WorkingDir: "{app}"; Comment: "Virtual modular synthesizer plugin (Native variant)"; Components: native; + +; based on https://www.kvraudio.com/forum/viewtopic.php?t=501615 +[Code] +var + VST2DirPage: TInputDirWizardPage; + TypesComboOnChangePrev: TNotifyEvent; +procedure ComponentsListCheckChanges; +begin + WizardForm.NextButton.Enabled := (WizardSelectedComponents(False) <> ''); +end; +procedure ComponentsListClickCheck(Sender: TObject); +begin + ComponentsListCheckChanges; +end; +procedure TypesComboOnChange(Sender: TObject); +begin + TypesComboOnChangePrev(Sender); + ComponentsListCheckChanges; +end; +procedure InitializeWizard; +begin + WizardForm.ComponentsList.OnClickCheck := @ComponentsListClickCheck; + TypesComboOnChangePrev := WizardForm.TypesCombo.OnChange; + WizardForm.TypesCombo.OnChange := @TypesComboOnChange; + VST2DirPage := CreateInputDirPage(wpSelectComponents, + 'Confirm VST2 Plugin Directory', '', + 'Select the folder in which setup should install the VST2 Plugin, then click Next.', + False, ''); + VST2DirPage.Add('VST2 Plugin Directory'); + VST2DirPage.Values[0] := ExpandConstant('{reg:HKLM\SOFTWARE\VST,VSTPluginsPath|{commonpf64}\VSTPlugins}'); +end; +procedure CurPageChanged(CurPageID: Integer); +begin + if CurPageID = VST2DirPage.ID then + begin + VST2DirPage.Buttons[0].Enabled := WizardIsComponentSelected('vst2'); + VST2DirPage.PromptLabels[0].Enabled := VST2DirPage.Buttons[0].Enabled; + VST2DirPage.Edits[0].Enabled := VST2DirPage.Buttons[0].Enabled; + end; + if CurPageID = wpSelectComponents then + begin + ComponentsListCheckChanges; + end; +end; +function ShouldSkipPage(PageID: Integer): Boolean; +begin + if PageID = VST2DirPage.ID then + begin + If (not WizardIsComponentSelected('vst2'))then + begin + Result := True + end; + end; +end; +function GetVST2Dir(Param: string): string; +begin + Result := VST2DirPage.Values[0]; +end;