Index » Empathy Jukebox : Blob 0faa1a / volume.pas
unit volume;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls,Global;

type
  Tvolumedisplay = class(TForm)
    delay: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure delayTimer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  procedure draw(i : byte);

var
  volumedisplay: Tvolumedisplay;
  symbolrect : Trect;
  progressrect : Trect;
  symbol : tform;
  increment : real;
  vol : dword;
  lastvol,lastbass,lasttreb : dword;
  mixerinc : dword;
  max : integer;


const
 col = cllime;
 delayinterval=1000;
 STICKNUMBER = 0;

implementation
uses main;

{$R *.DFM}


procedure settitle(title : string; value : integer);
var
 op : string;
begin
with symbol.canvas do begin
  brush.color:=col;
  pen.color:=col;
  rectangle(0,0,symbol.width,symbol.height);
  symbol.top:=volumedisplay.top;
  font.name:=DEFAULTFONT;
  Font.size:=symbol.width div 10;
  font.style:=[fsbold];
  textout(symbol.width div 2 - textwidth(title) div 2,0,title);
  font.style:=[];
  op:='('+inttostr(value)+')';
  textout(symbol.width div 2 - textwidth(op) div 2,textheight('title')+1,op);
end;
end;

procedure draw(i : byte);
var
s : string;
begin

volumedisplay.delay.interval:=delayinterval;
volumedisplay.delay.tag:=0;
volumedisplay.delay.Enabled:=true;
   s:='Volume';
   if mainform.mutebut.Down=true then s:='Muted';
   volumedisplay.width:=round(i*increment);

symbol.visible:=true;
   settitle(s,i);
volumedisplay.visible:=true;
application.ProcessMessages;
end;


procedure Tvolumedisplay.FormCreate(Sender: TObject);
begin


max:=VOLINCREMENTS;
width:=(screen.width - screen.width div 10)-screen.width div 100;
height:=screen.height div 24;
top:=screen.height div 10 * 8;
left:=screen.width div 10;
borderstyle:=bsNone;
formstyle:=fsStayonTop;
color:=col;
symbolrect.left:=screen.width div 100;
symbolrect.bottom:=height;
symbolrect.top:=Top;
symbolrect.right:=left-((screen.width div 100)*2);
symbol:=tform.Create(self);
symbol.FormStyle:=fsStayonTop;
symbol.BorderStyle:=bsNone;
symbol.left:=symbolrect.left;
symbol.width:=symbolrect.right;
symbol.height:=symbolrect.bottom;
symbol.top:=top;
symbol.color:=col;
symbol.Visible:=false;
increment := width / max;


end;

procedure Tvolumedisplay.delayTimer(Sender: TObject);
begin
delay.tag:=delay.tag+1;
if delay.tag=2 then begin
visible:=false;
symbol.visible:=false;
delay.tag:=0;
delay.enabled:=false;
end;
end;




end.