LED Outdoor PAR AT3 - 7ch mode
Litecraft
Ingo Koinzer
PCD-DDF-in-WPF
unit Litecraft_LEDOutdoorPARAT3_7chmode;
interface
procedure InitDevice(Device: String);
procedure FormClose();
procedure FormShow();
procedure FormRefresh(channel: Integer);
function getfadetime: Integer;
procedure speed_dropdown_changed();
procedure special2_dropdown_changed();
procedure dimmer_slider_changed();
procedure speed_slider_changed();
procedure ColorPickerChange(R, G, B: Byte);
procedure onchangecolorpicker;
implementation
var
dontRefresh: Boolean;
procedure InitDevice(Device: String);
begin
end;
procedure FormClose();
begin
end;
procedure FormShow();
begin
dontRefresh := false;
end;
procedure FormRefresh(channel: Integer);
var
value: Integer;
begin
if dontRefresh then begin
dontRefresh := false;
exit;
end;
case channel of
4: begin // Strobe/Speed
value := get_channel('speed');
case value of
0..15: begin // Strobe off
speed_dropdown.ItemIndex := 0;
try
speed_slider.Min := 0;
except end;
speed_slider.Max := 15;
speed_slider.Min := 0;
speed_slider.Position := value;
speed_slider.Enabled := false;
end;
16..255: begin // Strobe / Speed
speed_dropdown.ItemIndex := 1;
try
speed_slider.Min := 16;
except end;
speed_slider.Max := 255;
speed_slider.Min := 16;
speed_slider.Position := value;
speed_slider.Enabled := true;
end;
end;
end;
5: begin // Mode
value := get_channel('special2');
case value of
0..35: begin // No Function
special2_dropdown.ItemIndex := 0;
end;
36..71: begin // Automatic ramp up
special2_dropdown.ItemIndex := 1;
end;
72..107: begin // Automatic ramp down
special2_dropdown.ItemIndex := 2;
end;
108..143: begin // Automatic ramp up/down
special2_dropdown.ItemIndex := 3;
end;
144..179: begin // Automatic color mix
special2_dropdown.ItemIndex := 4;
end;
180..215: begin // Random 3-colors
special2_dropdown.ItemIndex := 5;
end;
216..251: begin // Random 7-colors
special2_dropdown.ItemIndex := 6;
end;
252..255: begin // Audio mode
special2_dropdown.ItemIndex := 7;
end;
end;
end;
6: begin // Dimmer
value := get_channel('dimmer');
case value of
0..255: begin // Bereich Aus-Max
try
dimmer_slider.Min := 0;
except end;
dimmer_slider.Max := 255;
dimmer_slider.Min := 0;
dimmer_slider.Position := value;
dimmer_slider.Enabled := true;
end;
end;
end;
end;
dontRefresh := false;
end;
function getfadetime: Integer;
begin
result := 0;
if (usefadezeit.Checked) then
result := strtoint(fadezeit.Text);
end;
procedure speed_dropdown_changed();
begin
case speed_dropdown.ItemIndex of
0: // Strobe off
set_channel('speed', -1, 0, 0);
1: // Strobe / Speed
set_channel('speed', -1, 16, 0);
end;
end;
procedure special2_dropdown_changed();
begin
case special2_dropdown.ItemIndex of
0: // No Function
set_channel('special2', -1, 0, 0);
1: // Automatic ramp up
set_channel('special2', -1, 36, 0);
2: // Automatic ramp down
set_channel('special2', -1, 72, 0);
3: // Automatic ramp up/down
set_channel('special2', -1, 108, 0);
4: // Automatic color mix
set_channel('special2', -1, 144, 0);
5: // Random 3-colors
set_channel('special2', -1, 180, 0);
6: // Random 7-colors
set_channel('special2', -1, 216, 0);
7: // Audio mode
set_channel('special2', -1, 252, 0);
end;
end;
procedure dimmer_slider_changed();
begin
dontRefresh := true;
set_channel('dimmer', -1, dimmer_slider.Position, 0);
end;
procedure speed_slider_changed();
begin
dontRefresh := true;
set_channel('speed', -1, speed_slider.Position, 0);
end;
procedure ColorPickerChange(R, G, B: Byte);
begin
set_color(R, G, B, getfadetime, 0);
end;
procedure onchangecolorpicker;
begin
if colorpicker.visible then begin
colorpicker.visible:=false;
colorpicker2.visible:=true;
end else begin
colorpicker.visible:=true;
colorpicker2.visible:=false;
end;
end;
end.