ArrayArrayArrayArrayArrayArrayArrayArray
Statistics: Posted by gthibert — 06 Mar 2011, 20:54
Statistics: Posted by 23fx23 — 06 Mar 2011, 02:11
Statistics: Posted by gthibert — 06 Mar 2011, 02:01
Statistics: Posted by 23fx23 — 06 Mar 2011, 01:46
CODE:
//////////////////////////// /////////////////////////// parameters declarationvar inPresetName: Tparameter;var inStore: Tparameter;var inRecall: Tparameter;var inCleanup: Tparameter;var inClear: Tparameter;var inCommaList: Tparameter;var presetsComma : Tparameter;var filesList: TStringList;var presetsList : TStringList;// initialisation : create parametersprocedure init;begin inPresetName := CreateParam('preset name',ptTextfield); SetIsOutPut(inPresetName,false);inCommaList := CreateParam('comma text',ptTextfield); SetIsOutPut(inCommaList,false);presetsComma := CreateParam('preset comma',ptTextfield); SetIsOutPut(presetsComma,false);SetIsInput(presetsComma,false);SetDontSave(presetsComma, false);inStore := CreateParam('store',ptButton); SetIsOutPut(inStore,false);inRecall := CreateParam('recall',ptButton); SetIsOutPut(inRecall,false);inCleanup := CreateParam('cleanup',ptButton); SetIsOutPut(inCleanup,false);inClear := CreateParam('clear',ptButton); SetIsOutPut(inClear,false);filesList := tStringList.create;presetsList := tStringList.create;presetsList.capacity := 64;end;Procedure savePresets();beginsetStringValue(presetsComma, presetsList.commatext);end;Procedure clearPresets();var x:Integer;beginstrace('Clearing presetsList');presetsList.clear;for x := 0 to 63 do beginpresetsList.add('free');end;savePresets();end;Procedure loadPresets;var x:Integer;beginstrace('Loading presetsList.');presetsList.commatext := getStringValue(presetsComma);if presetsList.count = 0 then clearPresets();end;Procedure cleanupPresets();var x:Integer;beginstrace('Clean up');filesList.commatext := getStringValue(inCommaList);for x := 0 to presetsList.count do beginif filesList.indexOf(presetsList[x]) = -1 then beginpresetsList[x] := 'free';end;end;end;Procedure recallPreset(presetIndex:Integer);var pmName:String;var pmNum:String;beginpmName:= 'Preset' + intToStr(presetIndex div 16 + 1);pmNum := intToStr(presetIndex mod 16);SendInternalMsg('SET_TARGET_PATCH','SENDER_PATCH');SendInternalMsg('SET_VALUE', pmName, 'num', pmNum);end;Procedure storePreset(presetIndex:Integer);var pmName:String;var pmNum:String;beginpmName:= 'Preset' + intToStr(presetIndex div 16 + 1);pmNum := intToStr(presetIndex mod 16);SendInternalMsg('SET_TARGET_PATCH','SENDER_PATCH');SendInternalMsg('SET_VALUE', pmName, 'store', '1');SendInternalMsg('SET_VALUE', pmName, 'num', pmNum);end;Procedure Callback(N:integer); var x:integer;var pmName:String;var pmNum:String;var presetIndex:integer;begin// Storeif (n=inStore) and (getValue(inStore)=1) then beginif presetsList.count = 0 then loadPresets();presetIndex := presetsList.indexOf(getStringValue(inPresetName));if presetIndex = -1 then begin presetIndex := presetsList.indexOf('free');if presetIndex = -1 then begincleanupPresets();presetIndex := presetsList.indexOf('free');end;presetsList[presetIndex] := getStringValue(inPresetName);end;storePreset(presetIndex);savePresets();end;// Recallif (n=inRecall) and (getValue(inRecall) = 1) then beginif presetsList.count = 0 then loadPresets();presetIndex := presetsList.indexOf(getStringValue(inPresetName));if presetIndex <> -1 then begin strace('Recalling');recallPreset(presetIndex);end;end;// Clearif (n=inClear) and (getValue(inClear)=1) then beginstrace('Clear');clearPresets();end;// Cleanupif ((n=inCleanUp) and (getValue(inCleanUp)=1)) then begincleanupPresets();end;end;//////////////////////////////// main proc//////////////////////////////Procedure Process;beginend;Statistics: Posted by gthibert — 05 Mar 2011, 09:47
Statistics: Posted by gthibert — 06 Mar 2011, 20:54
Statistics: Posted by 23fx23 — 06 Mar 2011, 02:11
Statistics: Posted by gthibert — 06 Mar 2011, 02:01
Statistics: Posted by 23fx23 — 06 Mar 2011, 01:46
CODE:
//////////////////////////// /////////////////////////// parameters declarationvar inPresetName: Tparameter;var inStore: Tparameter;var inRecall: Tparameter;var inCleanup: Tparameter;var inClear: Tparameter;var inCommaList: Tparameter;var presetsComma : Tparameter;var filesList: TStringList;var presetsList : TStringList;// initialisation : create parametersprocedure init;begin inPresetName := CreateParam('preset name',ptTextfield); SetIsOutPut(inPresetName,false);inCommaList := CreateParam('comma text',ptTextfield); SetIsOutPut(inCommaList,false);presetsComma := CreateParam('preset comma',ptTextfield); SetIsOutPut(presetsComma,false);SetIsInput(presetsComma,false);SetDontSave(presetsComma, false);inStore := CreateParam('store',ptButton); SetIsOutPut(inStore,false);inRecall := CreateParam('recall',ptButton); SetIsOutPut(inRecall,false);inCleanup := CreateParam('cleanup',ptButton); SetIsOutPut(inCleanup,false);inClear := CreateParam('clear',ptButton); SetIsOutPut(inClear,false);filesList := tStringList.create;presetsList := tStringList.create;presetsList.capacity := 64;end;Procedure savePresets();beginsetStringValue(presetsComma, presetsList.commatext);end;Procedure clearPresets();var x:Integer;beginstrace('Clearing presetsList');presetsList.clear;for x := 0 to 63 do beginpresetsList.add('free');end;savePresets();end;Procedure loadPresets;var x:Integer;beginstrace('Loading presetsList.');presetsList.commatext := getStringValue(presetsComma);if presetsList.count = 0 then clearPresets();end;Procedure cleanupPresets();var x:Integer;beginstrace('Clean up');filesList.commatext := getStringValue(inCommaList);for x := 0 to presetsList.count do beginif filesList.indexOf(presetsList[x]) = -1 then beginpresetsList[x] := 'free';end;end;end;Procedure recallPreset(presetIndex:Integer);var pmName:String;var pmNum:String;beginpmName:= 'Preset' + intToStr(presetIndex div 16 + 1);pmNum := intToStr(presetIndex mod 16);SendInternalMsg('SET_TARGET_PATCH','SENDER_PATCH');SendInternalMsg('SET_VALUE', pmName, 'num', pmNum);end;Procedure storePreset(presetIndex:Integer);var pmName:String;var pmNum:String;beginpmName:= 'Preset' + intToStr(presetIndex div 16 + 1);pmNum := intToStr(presetIndex mod 16);SendInternalMsg('SET_TARGET_PATCH','SENDER_PATCH');SendInternalMsg('SET_VALUE', pmName, 'store', '1');SendInternalMsg('SET_VALUE', pmName, 'num', pmNum);end;Procedure Callback(N:integer); var x:integer;var pmName:String;var pmNum:String;var presetIndex:integer;begin// Storeif (n=inStore) and (getValue(inStore)=1) then beginif presetsList.count = 0 then loadPresets();presetIndex := presetsList.indexOf(getStringValue(inPresetName));if presetIndex = -1 then begin presetIndex := presetsList.indexOf('free');if presetIndex = -1 then begincleanupPresets();presetIndex := presetsList.indexOf('free');end;presetsList[presetIndex] := getStringValue(inPresetName);end;storePreset(presetIndex);savePresets();end;// Recallif (n=inRecall) and (getValue(inRecall) = 1) then beginif presetsList.count = 0 then loadPresets();presetIndex := presetsList.indexOf(getStringValue(inPresetName));if presetIndex <> -1 then begin strace('Recalling');recallPreset(presetIndex);end;end;// Clearif (n=inClear) and (getValue(inClear)=1) then beginstrace('Clear');clearPresets();end;// Cleanupif ((n=inCleanUp) and (getValue(inCleanUp)=1)) then begincleanupPresets();end;end;//////////////////////////////// main proc//////////////////////////////Procedure Process;beginend;Statistics: Posted by gthibert — 05 Mar 2011, 09:47