DJ Scan 600
Futurelight
Dennis Montag
Scanner mit Gobo-, Prismen- und Farbrad sowie Shutter
unit TS255;
interface
procedure InitDevice(Device: String);
procedure FormShow;
procedure FormRefresh(channel:String);
procedure ColorBoxChange;
procedure FormClose;
procedure PositionXYChange(Top, Left: Integer);
procedure setgobo;
procedure setrotation;
procedure setdimmer;
procedure setstrobo;
procedure doblackout;
procedure doreset;
procedure shutterauf;
procedure setfocus;
procedure setprisma;
procedure setcolor;
implementation
var
dontrefresh:boolean;
procedure InitDevice(Device: String);
begin
// bitte hier die eigene Funktion eintragen
end;
procedure FormShow;
begin
end;
procedure FormRefresh(channel:String);
var
wert:integer;
begin
case channel of
0..1:
begin
PositionXY.Left:=round(Fadenkreuz.Width * get_channel('pan')/255)-(PositionXY.Width div 2);
PositionXY.Top:=round(Fadenkreuz.Height * get_channel('tilt')/255)-(PositionXY.Height div 2);
end;
2:
begin
wert:=get_channel('color1');
case wert of
0..15: colorbox.itemindex:=0;
16..31: colorbox.itemindex:=1;
32..47: colorbox.itemindex:=2;
48..63: colorbox.itemindex:=3;
64..79: colorbox.itemindex:=4;
80..95: colorbox.itemindex:=5;
96..111: colorbox.itemindex:=6;
112..127: colorbox.itemindex:=7;
128..191: colorbox.itemindex:=8;
192..255: colorbox.itemindex:=9;
128..255: colorslider.position:=wert;
end;
end;
3:
begin
if not dontrefresh then
begin
wert:=get_channel('gobo1');
case wert of
0..15: gobo.itemindex:=0;
16..31: gobo.itemindex:=1;
32..47: gobo.itemindex:=2;
48..63: gobo.itemindex:=3;
64..79: gobo.itemindex:=4;
80..95: gobo.itemindex:=5;
96..111: gobo.itemindex:=6;
112..127: gobo.itemindex:=7;
end;
end;
end;
5:
begin
if not dontrefresh then
begin
wert:=get_channel('shutter');
case wert of
0..128: dimmerslider.position:=wert;
134..243: stroboslider.position:=wert;
end;
end;
end;
7:
begin
if not dontrefresh then
begin
wert:=get_channel('prisma');
case wert of
0..255: prismaslider.position:=wert;
end;
end;
end;
6:
begin
if not dontrefresh then
begin
wert:=get_channel('focus');
case wert of
0..255: focusslider.position:=wert;
end;
end;
end;
4:
begin
if not dontrefresh then
begin
wert:=get_channel('gobo1rot');
case wert of
0..255: rotationslider.position:=wert;
end;
end;
end;
end;
dontrefresh:=false;
end;
procedure ColorBoxChange;
begin
dontrefresh:=true;
case colorbox.itemindex of
0: set_channel('color1',-1,0,0);
1: set_channel('color1',-1,19,0);
2: set_channel('color1',-1,36,0);
3: set_channel('color1',-1,56,0);
4: set_channel('color1',-1,74,0);
5: set_channel('color1',-1,92,0);
6: set_channel('color1',-1,111,0);
7: set_channel('color1',-1,127,0);
8: set_channel('color1',-1,128,0);
9: set_channel('color1',-1,191,0);
end;
end;
procedure FormClose;
begin
end;
procedure PositionXYChange(Top, Left: Integer);
var
x,y:byte;
begin
x:=((PositionXY.Left+(PositionXY.Width div 2))/fadenkreuz.Width)*255;
y:=((PositionXY.Top+(PositionXY.Height div 2))/fadenkreuz.Height)*255;
set_channel('pan',x,x,0);
set_channel('tilt',y,y,0);
end;
procedure setgobo;
begin
dontrefresh:=true;
case gobo.itemindex of
0: set_channel('gobo1',-1,0,0);
1: set_channel('gobo1',-1,31,0);
2: set_channel('gobo1',-1,47,0);
3: set_channel('gobo1',-1,63,0);
4: set_channel('gobo1',-1,79,0);
5: set_channel('gobo1',-1,95,0);
6: set_channel('gobo1',-1,111,0);
7: set_channel('gobo1',-1,127,0);
8: set_channel('gobo1',-1,128,0);
9: set_channel('gobo1',-1,192,0);
end;
end;
procedure setrotation;
begin
dontrefresh:=true;
set_channel('gobo1rot',-1,rotationslider.position,0);
end;
procedure setdimmer;
begin
dontrefresh:=true;
set_channel('shutter',-1,dimmerslider.position,0);
end;
procedure setstrobo;
begin
dontrefresh:=true;
set_channel('shutter',-1,stroboslider.position,0);
end;
procedure doblackout;
begin
dontrefresh:=true;
set_channel('shutter',-1,0,0);
end;
procedure doreset;
begin
dontrefresh:=true;
set_channel('shutter',-1,249,0);
end;
procedure shutterauf;
begin
dontrefresh:=true;
set_channel('shutter',-1,255,0);
end;
procedure setfocus;
begin
dontrefresh:=true;
set_channel('focus',-1,focusslider.position,0);
end;
procedure setprisma;
begin
dontrefresh:=true;
set_channel('prisma',-1,prismaslider.position,0);
end;
procedure setcolor;
begin
dontrefresh:=true;
set_channel('color1',-1,colorslider.position,0);
end;
end.