Стартовый пул

This commit is contained in:
2024-04-02 08:46:59 +03:00
parent fd57fffd3a
commit 3bb34d000b
5591 changed files with 3291734 additions and 0 deletions

361
acs/Demos/Mixer/mixer.lpi Normal file
View File

@@ -0,0 +1,361 @@
<?xml version="1.0"?>
<CONFIG>
<ProjectOptions>
<PathDelim Value="\"/>
<Version Value="5"/>
<General>
<MainUnit Value="0"/>
<IconPath Value="./"/>
<TargetFileExt Value=".exe"/>
<ActiveEditorIndexAtStart Value="0"/>
</General>
<LazDoc Paths=""/>
<Units Count="39">
<Unit0>
<CursorPos X="33" Y="9"/>
<Filename Value="mixer.lpr"/>
<IsPartOfProject Value="True"/>
<TopLine Value="1"/>
<UnitName Value="Mixer"/>
<UsageCount Value="88"/>
</Unit0>
<Unit1>
<CursorPos X="14" Y="96"/>
<EditorIndex Value="0"/>
<Filename Value="umixer.pas"/>
<ComponentName Value="fMixer"/>
<IsPartOfProject Value="True"/>
<Loaded Value="True"/>
<ResourceFilename Value="umixer.lrs"/>
<TopLine Value="78"/>
<UnitName Value="uMixer"/>
<UsageCount Value="88"/>
</Unit1>
<Unit2>
<CursorPos X="1" Y="168"/>
<Filename Value="D:\LKomponenten\acs\Src\Common\ACS_Mixer.pas"/>
<TopLine Value="138"/>
<UnitName Value="ACS_Mixer"/>
<UsageCount Value="20"/>
</Unit2>
<Unit3>
<CursorPos X="21" Y="889"/>
<Filename Value="D:\lazarus\lcl\ExtCtrls.pp"/>
<TopLine Value="875"/>
<UnitName Value="ExtCtrls"/>
<UsageCount Value="6"/>
</Unit3>
<Unit4>
<CursorPos X="29" Y="126"/>
<Filename Value="D:\lazarus\lcl\Controls.pp"/>
<TopLine Value="109"/>
<UnitName Value="Controls"/>
<UsageCount Value="6"/>
</Unit4>
<Unit5>
<CursorPos X="3" Y="41"/>
<Filename Value="D:\lazarus\lcl\GraphType.pp"/>
<TopLine Value="24"/>
<UnitName Value="GraphType"/>
<UsageCount Value="6"/>
</Unit5>
<Unit6>
<CursorPos X="15" Y="575"/>
<Filename Value="D:\lazarus\lcl\LCLProc.pas"/>
<TopLine Value="569"/>
<UnitName Value="LCLProc"/>
<UsageCount Value="12"/>
</Unit6>
<Unit7>
<CursorPos X="1" Y="249"/>
<Filename Value="D:\LKomponenten\acs\Src\Common\include\windows\ACS_Mixer.inc"/>
<TopLine Value="232"/>
<UsageCount Value="12"/>
</Unit7>
<Unit8>
<CursorPos X="1" Y="3139"/>
<Filename Value="D:\lazarus\lcl\include\wincontrol.inc"/>
<TopLine Value="3122"/>
<UsageCount Value="6"/>
</Unit8>
<Unit9>
<CursorPos X="1" Y="3122"/>
<Filename Value="D:\lazarus\lcl\include\control.inc"/>
<TopLine Value="3105"/>
<UsageCount Value="6"/>
</Unit9>
<Unit10>
<CursorPos X="1" Y="422"/>
<Filename Value="F:\mixer\cmpMidiMixer.pas"/>
<TopLine Value="415"/>
<UnitName Value="cmpMidiMixer"/>
<UsageCount Value="6"/>
</Unit10>
<Unit11>
<CursorPos X="1" Y="171"/>
<Filename Value="D:\lazarus\lcl\include\trackbar.inc"/>
<TopLine Value="154"/>
<UsageCount Value="6"/>
</Unit11>
<Unit12>
<CursorPos X="47" Y="64"/>
<Filename Value="F:\mixer\mixer.txt"/>
<SyntaxHighlighter Value="None"/>
<TopLine Value="40"/>
<UsageCount Value="11"/>
</Unit12>
<Unit13>
<CursorPos X="21" Y="705"/>
<Filename Value="F:\mixer\AMixer.pas"/>
<TopLine Value="671"/>
<UnitName Value="AMixer"/>
<UsageCount Value="11"/>
</Unit13>
<Unit14>
<CursorPos X="7" Y="95"/>
<Filename Value="D:\fpc\packages\extra\winunits\mmsystem.pp"/>
<TopLine Value="78"/>
<UnitName Value="mmsystem"/>
<UsageCount Value="7"/>
</Unit14>
<Unit15>
<CursorPos X="1" Y="158"/>
<Filename Value="windows\D\src\LKomponenten\acs\Src\Common\include\linux\ACS_Mixer.inc"/>
<TopLine Value="1"/>
<UsageCount Value="7"/>
</Unit15>
<Unit16>
<CursorPos X="1" Y="171"/>
<Filename Value="windows\D\src\lazarus\lcl\include\trackbar.inc"/>
<TopLine Value="147"/>
<UsageCount Value="7"/>
</Unit16>
<Unit17>
<CursorPos X="31" Y="1714"/>
<Filename Value="D:\MixAbstrmain.pas"/>
<TopLine Value="1"/>
<UnitName Value="MixAbstrmain"/>
<UsageCount Value="10"/>
</Unit17>
<Unit18>
<CursorPos X="31" Y="80"/>
<Filename Value="D:\SRC\LKomponenten\acs\Src\Common\ACS_Mixer.pas"/>
<TopLine Value="43"/>
<UnitName Value="ACS_Mixer"/>
<UsageCount Value="9"/>
</Unit18>
<Unit19>
<CursorPos X="51" Y="146"/>
<Filename Value="D:\SRC\LKomponenten\acs\Src\Common\include\windows\ACS_Mixer.inc"/>
<TopLine Value="1"/>
<UsageCount Value="10"/>
</Unit19>
<Unit20>
<CursorPos X="57" Y="300"/>
<Filename Value="D:\mixer\AMixer.pas"/>
<TopLine Value="1011"/>
<UnitName Value="AMixer"/>
<UsageCount Value="7"/>
</Unit20>
<Unit21>
<CursorPos X="157" Y="164"/>
<Filename Value="D:\test\unit1.pas"/>
<ComponentName Value="Form1"/>
<HasResources Value="True"/>
<TopLine Value="144"/>
<UnitName Value="Unit1"/>
<UsageCount Value="10"/>
</Unit21>
<Unit22>
<CursorPos X="23" Y="566"/>
<Filename Value="D:\SRC\lazarus\lcl\LCLProc.pas"/>
<TopLine Value="73"/>
<UnitName Value="LCLProc"/>
<UsageCount Value="9"/>
</Unit22>
<Unit23>
<CursorPos X="5" Y="294"/>
<Filename Value="D:\SRC\LKomponenten\acs\Src\Common\ACS_Classes.pas"/>
<TopLine Value="271"/>
<UnitName Value="ACS_Classes"/>
<UsageCount Value="7"/>
</Unit23>
<Unit24>
<CursorPos X="1" Y="220"/>
<Filename Value="D:\SRC\LKomponenten\acs\Src\Common\include\linux\ACS_Mixer.inc"/>
<TopLine Value="180"/>
<UsageCount Value="7"/>
</Unit24>
<Unit25>
<CursorPos X="1" Y="1"/>
<Filename Value="D:\SRC\LKomponenten\acs\Src\Common\include\linux\Soundcard.pas"/>
<TopLine Value="459"/>
<UnitName Value="Soundcard"/>
<UsageCount Value="7"/>
</Unit25>
<Unit26>
<CursorPos X="34" Y="278"/>
<Filename Value="D:\SRC\fpc\packages\extra\winunits\mmsystem.pp"/>
<TopLine Value="270"/>
<UnitName Value="mmsystem"/>
<UsageCount Value="9"/>
</Unit26>
<Unit27>
<CursorPos X="35" Y="460"/>
<Filename Value="D:\SRC\LKomponenten\acs\Src\Common\ACS_Converters.pas"/>
<TopLine Value="460"/>
<UnitName Value="ACS_Converters"/>
<UsageCount Value="8"/>
</Unit27>
<Unit28>
<CursorPos X="1" Y="3131"/>
<Filename Value="D:\SRC\lazarus\lcl\include\control.inc"/>
<TopLine Value="2676"/>
<UsageCount Value="7"/>
</Unit28>
<Unit29>
<CursorPos X="1" Y="70"/>
<Filename Value="D:\LKomponenten\acs\Src\Common\ACS_Classes.pas"/>
<TopLine Value="36"/>
<UnitName Value="ACS_Classes"/>
<UsageCount Value="7"/>
</Unit29>
<Unit30>
<CursorPos X="40" Y="44"/>
<Filename Value="D:\LKomponenten\acs\Src\Common\ACS_MultiMix.pas"/>
<TopLine Value="19"/>
<UnitName Value="ACS_MultiMix"/>
<UsageCount Value="7"/>
</Unit30>
<Unit31>
<CursorPos X="1" Y="1"/>
<Filename Value="D:\LKomponenten\acs\Src\Win32\laz_acs.pas"/>
<TopLine Value="1"/>
<UnitName Value="LAZ_ACS"/>
<UsageCount Value="7"/>
</Unit31>
<Unit32>
<CursorPos X="17" Y="122"/>
<Filename Value="D:\LKomponenten\acs\Src\Common\ACS_CDROM.pas"/>
<TopLine Value="121"/>
<UnitName Value="ACS_CDROM"/>
<UsageCount Value="26"/>
</Unit32>
<Unit33>
<CursorPos X="6" Y="236"/>
<Filename Value="D:\LKomponenten\acs\Src\Common\include\windows\ACS_CDROM.inc"/>
<TopLine Value="225"/>
<UsageCount Value="26"/>
</Unit33>
<Unit34>
<CursorPos X="3" Y="292"/>
<Filename Value="D:\LKomponenten\acs\Src\Common\include\windows\akrip32.pas"/>
<TopLine Value="275"/>
<UnitName Value="akrip32"/>
<UsageCount Value="26"/>
</Unit34>
<Unit35>
<CursorPos X="1" Y="18"/>
<Filename Value="D:\LKomponenten\acs\Src\Common\include\windows\CDRip.pas"/>
<TopLine Value="18"/>
<UnitName Value="CDRip"/>
<UsageCount Value="24"/>
</Unit35>
<Unit36>
<CursorPos X="62" Y="133"/>
<Filename Value="D:\SOMETHING\akrip\CDRip.pas"/>
<TopLine Value="99"/>
<UnitName Value="CDRip"/>
<UsageCount Value="12"/>
</Unit36>
<Unit37>
<CursorPos X="1" Y="226"/>
<Filename Value="windows\D\src\LKomponenten\acs\Src\Common\ACS_Mixer.pas"/>
<TopLine Value="198"/>
<UnitName Value="ACS_Mixer"/>
<UsageCount Value="10"/>
</Unit37>
<Unit38>
<CursorPos X="50" Y="361"/>
<Filename Value="windows\D\src\LKomponenten\acs\Src\Common\ACS_Classes.pas"/>
<TopLine Value="1"/>
<UnitName Value="ACS_Classes"/>
<UsageCount Value="10"/>
</Unit38>
</Units>
<PublishOptions>
<Version Value="2"/>
<DestinationDirectory Value="$(TestDir)\publishedproject\"/>
<IgnoreBinaries Value="False"/>
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
<LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/>
</local>
</RunParams>
<RequiredPackages Count="2">
<Item1>
<PackageName Value="LCL"/>
</Item1>
<Item2>
<PackageName Value="LAZ_ACS"/>
<MinVersion Major="2" Minor="3" Valid="True"/>
</Item2>
</RequiredPackages>
<JumpHistory Count="0" HistoryIndex="-1"/>
</ProjectOptions>
<CompilerOptions>
<Version Value="5"/>
<PathDelim Value="\"/>
<SearchPaths>
<SrcPath Value="$(LazarusDir)\lcl\;$(LazarusDir)\lcl\interfaces\$(LCLWidgetType)\"/>
</SearchPaths>
<CodeGeneration>
<Generate Value="Faster"/>
</CodeGeneration>
<Linking>
<Options>
<Win32>
<GraphicApplication Value="True"/>
</Win32>
</Options>
</Linking>
<Other>
<CompilerPath Value="$(CompPath)"/>
</Other>
</CompilerOptions>
<Debugging>
<BreakPoints Count="2">
<Item1>
<Source Value="D:\SRC\LKomponenten\Virtualtrees\Neuer Ordner\windows\D\src\LKomponenten\Virtualtrees\example\minimal\main.pas"/>
<Line Value="58"/>
</Item1>
<Item2>
<Source Value="D:\SRC\LKomponenten\Virtualtrees\Neuer Ordner\windows\D\src\LKomponenten\Virtualtrees\VirtualTrees.pas"/>
<Line Value="7054"/>
</Item2>
</BreakPoints>
<Watches Count="3">
<Item1>
<Expression Value="Input.TotalTime"/>
</Item1>
<Item2>
<Expression Value="Input.FPosition"/>
</Item2>
<Item3>
<Expression Value="tmp"/>
</Item3>
</Watches>
<Exceptions Count="2">
<Item1>
<Name Value="ECodetoolError"/>
</Item1>
<Item2>
<Name Value="EFOpenError"/>
</Item2>
</Exceptions>
</Debugging>
</CONFIG>

View File

@@ -0,0 +1,68 @@
object fMixer: TfMixer
ActiveControl = cbDevice
Caption = 'Mixer'
ClientHeight = 212
ClientWidth = 400
OnCreate = FormCreate
OnHide = FormHide
OnShow = FormShow
PixelsPerInch = 75
HorzScrollBar.Page = 399
VertScrollBar.Page = 211
Left = 379
Height = 212
Top = 347
Width = 400
object TopPanel: TPanel
Align = alTop
BevelOuter = bvNone
ClientHeight = 32
ClientWidth = 400
FullRepaint = False
TabOrder = 0
Height = 32
Width = 400
object lDevice: TLabel
Alignment = taCenter
Caption = 'Ger<65>t'
Color = clNone
ParentColor = False
Height = 13
Top = 8
Width = 21
end
object Label3: TLabel
Align = alRight
Alignment = taCenter
Caption = 'Mixer'
Color = clBtnFace
Font.Color = clInactiveCaption
Font.Height = -25
Font.Style = [fsBold]
ParentColor = False
Left = 331
Height = 32
Width = 69
end
object cbDevice: TComboBox
MaxLength = 0
OnChange = cbDeviceChange
Style = csDropDownList
TabOrder = 0
Left = 48
Height = 21
Top = 4
Width = 136
end
end
object Mixer: TACSMixer
MixerName = 'ESS Technology ESS1988'
top = 368
end
object Timer: TTimer
Enabled = False
Interval = 200
OnTimer = TimerTimer
top = 336
end
end

216
acs/Demos/Mixer/umixer.pas Normal file
View File

@@ -0,0 +1,216 @@
unit uMixer;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ComCtrls,
ExtCtrls, StdCtrls,GraphType, ACS_Mixer, ACS_Converters;
type
{ TfMixer }
TfMixer = class(TForm)
cbDevice: TComboBox;
lDevice: TLabel;
Label3: TLabel;
Mixer: TACSMixer;
Timer: TTimer;
TopPanel: TPanel;
procedure MuteChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormHide(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TimerTimer(Sender: TObject);
procedure ChannelChange(Sender: TObject);
procedure BalanceChange(Sender: TObject);
procedure cbDeviceChange(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
Channels : array of TTrackBar;
Balance : array of TTrackBar;
Muting : array of TCheckBox;
end;
var
fMixer: TfMixer;
implementation
{ TfMixer }
procedure TfMixer.FormCreate(Sender: TObject);
var
i : Integer;
begin
cbDevice.Items.Clear;
for i := 0 to Mixer.DevCount-1 do
begin
Mixer.DevNum := i;
cbDevice.Items.Add(Mixer.MixerName);
end;
cbDevice.ItemIndex := 0;
end;
procedure TfMixer.MuteChange(Sender: TObject);
var
i : Integer;
begin
for i := 0 to length(Muting)-1 do
if Sender = Muting[i] then
begin
Mixer.Mute[i] := TCheckBox(Sender).Checked;
end;
end;
procedure TfMixer.FormHide(Sender: TObject);
begin
Timer.Enabled := False;
end;
procedure TfMixer.FormShow(Sender: TObject);
begin
cbDeviceChange(nil);
end;
procedure TfMixer.TimerTimer(Sender: TObject);
var
i : Integer;
begin
{ for i := 0 to length(Channels)-1 do
begin
if Mixer.IsStereo(i) then
Channels[i].Position := 255-Mixer.Level[i].Left
else
Channels[i].Position := 255-Mixer.Level[i].Main;
end;}
end;
procedure TfMixer.ChannelChange(Sender: TObject);
var
i,tmp : Integer;
outp : TACSMixerLevel;
begin
for i := 0 to length(Channels)-1 do
if Sender = Channels[i] then
begin
if Mixer.IsStereo(i) then
begin
tmp := -Balance[i].Position;
if tmp < 0 then tmp := 0;
tmp := round(((tmp*255)/255)+(255-Channels[i].Position));
if tmp > 255 then
tmp := 255;
Outp.Left := tmp;
tmp := Balance[i].Position;
if tmp < 0 then tmp := 0;
tmp := round(((tmp*255)/255)+(255-Channels[i].Position));
if tmp > 255 then
tmp := 255;
Outp.Right := tmp;
end
else
Outp.Main := Channels[i].Position-255;
Mixer.Level[i] := Outp;
end;
end;
procedure TfMixer.BalanceChange(Sender: TObject);
var
i : Integer;
begin
for i := 0 to length(Channels)-1 do
begin
if Mixer.IsStereo(i) then
Channels[i].Position := 255-Mixer.Level[i].Left
else
Channels[i].Position := 255-Mixer.Level[i].Main;
end;
end;
procedure TfMixer.cbDeviceChange(Sender: TObject);
var
i : Integer;
aComp : TControl;
newPanel : TPanel;
newTrackbar : TTrackbar;
newBevel : TBevel;
newCheckbox : TCheckbox;
newLabel : TLabel;
begin
setlength(Channels,0);
setlength(Balance,0);
setlength(Muting,0);
while fMixer.ControlCount > 1 do
begin
aComp := fMixer.Controls[1];
fMixer.RemoveControl(aComp);
aComp.Free;
end;
for i := 0 to Mixer.ChannelCount-1 do
begin
newPanel := TPanel.Create(nil);
newPanel.Parent := fMixer;
newPanel.Align := alLeft;
newPanel.Width := 80;
newPanel.BevelOuter := bvNone;
newLabel := TLabel.Create(nil);
newLabel.Parent := newPanel;
newLabel.Align := alTop;
newLabel.Alignment := taCenter;
newLabel.Caption := Mixer.ChannelName[i];
newLabel.Height := 30;
newBevel := TBevel.Create(nil);
newBevel.Parent := newPanel;
newBevel.Shape := bsLeftLine;
newBevel.Width := 1;
newBevel.Align := alRight;
newTrackbar := TTrackbar.Create(nil);
newTrackbar.Parent := NewPanel;
newTrackbar.Align := alClient;
newTrackBar.Orientation := trVertical;
newTrackbar.Max := 255;
newTrackbar.Min := 0;
setlength(Channels,i+1);
Channels[i] := newTrackBar;
newTrackBar.OnChange := @ChannelChange;
setlength(Balance,i+1);
Balance[i] := nil;
if Mixer.IsStereo(i) then
begin
newTrackbar := TTrackbar.Create(nil);
newTrackbar.Parent := NewPanel;
newTrackbar.Align := alTop;
newTrackBar.Orientation := trHorizontal;
newTrackBar.Height := 15;
newTrackbar.Max := 100;
newTrackbar.Min := -100;
newTrackBar.Position := 0;
Balance[i] := newTrackBar;
Balance[i].Max := 40;
Channels[i].Position := 255-Mixer.Level[i].Left;
end
else
Channels[i].Position := 255-Mixer.Level[i].Main;
newCheckBox := TCheckBox.Create(nil);
newCheckBox.Parent := newPanel;
newCheckBox.Caption := 'Mute';
newCheckBox.Align := alBottom;
newCheckBox.Checked := Mixer.Mute[i];
newCheckBox.OnChange := @MuteChange;
setlength(Muting,i+1);
Muting[i] := newCheckBox;
end;
Timer.Enabled := True;
Width := Mixer.ChannelCount*80;
end;
initialization
{$I umixer.lrs}
end.

View File

@@ -0,0 +1,197 @@
<?xml version="1.0"?>
<CONFIG>
<ProjectOptions>
<PathDelim Value="\"/>
<Version Value="5"/>
<General>
<MainUnit Value="0"/>
<IconPath Value="./"/>
<TargetFileExt Value=".exe"/>
<ActiveEditorIndexAtStart Value="0"/>
</General>
<LazDoc Paths=""/>
<Units Count="17">
<Unit0>
<Filename Value="cdripper.lpr"/>
<IsPartOfProject Value="True"/>
<UnitName Value="cdripper"/>
<UsageCount Value="22"/>
</Unit0>
<Unit1>
<CursorPos X="12" Y="9"/>
<EditorIndex Value="0"/>
<Filename Value="umain.pas"/>
<ComponentName Value="fMain"/>
<IsPartOfProject Value="True"/>
<Loaded Value="True"/>
<ResourceFilename Value="umain.lrs"/>
<TopLine Value="1"/>
<UnitName Value="uMain"/>
<UsageCount Value="22"/>
</Unit1>
<Unit2>
<CursorPos X="10" Y="190"/>
<Filename Value="D:\LKomponenten\acs\Src\classes\ACS_CDROM.pas"/>
<TopLine Value="176"/>
<UnitName Value="ACS_CDROM"/>
<UsageCount Value="10"/>
</Unit2>
<Unit3>
<CursorPos X="1" Y="688"/>
<Filename Value="D:\LKomponenten\acs\Src\classes\ACS_Classes.pas"/>
<TopLine Value="671"/>
<UnitName Value="ACS_Classes"/>
<UsageCount Value="10"/>
</Unit3>
<Unit4>
<CursorPos X="1" Y="2193"/>
<Filename Value="D:\lazarus\lcl\include\control.inc"/>
<TopLine Value="2176"/>
<UsageCount Value="10"/>
</Unit4>
<Unit5>
<CursorPos X="1" Y="55"/>
<Filename Value="D:\lazarus\lcl\include\listitems.inc"/>
<TopLine Value="38"/>
<UsageCount Value="10"/>
</Unit5>
<Unit6>
<CursorPos X="1" Y="461"/>
<Filename Value="D:\lazarus\lcl\include\listitem.inc"/>
<TopLine Value="444"/>
<UsageCount Value="10"/>
</Unit6>
<Unit7>
<CursorPos X="1" Y="508"/>
<Filename Value="D:\LKomponenten\acs\Src\classes\ACS_File.pas"/>
<TopLine Value="491"/>
<UnitName Value="ACS_File"/>
<UsageCount Value="10"/>
</Unit7>
<Unit8>
<CursorPos X="1" Y="257"/>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\ACS_Vorbis.pas"/>
<TopLine Value="242"/>
<UnitName Value="ACS_Vorbis"/>
<UsageCount Value="10"/>
</Unit8>
<Unit9>
<CursorPos X="29" Y="255"/>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\general\VorbisFile.pas"/>
<TopLine Value="226"/>
<UnitName Value="VorbisFile"/>
<UsageCount Value="10"/>
</Unit9>
<Unit10>
<CursorPos X="19" Y="176"/>
<Filename Value="D:\LKomponenten\acs\Src\classes\ACS_Audio.pas"/>
<TopLine Value="1"/>
<UnitName Value="ACS_Audio"/>
<UsageCount Value="10"/>
</Unit10>
<Unit11>
<CursorPos X="78" Y="27"/>
<Filename Value="D:\LKomponenten\acs\Src\classes\ACS_Strings.pas"/>
<TopLine Value="12"/>
<UnitName Value="ACS_Strings"/>
<UsageCount Value="10"/>
</Unit11>
<Unit12>
<CursorPos X="31" Y="200"/>
<Filename Value="D:\LKomponenten\acs\Src\classes\windows\ACS_CDROM.inc"/>
<TopLine Value="181"/>
<UsageCount Value="10"/>
</Unit12>
<Unit13>
<CursorPos X="1" Y="1428"/>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\ACS_Wave.pas"/>
<TopLine Value="1411"/>
<UnitName Value="ACS_Wave"/>
<UsageCount Value="10"/>
</Unit13>
<Unit14>
<CursorPos X="14" Y="1995"/>
<Filename Value="D:\lazarus\lcl\lresources.pp"/>
<TopLine Value="1986"/>
<UnitName Value="LResources"/>
<UsageCount Value="10"/>
</Unit14>
<Unit15>
<CursorPos X="1" Y="1490"/>
<Filename Value="D:\lazarus\lcl\include\application.inc"/>
<TopLine Value="1487"/>
<UsageCount Value="10"/>
</Unit15>
<Unit16>
<CursorPos X="20" Y="118"/>
<Filename Value="umain.lfm"/>
<SyntaxHighlighter Value="LFM"/>
<TopLine Value="86"/>
<UsageCount Value="10"/>
</Unit16>
</Units>
<PublishOptions>
<Version Value="2"/>
<DestinationDirectory Value="$(TestDir)\publishedproject\"/>
<IgnoreBinaries Value="False"/>
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
<LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/>
</local>
</RunParams>
<RequiredPackages Count="2">
<Item1>
<PackageName Value="LCL"/>
</Item1>
<Item2>
<PackageName Value="LAZ_ACS"/>
<MinVersion Major="2" Minor="4" Valid="True"/>
</Item2>
</RequiredPackages>
<JumpHistory Count="0" HistoryIndex="-1"/>
</ProjectOptions>
<CompilerOptions>
<Version Value="5"/>
<PathDelim Value="\"/>
<SearchPaths>
<SrcPath Value="$(LazarusDir)\lcl\;$(LazarusDir)\lcl\interfaces\$(LCLWidgetType)\"/>
</SearchPaths>
<CodeGeneration>
<Generate Value="Faster"/>
</CodeGeneration>
<Linking>
<Options>
<Win32>
<GraphicApplication Value="True"/>
</Win32>
</Options>
</Linking>
<Other>
<CompilerPath Value="$(CompPath)"/>
</Other>
</CompilerOptions>
<Debugging>
<BreakPoints Count="2">
<Item1>
<Source Value="D:\LKomponenten\acs\Src\classes\ACS_File.pas"/>
<Line Value="378"/>
</Item1>
<Item2>
<Source Value="D:\LKomponenten\acs\Src\classes\ACS_Classes.pas"/>
<Line Value="607"/>
</Item2>
</BreakPoints>
<Watches Count="2">
<Item1>
<Expression Value="HandleMultiSelect"/>
</Item1>
<Item2>
<Expression Value="FDelayMax"/>
</Item2>
</Watches>
</Debugging>
</CONFIG>

119
acs/Demos/Ripper/umain.lfm Normal file
View File

@@ -0,0 +1,119 @@
object fMain: TfMain
ActiveControl = lvTracks
Caption = 'CD Ripper'
ClientHeight = 300
ClientWidth = 400
OnCreate = FormCreate
PixelsPerInch = 75
HorzScrollBar.Page = 399
VertScrollBar.Page = 299
Left = 271
Height = 300
Top = 150
Width = 400
object Label1: TLabel
Caption = 'Drive'
Color = clNone
ParentColor = False
Left = 8
Height = 13
Top = 7
Width = 31
end
object Label2: TLabel
Caption = 'Output Format'
Color = clNone
ParentColor = False
Left = 265
Height = 13
Top = 7
Width = 80
end
object lvTracks: TListView
Anchors = [akTop, akLeft, akRight, akBottom]
Columns = <
item
Caption = 'Track'
Width = 10
end
item
Caption = 'Tracktitle'
Width = 10
end
item
Caption = 'Length'
Width = 10
end>
MultiSelect = True
RowSelect = True
ViewStyle = vsReport
Height = 250
Top = 34
Width = 400
end
object cbDrives: TComboBox
MaxLength = 0
OnChange = cbDrivesChange
Style = csDropDownList
TabOrder = 1
Left = 40
Height = 21
Top = 4
Width = 132
end
object bRip: TButton
BorderSpacing.InnerBorder = 2
Caption = 'Rip selected'
OnClick = Button1Click
TabOrder = 2
Left = 184
Height = 21
Top = 4
Width = 75
end
object cbFormat: TComboBox
ItemIndex = 2
Items.Strings = (
'ogg'
'mp3'
'wav'
)
MaxLength = 0
Style = csDropDownList
TabOrder = 3
Text = 'wav'
Left = 340
Height = 21
Top = 4
Width = 61
end
object ProgressBar: TProgressBar
Align = alBottom
Max = 100
Height = 12
Top = 288
Width = 400
end
object Timer: TTimer
OnTimer = TimerTimer
left = 76
top = 4
end
object SelectDirectoryDialog: TSelectDirectoryDialog
Title = 'Select Directory'
FilterIndex = 0
Title = 'Select Directory'
left = 144
top = 4
end
object FileOut: TACSFileOut
Input = CDIn
OnDone = FileOutDone
left = 112
top = 4
end
object CDIn: TACSCDIn
left = 44
top = 4
end
end

126
acs/Demos/Ripper/umain.pas Normal file
View File

@@ -0,0 +1,126 @@
unit uMain;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ComCtrls, StdCtrls, ACS_CDROM, ExtCtrls, Buttons,
ACS_File;
type
{ TfMain }
TfMain = class(TForm)
bRip: TButton;
cbDrives: TComboBox;
cbFormat: TComboBox;
CDIn: TACSCDIn;
FileOut: TACSFileOut;
Label1: TLabel;
Label2: TLabel;
lvTracks: TListView;
ProgressBar: TProgressBar;
SelectDirectoryDialog: TSelectDirectoryDialog;
Timer: TTimer;
procedure Button1Click(Sender: TObject);
procedure FileOutDone(Sender: TComponent);
procedure FormCreate(Sender: TObject);
procedure TimerTimer(Sender: TObject);
procedure cbDrivesChange(Sender: TObject);
procedure RipNextTrack;
private
{ private declarations }
FDirectory : string;
FTracksCount : Integer;
public
{ public declarations }
end;
var
fMain: TfMain;
implementation
{ TfMain }
procedure TfMain.FormCreate(Sender: TObject);
var
i : Integer;
begin
lvTracks.Column[0].Width := 60;
lvTracks.Column[1].Width := 260;
lvTracks.Column[2].Width := 120;
for i := 0 to CDIn.DrivesCount-1 do
begin
CDIn.CurrentDrive := i;
cbDrives.Items.Add(CDIn.DriveName);
end;
cbDrives.ItemIndex := 0;
end;
procedure TfMain.Button1Click(Sender: TObject);
begin
if SelectDirectoryDialog.Execute then
begin
FDirectory := SelectDirectoryDialog.FileName;
RipNextTrack;
end;
end;
procedure TfMain.FileOutDone(Sender: TComponent);
begin
RipNextTrack;
end;
procedure TfMain.TimerTimer(Sender: TObject);
var
new : TListItem;
i : Integer;
begin
if not ((CDIn.Status = cdsReady) and (CDIn.TracksCount <> FTracksCount)) then
exit;
lvTracks.Items.Clear;
for i := 0 to CDIn.Trackscount-1 do
begin
new := lvTracks.Items.Add;
new.Caption := IntToStr(i);
if CDIn.Tracks[i].TrackType = ttAudio then
new.SubItems.Add(Format('Track %d',[i+1]))
else
new.SubItems.Add(Format('Datatrack %d',[i+1]));
new.SubItems.Add(Format('%.2d:%.2d',[CDIn.Tracks[i].TrackLength.Minute,CDIn.Tracks[i].TrackLength.Second]));
end;
FTracksCount := CDIn.TracksCount;
end;
procedure TfMain.cbDrivesChange(Sender: TObject);
begin
CDIn.CurrentDrive := cbDrives.ItemIndex;
end;
procedure TfMain.RipNextTrack;
var
i : Integer;
begin
ProgressBar.Position := 0;
bRip.Enabled := True;
for i := 0 to lvTracks.Items.Count-1 do
if lvTracks.Items[i].Focused and (CDIn.Tracks[i].TrackType = ttAudio) then
begin
bRip.Enabled := False;
CDIn.StartTrack := i;
CDIn.EndTrack := i+1;
FileOut.FileName := FDirectory+DirectorySeparator+lvTracks.Items[i].SubItems[0]+'.'+cbFormat.Text;
FileOut.Run;
lvTracks.Items[i].Focused := False;
exit;
end;
end;
initialization
{$I umain.lrs}
end.

View File

@@ -0,0 +1,265 @@
<?xml version="1.0"?>
<CONFIG>
<ProjectOptions>
<PathDelim Value="\"/>
<Version Value="5"/>
<General>
<MainUnit Value="0"/>
<IconPath Value="./"/>
<TargetFileExt Value=".exe"/>
<Title Value="project1"/>
<ActiveEditorIndexAtStart Value="0"/>
</General>
<LazDoc Paths=""/>
<Units Count="27">
<Unit0>
<CursorPos X="36" Y="15"/>
<Filename Value="cdplayer.lpr"/>
<IsPartOfProject Value="True"/>
<TopLine Value="1"/>
<UnitName Value="cdplayer"/>
<UsageCount Value="42"/>
</Unit0>
<Unit1>
<CursorPos X="22" Y="73"/>
<EditorIndex Value="0"/>
<Filename Value="umain.pas"/>
<ComponentName Value="Form1"/>
<IsPartOfProject Value="True"/>
<Loaded Value="True"/>
<ResourceFilename Value="umain.lrs"/>
<TopLine Value="57"/>
<UnitName Value="uMain"/>
<UsageCount Value="42"/>
</Unit1>
<Unit2>
<CursorPos X="1" Y="436"/>
<Filename Value="D:\LKomponenten\acs\Src\classes\ACS_Audio.pas"/>
<TopLine Value="409"/>
<UnitName Value="ACS_Audio"/>
<UsageCount Value="20"/>
</Unit2>
<Unit3>
<CursorPos X="1" Y="241"/>
<Filename Value="D:\LKomponenten\acs\Src\drivers\windows\ACS_Audio.inc"/>
<TopLine Value="208"/>
<UsageCount Value="17"/>
</Unit3>
<Unit4>
<CursorPos X="1" Y="1823"/>
<Filename Value="D:\lazarus\lcl\include\control.inc"/>
<TopLine Value="1808"/>
<UsageCount Value="10"/>
</Unit4>
<Unit5>
<CursorPos X="1" Y="58"/>
<Filename Value="D:\lazarus\lcl\include\buttoncontrol.inc"/>
<TopLine Value="43"/>
<UsageCount Value="10"/>
</Unit5>
<Unit6>
<CursorPos X="1" Y="242"/>
<Filename Value="D:\lazarus\lcl\include\buttons.inc"/>
<TopLine Value="227"/>
<UsageCount Value="10"/>
</Unit6>
<Unit7>
<CursorPos X="27" Y="74"/>
<Filename Value="D:\LKomponenten\acs\Src\drivers\ACS_StdAudio.pas"/>
<TopLine Value="70"/>
<UnitName Value="ACS_StdAudio"/>
<UsageCount Value="18"/>
</Unit7>
<Unit8>
<CursorPos X="1" Y="231"/>
<Filename Value="D:\LKomponenten\acs\Src\classes\ACS_File.pas"/>
<TopLine Value="214"/>
<UnitName Value="ACS_File"/>
<UsageCount Value="19"/>
</Unit8>
<Unit9>
<CursorPos X="68" Y="8"/>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\ACS_Allformats.pas"/>
<TopLine Value="1"/>
<UnitName Value="ACS_AllFormats"/>
<UsageCount Value="16"/>
</Unit9>
<Unit10>
<CursorPos X="18" Y="31"/>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\ACS_DSAudio.pas"/>
<TopLine Value="31"/>
<UnitName Value="ACS_DSAudio"/>
<UsageCount Value="9"/>
</Unit10>
<Unit11>
<CursorPos X="20" Y="318"/>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\acs_dsfiles.pas"/>
<TopLine Value="298"/>
<UnitName Value="ACS_DSFiles"/>
<UsageCount Value="12"/>
</Unit11>
<Unit12>
<CursorPos X="1" Y="474"/>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\ACS_Vorbis.pas"/>
<TopLine Value="459"/>
<UnitName Value="ACS_Vorbis"/>
<UsageCount Value="16"/>
</Unit12>
<Unit13>
<CursorPos X="14" Y="204"/>
<EditorIndex Value="1"/>
<Filename Value="D:\LKomponenten\acs\Src\classes\ACS_Classes.pas"/>
<Loaded Value="True"/>
<TopLine Value="190"/>
<UnitName Value="acs_classes"/>
<UsageCount Value="18"/>
</Unit13>
<Unit14>
<CursorPos X="54" Y="48"/>
<Filename Value="D:\LKomponenten\acs\Src\classes\ACS_Strings.pas"/>
<TopLine Value="22"/>
<UnitName Value="ACS_Strings"/>
<UsageCount Value="16"/>
</Unit14>
<Unit15>
<CursorPos X="1" Y="424"/>
<Filename Value="D:\LKomponenten\acs\Src\drivers\ACS_DXAudio.pas"/>
<TopLine Value="410"/>
<UnitName Value="ACS_DXAudio"/>
<UsageCount Value="16"/>
</Unit15>
<Unit16>
<CursorPos X="25" Y="152"/>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\ACS_Wave.pas"/>
<TopLine Value="138"/>
<UnitName Value="ACS_Wave"/>
<UsageCount Value="10"/>
</Unit16>
<Unit17>
<CursorPos X="23" Y="2003"/>
<Filename Value="D:\lazarus\lcl\lresources.pp"/>
<TopLine Value="1986"/>
<UnitName Value="LResources"/>
<UsageCount Value="10"/>
</Unit17>
<Unit18>
<CursorPos X="1" Y="351"/>
<Filename Value="D:\LKomponenten\acs\Demos\Lazarus\Mediaplayer\uplayer.pas"/>
<HasResources Value="True"/>
<TopLine Value="329"/>
<UnitName Value="uPlayer"/>
<UsageCount Value="10"/>
</Unit18>
<Unit19>
<CursorPos X="13" Y="121"/>
<Filename Value="D:\LKomponenten\acs\Demos\Win32\CDPlayer\Main.pas"/>
<TopLine Value="98"/>
<UnitName Value="Main"/>
<UsageCount Value="10"/>
</Unit19>
<Unit20>
<CursorPos X="6" Y="104"/>
<Filename Value="D:\LKomponenten\acs\Demos\Win32\OggPlayer\Main.pas"/>
<TopLine Value="77"/>
<UnitName Value="Main"/>
<UsageCount Value="10"/>
</Unit20>
<Unit21>
<CursorPos X="13" Y="28"/>
<Filename Value="D:\LKomponenten\acs\Demos\Win32\AudioPlayer\Main.pas"/>
<TopLine Value="28"/>
<UnitName Value="Main"/>
<UsageCount Value="10"/>
</Unit21>
<Unit22>
<CursorPos X="5" Y="2678"/>
<Filename Value="D:\fpc\packages\extra\winunits\activex.pp"/>
<TopLine Value="2661"/>
<UnitName Value="activex"/>
<UsageCount Value="10"/>
</Unit22>
<Unit23>
<CursorPos X="1" Y="201"/>
<EditorIndex Value="2"/>
<Filename Value="D:\LKomponenten\acs\Src\classes\windows\acs_cdrom.inc"/>
<Loaded Value="True"/>
<TopLine Value="187"/>
<UsageCount Value="10"/>
</Unit23>
<Unit24>
<CursorPos X="9" Y="61"/>
<Filename Value="D:\LKomponenten\acs\Src\classes\ACS_CDROM.pas"/>
<TopLine Value="44"/>
<UnitName Value="ACS_CDROM"/>
<UsageCount Value="10"/>
</Unit24>
<Unit25>
<CursorPos X="1" Y="238"/>
<Filename Value="D:\LKomponenten\acs\Src\classes\linux\ACS_CDROM.inc"/>
<TopLine Value="226"/>
<UsageCount Value="10"/>
</Unit25>
<Unit26>
<CursorPos X="3" Y="32"/>
<Filename Value="D:\lazarus\lcl\LCLClasses.pp"/>
<TopLine Value="15"/>
<UnitName Value="LCLClasses"/>
<UsageCount Value="10"/>
</Unit26>
</Units>
<PublishOptions>
<Version Value="2"/>
<DestinationDirectory Value="$(TestDir)\publishedproject\"/>
<IgnoreBinaries Value="False"/>
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
<LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/>
</local>
</RunParams>
<RequiredPackages Count="2">
<Item1>
<PackageName Value="LCL"/>
</Item1>
<Item2>
<PackageName Value="LAZ_ACS"/>
</Item2>
</RequiredPackages>
<JumpHistory Count="1" HistoryIndex="0">
<Position1>
<Filename Value="D:\LKomponenten\acs\Src\classes\windows\ACS_CDROM.inc"/>
<Caret Line="201" Column="1" TopLine="187"/>
</Position1>
</JumpHistory>
</ProjectOptions>
<CompilerOptions>
<Version Value="5"/>
<PathDelim Value="\"/>
<SearchPaths>
<SrcPath Value="$(LazarusDir)\lcl\;$(LazarusDir)\lcl\interfaces\$(LCLWidgetType)\"/>
</SearchPaths>
<CodeGeneration>
<Generate Value="Faster"/>
</CodeGeneration>
<Linking>
<Options>
<Win32>
<GraphicApplication Value="True"/>
</Win32>
</Options>
</Linking>
<Other>
<CompilerPath Value="$(CompPath)"/>
</Other>
</CompilerOptions>
<Debugging>
<Watches Count="1">
<Item1>
<Expression Value="CDIn1.EndTrack"/>
</Item1>
</Watches>
</Debugging>
</CONFIG>

View File

View File

@@ -0,0 +1,466 @@
object Form1: TForm1
ActiveControl = btOpen
Caption = 'CD Player'
ClientHeight = 99
ClientWidth = 189
OnCreate = FormCreate
PixelsPerInch = 96
HorzScrollBar.Page = 188
VertScrollBar.Page = 98
Left = 298
Height = 99
Top = 268
Width = 189
object Panel1: TPanel
BevelOuter = bvLowered
ClientHeight = 64
ClientWidth = 182
FullRepaint = False
TabOrder = 0
Left = 4
Height = 64
Width = 182
object lTime: TLabel
AutoSize = False
Caption = '00:00:00'
Color = clNone
Font.Height = -25
ParentColor = False
Left = 68
Height = 29
Top = 24
Width = 108
end
object lTrack: TLabel
Caption = '01'
Color = clNone
Font.Height = -37
ParentColor = False
Left = 16
Height = 46
Top = 17
Width = 41
end
object Label1: TLabel
Caption = 'Track'
Color = clNone
Font.Height = -9
ParentColor = False
Left = 4
Height = 12
Top = 14
Width = 24
end
object Label2: TLabel
Caption = 'remain'
Color = clNone
Font.Height = -9
ParentColor = False
Left = 92
Height = 12
Top = 14
Width = 29
end
object Label3: TLabel
Caption = 'Tracks'
Color = clNone
Font.Height = -9
ParentColor = False
Left = 4
Height = 12
Top = 2
Width = 28
end
object lTracksCount: TLabel
Caption = '09'
Color = clNone
ParentColor = False
Left = 44
Height = 14
Top = 1
Width = 13
end
object Label5: TLabel
Caption = 'Time left'
Color = clNone
Font.Height = -9
ParentColor = False
Left = 60
Height = 12
Width = 38
end
object lLeft: TLabel
Alignment = taRightJustify
Caption = '00:00:00'
Color = clNone
Font.Height = -12
ParentColor = False
Left = 124
Height = 15
Top = 1
Width = 51
end
object Progress: TProgressBar
Align = alBottom
Max = 1000
Smooth = True
Left = 1
Height = 8
Top = 55
Width = 180
end
end
object btOpen: TBitBtn
BorderSpacing.InnerBorder = 2
Glyph.Data = {
970300002F2A2058504D202A2F0D0A7374617469632063686172202A5069786D
61705B5D203D207B0D0A2231362031362031362032222C0D0A22303020632023
303830383130222C0D0A22303120632023313831383231222C0D0A2230322063
20677261793136222C0D0A22303320632023443644364345222C0D0A22303420
632067726179313030222C0D0A22303520632067726179313030222C0D0A2230
3620632067726179313030222C0D0A22303720632067726179313030222C0D0A
22303820632067726179313030222C0D0A22303920632067726179313030222C
0D0A22313020632067726179313030222C0D0A22313120632067726179313030
222C0D0A22313220632067726179313030222C0D0A2231332063206772617931
3030222C0D0A22313420632067726179313030222C0D0A223135206320677261
79313030222C0D0A223033303330333033303330333033303330333033303330
333033303330333033222C0D0A22303330333033303330333033303330333033
3033303330333033303330333033222C0D0A2230333033303330333033303330
33303330333033303330333033303330333033222C0D0A223033303330333033
303330333033303030333033303330333033303330333033222C0D0A22303330
3330333033303330333030303130303033303330333033303330333033222C0D
0A22303330333033303330333030303130313031303030333033303330333033
3033222C0D0A2230333033303330333030303130313031303130313030303330
33303330333033222C0D0A223033303330333030303130313031303130313031
303130303033303330333033222C0D0A22303330333032303230323032303230
3230323032303230323032303330333033222C0D0A2230333033303330333033
30333033303330333033303330333033303330333033222C0D0A223033303330
303030303030303030303030303030303030303030303330333033222C0D0A22
3033303330303031303130313031303130313031303130313032303330333033
222C0D0A22303330333032303230323032303230323032303230323032303230
3330333033222C0D0A2230333033303330333033303330333033303330333033
30333033303330333033222C0D0A223033303330333033303330333033303330
333033303330333033303330333033222C0D0A22303330333033303330333033
3033303330333033303330333033303330333033220D0A7D3B0D0A
}
Layout = blGlyphTop
NumGlyphs = 0
OnClick = OpenClick
TabOrder = 1
Left = 4
Height = 26
Top = 67
Width = 28
end
object btRew: TBitBtn
BorderSpacing.InnerBorder = 2
Glyph.Data = {
970300002F2A2058504D202A2F0D0A7374617469632063686172202A5069786D
61705B5D203D207B0D0A2231362031362031362032222C0D0A22303020632023
303830383130222C0D0A22303120632023313831383231222C0D0A2230322063
20677261793136222C0D0A22303320632023443644364345222C0D0A22303420
632067726179313030222C0D0A22303520632067726179313030222C0D0A2230
3620632067726179313030222C0D0A22303720632067726179313030222C0D0A
22303820632067726179313030222C0D0A22303920632067726179313030222C
0D0A22313020632067726179313030222C0D0A22313120632067726179313030
222C0D0A22313220632067726179313030222C0D0A2231332063206772617931
3030222C0D0A22313420632067726179313030222C0D0A223135206320677261
79313030222C0D0A223033303330333033303330333033303330333033303330
333033303330333033222C0D0A22303330333033303330333033303330333033
3033303330333033303330333033222C0D0A2230333033303330333033303330
33303330333033303330333033303330333033222C0D0A223033303330333030
303030303033303330333033303330303030303330333033222C0D0A22303330
3330333030303130323033303330333033303030313032303330333033222C0D
0A22303330333033303030313032303330333033303030313031303230333033
3033222C0D0A2230333033303330303031303230333033303030313031303130
32303330333033222C0D0A223033303330333030303130323033303030313031
303130313032303330333033222C0D0A22303330333033303030313032303330
3230313031303130313032303330333033222C0D0A2230333033303330303031
30323033303330323031303130313032303330333033222C0D0A223033303330
333030303130323033303330333032303130313032303330333033222C0D0A22
3033303330333030303130323033303330333033303230313032303330333033
222C0D0A22303330333033303230323032303330333033303330333032303230
3330333033222C0D0A2230333033303330333033303330333033303330333033
30333033303330333033222C0D0A223033303330333033303330333033303330
333033303330333033303330333033222C0D0A22303330333033303330333033
3033303330333033303330333033303330333033220D0A7D3B0D0A
}
NumGlyphs = 0
OnClick = btRewClick
TabOrder = 2
Left = 32
Height = 26
Top = 67
Width = 28
end
object btFfw: TBitBtn
BorderSpacing.InnerBorder = 2
Glyph.Data = {
970300002F2A2058504D202A2F0D0A7374617469632063686172202A5069786D
61705B5D203D207B0D0A2231362031362031362032222C0D0A22303020632023
303830383130222C0D0A22303120632023313831383231222C0D0A2230322063
20677261793136222C0D0A22303320632023443644364345222C0D0A22303420
632067726179313030222C0D0A22303520632067726179313030222C0D0A2230
3620632067726179313030222C0D0A22303720632067726179313030222C0D0A
22303820632067726179313030222C0D0A22303920632067726179313030222C
0D0A22313020632067726179313030222C0D0A22313120632067726179313030
222C0D0A22313220632067726179313030222C0D0A2231332063206772617931
3030222C0D0A22313420632067726179313030222C0D0A223135206320677261
79313030222C0D0A223033303330333033303330333033303330333033303330
333033303330333033222C0D0A22303330333033303330333033303330333033
3033303330333033303330333033222C0D0A2230333033303330333033303330
33303330333033303330333033303330333033222C0D0A223033303330333030
303030333033303330333033303030303030303330333033222C0D0A22303330
3330333032303130303033303330333033303230313030303330333033222C0D
0A22303330333033303230313031303030333033303330323031303030333033
3033222C0D0A2230333033303330323031303130313030303330333032303130
30303330333033222C0D0A223033303330333032303130313031303130303033
303230313030303330333033222C0D0A22303330333033303230313031303130
3130323033303230313030303330333033222C0D0A2230333033303330323031
30313031303230333033303230313030303330333033222C0D0A223033303330
333032303130313032303330333033303230313030303330333033222C0D0A22
3033303330333032303130323033303330333033303230313030303330333033
222C0D0A22303330333033303230323033303330333033303330323032303230
3330333033222C0D0A2230333033303330333033303330333033303330333033
30333033303330333033222C0D0A223033303330333033303330333033303330
333033303330333033303330333033222C0D0A22303330333033303330333033
3033303330333033303330333033303330333033220D0A7D3B0D0A
}
Layout = blGlyphRight
NumGlyphs = 0
OnClick = btFfwClick
TabOrder = 3
Left = 60
Height = 26
Top = 67
Width = 28
end
object btPlay: TBitBtn
BorderSpacing.InnerBorder = 2
Glyph.Data = {
911300002F2A2058504D202A2F0D0A7374617469632063686172202A5069786D
61705B5D203D207B0D0A223136203136203235362033222C0D0A223030302063
2023304330463132222C0D0A2230303120632023314231443230222C0D0A2230
303220632023324132443244222C0D0A2230303320632023443444304338222C
0D0A22303034206320626C61636B222C0D0A22303035206320626C61636B222C
0D0A22303036206320626C61636B222C0D0A22303037206320626C61636B222C
0D0A22303038206320626C61636B222C0D0A22303039206320626C61636B222C
0D0A22303130206320626C61636B222C0D0A22303131206320626C61636B222C
0D0A22303132206320626C61636B222C0D0A22303133206320626C61636B222C
0D0A22303134206320626C61636B222C0D0A22303135206320626C61636B222C
0D0A22303136206320626C61636B222C0D0A22303137206320626C61636B222C
0D0A22303138206320626C61636B222C0D0A22303139206320626C61636B222C
0D0A22303230206320626C61636B222C0D0A22303231206320626C61636B222C
0D0A22303232206320626C61636B222C0D0A22303233206320626C61636B222C
0D0A22303234206320626C61636B222C0D0A22303235206320626C61636B222C
0D0A22303236206320626C61636B222C0D0A22303237206320626C61636B222C
0D0A22303238206320626C61636B222C0D0A22303239206320626C61636B222C
0D0A22303330206320626C61636B222C0D0A22303331206320626C61636B222C
0D0A22303332206320626C61636B222C0D0A22303333206320626C61636B222C
0D0A22303334206320626C61636B222C0D0A22303335206320626C61636B222C
0D0A22303336206320626C61636B222C0D0A22303337206320626C61636B222C
0D0A22303338206320626C61636B222C0D0A22303339206320626C61636B222C
0D0A22303430206320626C61636B222C0D0A22303431206320626C61636B222C
0D0A22303432206320626C61636B222C0D0A22303433206320626C61636B222C
0D0A22303434206320626C61636B222C0D0A22303435206320626C61636B222C
0D0A22303436206320626C61636B222C0D0A22303437206320626C61636B222C
0D0A22303438206320626C61636B222C0D0A22303439206320626C61636B222C
0D0A22303530206320626C61636B222C0D0A22303531206320626C61636B222C
0D0A22303532206320626C61636B222C0D0A22303533206320626C61636B222C
0D0A22303534206320626C61636B222C0D0A22303535206320626C61636B222C
0D0A22303536206320626C61636B222C0D0A22303537206320626C61636B222C
0D0A22303538206320626C61636B222C0D0A22303539206320626C61636B222C
0D0A22303630206320626C61636B222C0D0A22303631206320626C61636B222C
0D0A22303632206320626C61636B222C0D0A22303633206320626C61636B222C
0D0A22303634206320626C61636B222C0D0A22303635206320626C61636B222C
0D0A22303636206320626C61636B222C0D0A22303637206320626C61636B222C
0D0A22303638206320626C61636B222C0D0A22303639206320626C61636B222C
0D0A22303730206320626C61636B222C0D0A22303731206320626C61636B222C
0D0A22303732206320626C61636B222C0D0A22303733206320626C61636B222C
0D0A22303734206320626C61636B222C0D0A22303735206320626C61636B222C
0D0A22303736206320626C61636B222C0D0A22303737206320626C61636B222C
0D0A22303738206320626C61636B222C0D0A22303739206320626C61636B222C
0D0A22303830206320626C61636B222C0D0A22303831206320626C61636B222C
0D0A22303832206320626C61636B222C0D0A22303833206320626C61636B222C
0D0A22303834206320626C61636B222C0D0A22303835206320626C61636B222C
0D0A22303836206320626C61636B222C0D0A22303837206320626C61636B222C
0D0A22303838206320626C61636B222C0D0A22303839206320626C61636B222C
0D0A22303930206320626C61636B222C0D0A22303931206320626C61636B222C
0D0A22303932206320626C61636B222C0D0A22303933206320626C61636B222C
0D0A22303934206320626C61636B222C0D0A22303935206320626C61636B222C
0D0A22303936206320626C61636B222C0D0A22303937206320626C61636B222C
0D0A22303938206320626C61636B222C0D0A22303939206320626C61636B222C
0D0A22313030206320626C61636B222C0D0A22313031206320626C61636B222C
0D0A22313032206320626C61636B222C0D0A22313033206320626C61636B222C
0D0A22313034206320626C61636B222C0D0A22313035206320626C61636B222C
0D0A22313036206320626C61636B222C0D0A22313037206320626C61636B222C
0D0A22313038206320626C61636B222C0D0A22313039206320626C61636B222C
0D0A22313130206320626C61636B222C0D0A22313131206320626C61636B222C
0D0A22313132206320626C61636B222C0D0A22313133206320626C61636B222C
0D0A22313134206320626C61636B222C0D0A22313135206320626C61636B222C
0D0A22313136206320626C61636B222C0D0A22313137206320626C61636B222C
0D0A22313138206320626C61636B222C0D0A22313139206320626C61636B222C
0D0A22313230206320626C61636B222C0D0A22313231206320626C61636B222C
0D0A22313232206320626C61636B222C0D0A22313233206320626C61636B222C
0D0A22313234206320626C61636B222C0D0A22313235206320626C61636B222C
0D0A22313236206320626C61636B222C0D0A22313237206320626C61636B222C
0D0A22313238206320626C61636B222C0D0A22313239206320626C61636B222C
0D0A22313330206320626C61636B222C0D0A22313331206320626C61636B222C
0D0A22313332206320626C61636B222C0D0A22313333206320626C61636B222C
0D0A22313334206320626C61636B222C0D0A22313335206320626C61636B222C
0D0A22313336206320626C61636B222C0D0A22313337206320626C61636B222C
0D0A22313338206320626C61636B222C0D0A22313339206320626C61636B222C
0D0A22313430206320626C61636B222C0D0A22313431206320626C61636B222C
0D0A22313432206320626C61636B222C0D0A22313433206320626C61636B222C
0D0A22313434206320626C61636B222C0D0A22313435206320626C61636B222C
0D0A22313436206320626C61636B222C0D0A22313437206320626C61636B222C
0D0A22313438206320626C61636B222C0D0A22313439206320626C61636B222C
0D0A22313530206320626C61636B222C0D0A22313531206320626C61636B222C
0D0A22313532206320626C61636B222C0D0A22313533206320626C61636B222C
0D0A22313534206320626C61636B222C0D0A22313535206320626C61636B222C
0D0A22313536206320626C61636B222C0D0A22313537206320626C61636B222C
0D0A22313538206320626C61636B222C0D0A22313539206320626C61636B222C
0D0A22313630206320626C61636B222C0D0A22313631206320626C61636B222C
0D0A22313632206320626C61636B222C0D0A22313633206320626C61636B222C
0D0A22313634206320626C61636B222C0D0A22313635206320626C61636B222C
0D0A22313636206320626C61636B222C0D0A22313637206320626C61636B222C
0D0A22313638206320626C61636B222C0D0A22313639206320626C61636B222C
0D0A22313730206320626C61636B222C0D0A22313731206320626C61636B222C
0D0A22313732206320626C61636B222C0D0A22313733206320626C61636B222C
0D0A22313734206320626C61636B222C0D0A22313735206320626C61636B222C
0D0A22313736206320626C61636B222C0D0A22313737206320626C61636B222C
0D0A22313738206320626C61636B222C0D0A22313739206320626C61636B222C
0D0A22313830206320626C61636B222C0D0A22313831206320626C61636B222C
0D0A22313832206320626C61636B222C0D0A22313833206320626C61636B222C
0D0A22313834206320626C61636B222C0D0A22313835206320626C61636B222C
0D0A22313836206320626C61636B222C0D0A22313837206320626C61636B222C
0D0A22313838206320626C61636B222C0D0A22313839206320626C61636B222C
0D0A22313930206320626C61636B222C0D0A22313931206320626C61636B222C
0D0A22313932206320626C61636B222C0D0A22313933206320626C61636B222C
0D0A22313934206320626C61636B222C0D0A22313935206320626C61636B222C
0D0A22313936206320626C61636B222C0D0A22313937206320626C61636B222C
0D0A22313938206320626C61636B222C0D0A22313939206320626C61636B222C
0D0A22323030206320626C61636B222C0D0A22323031206320626C61636B222C
0D0A22323032206320626C61636B222C0D0A22323033206320626C61636B222C
0D0A22323034206320626C61636B222C0D0A22323035206320626C61636B222C
0D0A22323036206320626C61636B222C0D0A22323037206320626C61636B222C
0D0A22323038206320626C61636B222C0D0A22323039206320626C61636B222C
0D0A22323130206320626C61636B222C0D0A22323131206320626C61636B222C
0D0A22323132206320626C61636B222C0D0A22323133206320626C61636B222C
0D0A22323134206320626C61636B222C0D0A22323135206320626C61636B222C
0D0A22323136206320626C61636B222C0D0A22323137206320626C61636B222C
0D0A22323138206320626C61636B222C0D0A22323139206320626C61636B222C
0D0A22323230206320626C61636B222C0D0A22323231206320626C61636B222C
0D0A22323232206320626C61636B222C0D0A22323233206320626C61636B222C
0D0A22323234206320626C61636B222C0D0A22323235206320626C61636B222C
0D0A22323236206320626C61636B222C0D0A22323237206320626C61636B222C
0D0A22323238206320626C61636B222C0D0A22323239206320626C61636B222C
0D0A22323330206320626C61636B222C0D0A22323331206320626C61636B222C
0D0A22323332206320626C61636B222C0D0A22323333206320626C61636B222C
0D0A22323334206320626C61636B222C0D0A22323335206320626C61636B222C
0D0A22323336206320626C61636B222C0D0A22323337206320626C61636B222C
0D0A22323338206320626C61636B222C0D0A22323339206320626C61636B222C
0D0A22323430206320626C61636B222C0D0A22323431206320626C61636B222C
0D0A22323432206320626C61636B222C0D0A22323433206320626C61636B222C
0D0A22323434206320626C61636B222C0D0A22323435206320626C61636B222C
0D0A22323436206320626C61636B222C0D0A22323437206320626C61636B222C
0D0A22323438206320626C61636B222C0D0A22323439206320626C61636B222C
0D0A22323530206320626C61636B222C0D0A22323531206320626C61636B222C
0D0A22323532206320626C61636B222C0D0A22323533206320626C61636B222C
0D0A22323534206320626C61636B222C0D0A22323535206320626C61636B222C
0D0A223030333030333030333030333030333030333030333030333030333030
33303033303033303033303033303033303033222C0D0A223030333030333030
3330303330303330303330303330303330303330303330303330303330303330
3033303033303033222C0D0A2230303330303330303330303330303330303330
3033303033303033303033303033303033303033303033303033303033222C0D
0A22303033303033303033303030303030303033303033303033303033303033
303033303033303033303033303033303033222C0D0A22303033303033303033
3030303030313030303030303030333030333030333030333030333030333030
33303033303033222C0D0A223030333030333030333030303030313030313030
31303030303030303033303033303033303033303033303033303033222C0D0A
2230303330303330303330303030303130303130303130303130303130303030
3030303033303033303033303033303033222C0D0A2230303330303330303330
3030303031303031303031303031303031303031303031303030303030303033
303033303033222C0D0A22303033303033303033303030303031303031303031
303031303031303031303031303032303032303033303033303033222C0D0A22
3030333030333030333030303030313030313030313030313030313030323030
32303033303033303033303033303033222C0D0A223030333030333030333030
3030303130303130303130303230303230303330303330303330303330303330
3033303033222C0D0A2230303330303330303330303030303130303230303230
3033303033303033303033303033303033303033303033303033222C0D0A2230
3033303033303033303032303032303033303033303033303033303033303033
303033303033303033303033303033222C0D0A22303033303033303033303033
3030333030333030333030333030333030333030333030333030333030333030
33303033222C0D0A223030333030333030333030333030333030333030333030
33303033303033303033303033303033303033303033303033222C0D0A223030
3330303330303330303330303330303330303330303330303330303330303330
3033303033303033303033303033220D0A7D3B0D0A
}
NumGlyphs = 0
OnClick = PlayClick
TabOrder = 4
Left = 88
Height = 26
Top = 67
Width = 28
end
object btStop: TBitBtn
BorderSpacing.InnerBorder = 2
Glyph.Data = {
970300002F2A2058504D202A2F0D0A7374617469632063686172202A5069786D
61705B5D203D207B0D0A2231362031362031362032222C0D0A22303020632023
303830383130222C0D0A22303120632023313831383231222C0D0A2230322063
20677261793136222C0D0A22303320632023443644364345222C0D0A22303420
632067726179313030222C0D0A22303520632067726179313030222C0D0A2230
3620632067726179313030222C0D0A22303720632067726179313030222C0D0A
22303820632067726179313030222C0D0A22303920632067726179313030222C
0D0A22313020632067726179313030222C0D0A22313120632067726179313030
222C0D0A22313220632067726179313030222C0D0A2231332063206772617931
3030222C0D0A22313420632067726179313030222C0D0A223135206320677261
79313030222C0D0A223033303330333033303330333033303330333033303330
333033303330333033222C0D0A22303330333033303330333033303330333033
3033303330333033303330333033222C0D0A2230333033303330333033303330
33303330333033303330333033303330333033222C0D0A223033303330333030
303030303030303030303030303030303030303330333033222C0D0A22303330
3330333030303130313031303130313031303130313032303330333033222C0D
0A22303330333033303030313031303130313031303130313031303230333033
3033222C0D0A2230333033303330303031303130313031303130313031303130
32303330333033222C0D0A223033303330333030303130313031303130313031
303130313032303330333033222C0D0A22303330333033303030313031303130
3130313031303130313032303330333033222C0D0A2230333033303330303031
30313031303130313031303130313032303330333033222C0D0A223033303330
333030303130313031303130313031303130313032303330333033222C0D0A22
3033303330333030303130313031303130313031303130313032303330333033
222C0D0A22303330333033303230323032303230323032303230323032303230
3330333033222C0D0A2230333033303330333033303330333033303330333033
30333033303330333033222C0D0A223033303330333033303330333033303330
333033303330333033303330333033222C0D0A22303330333033303330333033
3033303330333033303330333033303330333033220D0A7D3B0D0A
}
NumGlyphs = 0
OnClick = StopClick
TabOrder = 5
Left = 116
Height = 26
Top = 67
Width = 28
end
object PlayTimer: TTimer
Enabled = False
Interval = 150
OnTimer = Timer1Timer
top = 152
end
object CDIn1: TACSCDIn
top = 8
end
object AudioOut1: TACSAudioOut
Driver = 'Wavemapper'
Input = CDIn1
Delay = 6
SuspendWhenIdle = True
OnDone = AudioOut1Done
OnProgress = AudioOut1Progress
top = 40
end
end

View File

@@ -0,0 +1,143 @@
unit uMain;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Buttons,
ACS_Audio,ACS_File,ACS_Classes,ACS_Allformats, ExtCtrls, StdCtrls, ComCtrls, ACS_CDROM;
type
{ TForm1 }
TForm1 = class(TForm)
AudioOut1: TACSAudioOut;
CDIn1: TACSCDIn;
btRew: TBitBtn;
btFfw: TBitBtn;
btPlay: TBitBtn;
btStop: TBitBtn;
btOpen: TBitBtn;
lTrack: TLabel;
lTime: TLabel;
Panel1: TPanel;
Progress: TProgressBar;
PlayTimer: TTimer;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
lTracksCount: TLabel;
Label5: TLabel;
lLeft: TLabel;
procedure AudioOut1Done(Sender: TComponent);
procedure AudioOut1Progress(Sender: TComponent);
procedure AudioOut1ThreadException(Sender: TComponent; E: Exception);
procedure PlayClick(Sender: TObject);
procedure StopClick(Sender: TObject);
procedure OpenClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure btFfwClick(Sender: TObject);
procedure btRewClick(Sender: TObject);
procedure FormCreate(Sender : TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{ TForm1 }
procedure TForm1.PlayClick(Sender: TObject);
begin
AudioOut1.Run;
btPlay.Enabled := False;
btStop.Enabled := True;
btOpen.Enabled := False;
btRew.Enabled := False;
btFfw.Enabled := False;
end;
procedure TForm1.AudioOut1Done(Sender: TComponent);
begin
btPlay.Enabled := True;
btStop.Enabled := False;
btOpen.Enabled := True;
btRew.Enabled := True;
btFfw.Enabled := True;
PlayTimer.Enabled := false;
end;
procedure TForm1.AudioOut1Progress(Sender: TComponent);
begin
PlayTimer.Enabled := True;
end;
procedure TForm1.AudioOut1ThreadException(Sender: TComponent; E: Exception);
begin
ShowMessage(E.Message);
end;
procedure TForm1.StopClick(Sender: TObject);
begin
AudioOut1.Stop;
end;
procedure TForm1.OpenClick(Sender: TObject);
begin
lTracksCount.Caption := Format('%.2d',[CDIn1.Trackscount]);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
tmp : real;
begin
tmp := ((CDIn1.Position * CDIn1.TotalTime) / CDIn1.Size);
lTime.Caption := Format('%.2d:%.2d:%.2d',[round((tmp-30) / 60) mod 120,round(tmp) mod 60,round(tmp*100) mod 100]);
tmp := CDIn1.TotalTime-((CDIn1.Position * CDIn1.TotalTime) / CDIn1.Size);
lLeft.Caption := Format('%.2d:%.2d:%.2d',[round((tmp-30) / 60) mod 120,round(tmp) mod 60,round(tmp*100) mod 100]);
Progress.Position := round((CDIn1.Position * 100) / CDIn1.Size);
end;
procedure TForm1.btFfwClick(Sender: TObject);
begin
CDIn1.StartTrack := CDIn1.StartTrack+1;
CDIn1.EndTrack := CDIn1.StartTrack+1;
if CDIn1.StartTrack = CDIn1.TracksCount-1 then
btFfw.Enabled := False;
if CDIn1.StartTrack > 0 then
btRew.Enabled := True;
lTrack.Caption := Format('%.2d',[CDIn1.EndTrack]);
lLeft.Caption := '';
lTime.Caption := '00:00:00';
end;
procedure TForm1.btRewClick(Sender: TObject);
begin
CDIn1.StartTrack := CDIn1.StartTrack-1;
CDIn1.EndTrack := CDIn1.StartTrack+1;
if CDIn1.StartTrack < CDIn1.TracksCount-1 then
btFfw.Enabled := True;
if CDIn1.StartTrack <= 0 then
btRew.Enabled := False;
lTrack.Caption := Format('%.2d',[CDIn1.EndTrack]);
lLeft.Caption := '';
lTime.Caption := '00:00:00';
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
lTracksCount.Caption := Format('%.2d',[CDIn1.Trackscount]);
end;
initialization
{$I umain.lrs}
end.

View File

@@ -0,0 +1,302 @@
<?xml version="1.0"?>
<CONFIG>
<ProjectOptions>
<PathDelim Value="\"/>
<Version Value="5"/>
<General>
<MainUnit Value="0"/>
<IconPath Value="./"/>
<TargetFileExt Value=".exe"/>
<ActiveEditorIndexAtStart Value="0"/>
</General>
<LazDoc Paths=""/>
<Units Count="12">
<Unit0>
<CursorPos X="1" Y="14"/>
<EditorIndex Value="6"/>
<Filename Value="fileconverter.lpr"/>
<IsPartOfProject Value="True"/>
<Loaded Value="True"/>
<TopLine Value="1"/>
<UnitName Value="fileconverter"/>
<UsageCount Value="22"/>
</Unit0>
<Unit1>
<CursorPos X="20" Y="71"/>
<EditorIndex Value="0"/>
<Filename Value="umain.pas"/>
<ComponentName Value="Form1"/>
<IsPartOfProject Value="True"/>
<Loaded Value="True"/>
<ResourceFilename Value="umain.lrs"/>
<TopLine Value="54"/>
<UnitName Value="uMain"/>
<UsageCount Value="22"/>
</Unit1>
<Unit2>
<CursorPos X="1" Y="337"/>
<EditorIndex Value="1"/>
<Filename Value="D:\LKomponenten\acs\Src\classes\acs_file.pas"/>
<Loaded Value="True"/>
<TopLine Value="321"/>
<UnitName Value="acs_file"/>
<UsageCount Value="10"/>
</Unit2>
<Unit3>
<CursorPos X="2" Y="724"/>
<EditorIndex Value="2"/>
<Filename Value="D:\LKomponenten\acs\Src\classes\acs_classes.pas"/>
<Loaded Value="True"/>
<TopLine Value="712"/>
<UnitName Value="acs_classes"/>
<UsageCount Value="10"/>
</Unit3>
<Unit4>
<CursorPos X="1" Y="2235"/>
<Filename Value="D:\lazarus\lcl\include\control.inc"/>
<TopLine Value="2219"/>
<UsageCount Value="10"/>
</Unit4>
<Unit5>
<CursorPos X="1" Y="814"/>
<Filename Value="D:\lazarus\lcl\EditBtn.pas"/>
<TopLine Value="798"/>
<UnitName Value="EditBtn"/>
<UsageCount Value="10"/>
</Unit5>
<Unit6>
<CursorPos X="18" Y="82"/>
<EditorIndex Value="3"/>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\acs_vorbis.pas"/>
<Loaded Value="True"/>
<TopLine Value="66"/>
<UnitName Value="acs_vorbis"/>
<UsageCount Value="10"/>
</Unit6>
<Unit7>
<CursorPos X="22" Y="317"/>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\acs_dsfiles.pas"/>
<TopLine Value="313"/>
<UnitName Value="acs_dsfiles"/>
<UsageCount Value="10"/>
</Unit7>
<Unit8>
<CursorPos X="8" Y="12"/>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\ACS_Allformats.pas"/>
<TopLine Value="1"/>
<UnitName Value="acs_allformats"/>
<UsageCount Value="10"/>
</Unit8>
<Unit9>
<CursorPos X="1" Y="227"/>
<EditorIndex Value="5"/>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\acs_lame.pas"/>
<Loaded Value="True"/>
<TopLine Value="195"/>
<UnitName Value="acs_lame"/>
<UsageCount Value="10"/>
</Unit9>
<Unit10>
<CursorPos X="1" Y="1038"/>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\general\lame.pas"/>
<TopLine Value="1022"/>
<UnitName Value="lame"/>
<UsageCount Value="10"/>
</Unit10>
<Unit11>
<CursorPos X="3" Y="96"/>
<EditorIndex Value="4"/>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\general\vorbiscodec.pas"/>
<Loaded Value="True"/>
<TopLine Value="80"/>
<UnitName Value="vorbiscodec"/>
<UsageCount Value="10"/>
</Unit11>
</Units>
<PublishOptions>
<Version Value="2"/>
<DestinationDirectory Value="$(TestDir)\publishedproject\"/>
<IgnoreBinaries Value="False"/>
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
<LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/>
</local>
</RunParams>
<RequiredPackages Count="2">
<Item1>
<PackageName Value="LCL"/>
</Item1>
<Item2>
<PackageName Value="LAZ_ACS"/>
<MinVersion Major="2" Minor="4" Valid="True"/>
</Item2>
</RequiredPackages>
<JumpHistory Count="30" HistoryIndex="29">
<Position1>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\acs_vorbis.pas"/>
<Caret Line="348" Column="1" TopLine="332"/>
</Position1>
<Position2>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\acs_vorbis.pas"/>
<Caret Line="346" Column="28" TopLine="328"/>
</Position2>
<Position3>
<Filename Value="umain.pas"/>
<Caret Line="66" Column="1" TopLine="50"/>
</Position3>
<Position4>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\acs_vorbis.pas"/>
<Caret Line="335" Column="1" TopLine="319"/>
</Position4>
<Position5>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\acs_vorbis.pas"/>
<Caret Line="351" Column="17" TopLine="335"/>
</Position5>
<Position6>
<Filename Value="umain.pas"/>
<Caret Line="66" Column="1" TopLine="50"/>
</Position6>
<Position7>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\acs_vorbis.pas"/>
<Caret Line="335" Column="1" TopLine="319"/>
</Position7>
<Position8>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\acs_vorbis.pas"/>
<Caret Line="336" Column="1" TopLine="320"/>
</Position8>
<Position9>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\acs_vorbis.pas"/>
<Caret Line="337" Column="1" TopLine="321"/>
</Position9>
<Position10>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\acs_vorbis.pas"/>
<Caret Line="344" Column="1" TopLine="328"/>
</Position10>
<Position11>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\acs_vorbis.pas"/>
<Caret Line="345" Column="1" TopLine="329"/>
</Position11>
<Position12>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\acs_vorbis.pas"/>
<Caret Line="346" Column="1" TopLine="330"/>
</Position12>
<Position13>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\acs_vorbis.pas"/>
<Caret Line="347" Column="1" TopLine="331"/>
</Position13>
<Position14>
<Filename Value="umain.pas"/>
<Caret Line="66" Column="1" TopLine="50"/>
</Position14>
<Position15>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\acs_vorbis.pas"/>
<Caret Line="335" Column="1" TopLine="319"/>
</Position15>
<Position16>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\acs_vorbis.pas"/>
<Caret Line="336" Column="1" TopLine="320"/>
</Position16>
<Position17>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\acs_vorbis.pas"/>
<Caret Line="337" Column="1" TopLine="321"/>
</Position17>
<Position18>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\acs_vorbis.pas"/>
<Caret Line="344" Column="1" TopLine="328"/>
</Position18>
<Position19>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\acs_vorbis.pas"/>
<Caret Line="345" Column="1" TopLine="329"/>
</Position19>
<Position20>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\acs_vorbis.pas"/>
<Caret Line="346" Column="1" TopLine="330"/>
</Position20>
<Position21>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\acs_vorbis.pas"/>
<Caret Line="347" Column="1" TopLine="331"/>
</Position21>
<Position22>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\acs_vorbis.pas"/>
<Caret Line="348" Column="1" TopLine="332"/>
</Position22>
<Position23>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\acs_vorbis.pas"/>
<Caret Line="349" Column="1" TopLine="333"/>
</Position23>
<Position24>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\acs_vorbis.pas"/>
<Caret Line="351" Column="1" TopLine="335"/>
</Position24>
<Position25>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\acs_vorbis.pas"/>
<Caret Line="353" Column="1" TopLine="337"/>
</Position25>
<Position26>
<Filename Value="D:\LKomponenten\acs\Src\classes\acs_file.pas"/>
<Caret Line="334" Column="15" TopLine="321"/>
</Position26>
<Position27>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\acs_vorbis.pas"/>
<Caret Line="353" Column="45" TopLine="347"/>
</Position27>
<Position28>
<Filename Value="D:\LKomponenten\acs\Src\fileformats\acs_vorbis.pas"/>
<Caret Line="82" Column="18" TopLine="66"/>
</Position28>
<Position29>
<Filename Value="D:\LKomponenten\acs\Src\classes\acs_classes.pas"/>
<Caret Line="724" Column="2" TopLine="712"/>
</Position29>
<Position30>
<Filename Value="umain.pas"/>
<Caret Line="66" Column="1" TopLine="50"/>
</Position30>
</JumpHistory>
</ProjectOptions>
<CompilerOptions>
<Version Value="5"/>
<PathDelim Value="\"/>
<SearchPaths>
<SrcPath Value="$(LazarusDir)\lcl\;$(LazarusDir)\lcl\interfaces\$(LCLWidgetType)\"/>
</SearchPaths>
<CodeGeneration>
<Generate Value="Faster"/>
</CodeGeneration>
<Linking>
<Options>
<Win32>
<GraphicApplication Value="True"/>
</Win32>
</Options>
</Linking>
<Other>
<CompilerPath Value="$(CompPath)"/>
</Other>
</CompilerOptions>
<Debugging>
<BreakPoints Count="3">
<Item1>
<Source Value="D:\LKomponenten\acs\Demos\Ripper\umain.pas"/>
<Line Value="68"/>
</Item1>
<Item2>
<Source Value="D:\LKomponenten\acs\Src\fileformats\acs_lame.pas"/>
<Line Value="297"/>
</Item2>
<Item3>
<Source Value="D:\LKomponenten\acs\Src\fileformats\acs_vorbis.pas"/>
<Line Value="335"/>
</Item3>
</BreakPoints>
<Watches Count="1">
<Item1>
<Expression Value="newfilename"/>
</Item1>
</Watches>
</Debugging>
</CONFIG>

View File

@@ -0,0 +1,165 @@
object Form1: TForm1
ActiveControl = BitBtn1
BorderStyle = bsToolWindow
Caption = 'Fileconverter'
ClientHeight = 62
ClientWidth = 401
OnCreate = FormCreate
PixelsPerInch = 96
HorzScrollBar.Page = 400
VertScrollBar.Page = 61
Left = 440
Height = 62
Top = 309
Width = 401
object Label1: TLabel
Caption = 'Output Dir'
Color = clNone
ParentColor = False
Left = 96
Height = 14
Top = 16
Width = 51
end
object pbProgress: TProgressBar
Max = 100
Left = 8
Height = 16
Top = 40
Width = 384
end
object BitBtn1: TBitBtn
BorderSpacing.InnerBorder = 2
Caption = 'Open'
Glyph.Data = {
910900002F2A2058504D202A2F0D0A7374617469632063686172202A2062746E
5F6F70656E66696C655F78706D5B5D203D207B0D0A2231382031382039372032
222C0D0A2220200963204E6F6E65222C0D0A222E200963202330303030303022
2C0D0A222B2009632023344533333142222C0D0A224020096320234535413536
36222C0D0A22232009632023464544333941222C0D0A22242009632023464543
353835222C0D0A22252009632023464443353837222C0D0A2226200963202346
4543323832222C0D0A222A2009632023463841433632222C0D0A223D20096320
23464543383841222C0D0A222D2009632023353335303444222C0D0A223B2009
632023353535323446222C0D0A223E2009632023354335413537222C0D0A222C
2009632023353435313445222C0D0A22272009632023353635333530222C0D0A
22292009632023433438363445222C0D0A22212009632023353234463443222C
0D0A227E2009632023463546354635222C0D0A227B2009632023454345434543
222C0D0A225D2009632023453445344534222C0D0A225E200963202344434443
4443222C0D0A222F2009632023443444344434222C0D0A222820096320234342
43424342222C0D0A225F2009632023433443344334222C0D0A223A2009632023
424342434243222C0D0A223C2009632023423542354235222C0D0A225B200963
2023423342334233222C0D0A227D2009632023333033303330222C0D0A227C20
09632023344133313139222C0D0A22312009632023444244424442222C0D0A22
322009632023444644464445222C0D0A22332009632023453845384537222C0D
0A22342009632023453645364534222C0D0A2235200963202344324432443122
2C0D0A22362009632023433743374336222C0D0A223720096320234241424142
39222C0D0A22382009632023414441444143222C0D0A22392009632023413041
303946222C0D0A22302009632023393439343933222C0D0A2261200963202334
3934393438222C0D0A22622009632023423737443434222C0D0A226320096320
23353335313445222C0D0A22642009632023444144414441222C0D0A22652009
632023444244424441222C0D0A22662009632023453145314530222C0D0A2267
2009632023444444444443222C0D0A22682009632023443644364435222C0D0A
22692009632023434243424341222C0D0A226A2009632023433143314330222C
0D0A226B2009632023423642364235222C0D0A226C2009632023413941394138
222C0D0A226D2009632023363836383637222C0D0A226E200963202332323232
3231222C0D0A226F2009632023343933303138222C0D0A227020096320234344
43444344222C0D0A22712009632023434143414339222C0D0A22722009632023
443544354434222C0D0A22732009632023443244324430222C0D0A2274200963
2023434343434342222C0D0A22752009632023433243324331222C0D0A227620
09632023423942394238222C0D0A22772009632023414641464145222C0D0A22
782009632023413241324131222C0D0A22792009632023393539353934222C0D
0A227A2009632023434543454345222C0D0A2241200963202342454245424322
2C0D0A22422009632023433443344332222C0D0A224320096320234336433643
35222C0D0A22442009632023433343334332222C0D0A22452009632023424642
464245222C0D0A22462009632023414541454144222C0D0A2247200963202341
3541354134222C0D0A22482009632023394539453944222C0D0A224920096320
23364636463645222C0D0A224A2009632023313231323132222C0D0A224B2009
632023424442444244222C0D0A224C2009632023413641364135222C0D0A224D
2009632023414141414138222C0D0A224E2009632023414441444142222C0D0A
224F2009632023414541454143222C0D0A22502009632023414241424141222C
0D0A22512009632023413741374136222C0D0A22522009632023413141314130
222C0D0A22532009632023394139413939222C0D0A2254200963202339343934
3932222C0D0A22552009632023384438443842222C0D0A225620096320233233
32333233222C0D0A22572009632023344134413441222C0D0A22582009632023
344134413439222C0D0A22592009632023344334433442222C0D0A225A200963
2023344334433443222C0D0A22602009632023344234423441222C0D0A22202E
09632023343634363436222C0D0A222E2E09632023343334333433222C0D0A22
2B2E09632023343134313430222C0D0A22402E09632023333433343333222C0D
0A22232E09632023314631463145222C0D0A222020202020202020202020202E
202E202E202E2020202020202020202020202020202020222C0D0A2220202020
2020202020202E202E2020202E202E202E202E2020202E202020202020202020
222C0D0A2220202020202020202E20202020202020202020202E202E202E202E
202020202020202020222C0D0A22202020202020202020202020202020202020
202020202E202E202E202020202020202020222C0D0A22202020202020202020
20202020202020202020202E202E202E202E202020202020202020222C0D0A22
20202B202B202B202B2020202020202020202020202020202020202020202020
20202020222C0D0A222B2040202320242040202B202B202B202B202B202B202B
20202020202020202020202020222C0D0A222B202320252026202A202A202A20
2A202A202A202A202A202E2020202020202020202020222C0D0A222B203D2026
202B202D202D203B203E202C202C20272027202C202E202E202E202020202022
2C0D0A222B202620292021207E207E207B205D205E202F2028205F203A203C20
5B207D2020202020222C0D0A222B2026207C2031203220332034203220352036
2037203820392030206120202020202020222C0D0A222B206220632064206520
66206720682069206A206B206C2039206D206E20202020202020222C0D0A222B
206F207020712072207220732074207520762077207820792061202020202020
202020222C0D0A222B2027207A20412042204320442045206B20462047204820
49204A202020202020202020222C0D0A222B204B204C204D204E204F20502051
205220532054205520612020202020202020202020222C0D0A22562057205820
59205A20592060206120202E2E2E2B2E402E232E20202020202020202020222C
0D0A222020202020202020202020202020202020202020202020202020202020
20202020202020222C0D0A222020202020202020202020202020202020202020
20202020202020202020202020202020227D3B0D0A
}
NumGlyphs = 0
OnClick = BitBtn1Click
TabOrder = 0
Left = 8
Height = 24
Top = 11
Width = 72
end
object DirectoryEdit: TDirectoryEdit
ButtonWidth = 23
NumGlyphs = 1
ParentColor = False
TabOrder = 1
TabOrder = 1
Left = 152
Height = 23
Top = 11
Width = 112
end
object btStart: TBitBtn
BorderSpacing.InnerBorder = 2
Caption = 'Start'
NumGlyphs = 0
OnClick = BitBtn2Click
TabOrder = 2
Left = 352
Height = 22
Top = 11
Width = 43
end
object cbOutput: TComboBox
MaxLength = 0
Style = csDropDownList
TabOrder = 3
Left = 295
Height = 21
Top = 11
Width = 49
end
object FileIn: TACSFileIn
EndSample = -1
EndSample = -1
left = 32
top = 8
end
object FileOut: TACSFileOut
Input = FileIn
OnDone = FileOutDone
OnProgress = FileOutProgress
left = 32
top = 368
end
end

View File

@@ -0,0 +1,95 @@
unit uMain;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ComCtrls, Buttons, EditBtn, ACS_File, StdCtrls
,ACS_AllFormats,ACS_Classes;
type
{ TForm1 }
TForm1 = class(TForm)
BitBtn1: TBitBtn;
btStart: TBitBtn;
cbOutput: TComboBox;
DirectoryEdit: TDirectoryEdit;
FileIn: TACSFileIn;
FileOut: TACSFileOut;
Label1: TLabel;
pbProgress: TProgressBar;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure FileOutDone(Sender: TComponent);
procedure FileOutProgress(Sender: TComponent);
procedure FormCreate(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{ TForm1 }
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
FileIn.Open;
DirectoryEdit.Text := ExtractFileDir(FileIn.FileName);
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
var
newfilename : string;
begin
newfilename := ExtractFileName(FileIn.FileName);
if newfilename = '' then
begin
ShowMessage('You must open an file first !');
exit;
end;
newfilename := copy(newfilename,0,length(newfilename)-length(ExtractFileExt(newfilename)));
if DirectoryEdit.Directory = '' then
begin
ShowMessage('You must select an directory first !');
exit;
end;
FileOut.FileName := DirectoryEdit.Directory+DirectorySeparator+newfilename+'.'+cbOutput.Text;
btStart.Enabled := False;
FileOut.Run;
end;
procedure TForm1.FileOutDone(Sender: TComponent);
begin
btStart.Enabled := True;
pbProgress.Position := 0;
end;
procedure TForm1.FileOutProgress(Sender: TComponent);
begin
pbProgress.Position := round(FileOut.Progress);
Update;
Application.Processmessages;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i : Integer;
begin
for i := 0 to Fileformats.Count-1 do
if TACSFileFormat(Fileformats[i]).FileClass.InheritsFrom(TACSCustomFileOut) then
cbOutput.Items.Add(TACSFileFormat(Fileformats[i]).Extension);
end;
initialization
{$I umain.lrs}
end.

View File

@@ -0,0 +1,278 @@
/* XPM */
static char *Pixmap[] = {
"18 18 256 3",
"000 c black",
"001 c #010101",
"002 c #020202",
"003 c #040404",
"004 c #070707",
"005 c #090909",
"006 c #0C0C0C",
"007 c #0E0E0E",
"008 c #111111",
"009 c #131312",
"010 c gray8",
"011 c #161616",
"012 c #191919",
"013 c #1B1B1B",
"014 c gray11",
"015 c gray13",
"016 c gray15",
"017 c #282827",
"018 c gray16",
"019 c gray18",
"020 c #323231",
"021 c #353534",
"022 c gray22",
"023 c #393939",
"024 c #40403F",
"025 c gray25",
"026 c gray26",
"027 c #484847",
"028 c #515150",
"029 c dimgray",
"030 c #5B5B5B",
"031 c #5C5C5B",
"032 c #5E5E5D",
"033 c #60605F",
"034 c #636362",
"035 c #646463",
"036 c #656564",
"037 c #666665",
"038 c #676766",
"039 c #686867",
"040 c #6C6C6B",
"041 c #70706F",
"042 c #757574",
"043 c #7E7E7D",
"044 c #DFDFDE",
"045 c black",
"046 c black",
"047 c black",
"048 c black",
"049 c black",
"050 c black",
"051 c black",
"052 c black",
"053 c black",
"054 c black",
"055 c black",
"056 c black",
"057 c black",
"058 c black",
"059 c black",
"060 c black",
"061 c black",
"062 c black",
"063 c black",
"064 c black",
"065 c black",
"066 c black",
"067 c black",
"068 c black",
"069 c black",
"070 c black",
"071 c black",
"072 c black",
"073 c black",
"074 c black",
"075 c black",
"076 c black",
"077 c black",
"078 c black",
"079 c black",
"080 c black",
"081 c black",
"082 c black",
"083 c black",
"084 c black",
"085 c black",
"086 c black",
"087 c black",
"088 c black",
"089 c black",
"090 c black",
"091 c black",
"092 c black",
"093 c black",
"094 c black",
"095 c black",
"096 c black",
"097 c black",
"098 c black",
"099 c black",
"100 c black",
"101 c black",
"102 c black",
"103 c black",
"104 c black",
"105 c black",
"106 c black",
"107 c black",
"108 c black",
"109 c black",
"110 c black",
"111 c black",
"112 c black",
"113 c black",
"114 c black",
"115 c black",
"116 c black",
"117 c black",
"118 c black",
"119 c black",
"120 c black",
"121 c black",
"122 c black",
"123 c black",
"124 c black",
"125 c black",
"126 c black",
"127 c black",
"128 c black",
"129 c black",
"130 c black",
"131 c black",
"132 c black",
"133 c black",
"134 c black",
"135 c black",
"136 c black",
"137 c black",
"138 c black",
"139 c black",
"140 c black",
"141 c black",
"142 c black",
"143 c black",
"144 c black",
"145 c black",
"146 c black",
"147 c black",
"148 c black",
"149 c black",
"150 c black",
"151 c black",
"152 c black",
"153 c black",
"154 c black",
"155 c black",
"156 c black",
"157 c black",
"158 c black",
"159 c black",
"160 c black",
"161 c black",
"162 c black",
"163 c black",
"164 c black",
"165 c black",
"166 c black",
"167 c black",
"168 c black",
"169 c black",
"170 c black",
"171 c black",
"172 c black",
"173 c black",
"174 c black",
"175 c black",
"176 c black",
"177 c black",
"178 c black",
"179 c black",
"180 c black",
"181 c black",
"182 c black",
"183 c black",
"184 c black",
"185 c black",
"186 c black",
"187 c black",
"188 c black",
"189 c black",
"190 c black",
"191 c black",
"192 c black",
"193 c black",
"194 c black",
"195 c black",
"196 c black",
"197 c black",
"198 c black",
"199 c black",
"200 c black",
"201 c black",
"202 c black",
"203 c black",
"204 c black",
"205 c black",
"206 c black",
"207 c black",
"208 c black",
"209 c black",
"210 c black",
"211 c black",
"212 c black",
"213 c black",
"214 c black",
"215 c black",
"216 c black",
"217 c black",
"218 c black",
"219 c black",
"220 c black",
"221 c black",
"222 c black",
"223 c black",
"224 c black",
"225 c black",
"226 c black",
"227 c black",
"228 c black",
"229 c black",
"230 c black",
"231 c black",
"232 c black",
"233 c black",
"234 c black",
"235 c black",
"236 c black",
"237 c black",
"238 c black",
"239 c black",
"240 c black",
"241 c black",
"242 c black",
"243 c black",
"244 c black",
"245 c black",
"246 c black",
"247 c black",
"248 c black",
"249 c black",
"250 c black",
"251 c black",
"252 c black",
"253 c black",
"254 c black",
"255 c black",
"000000000000000000000000000000000000000000000000000000",
"000000016039039039039032006000000000000000000000000000",
"000000016043044044041039037013000000000000000000000000",
"000000016043044044041024039039019000000000000000000000",
"000000016043044044041012011036039027002000000000000000",
"000000016043044044043012000005031039030005000000000000",
"000000016043044044043016000000002027039036011000000000",
"000000016043044044043016000000000000020039039018000000",
"000000016043044044043016000000000000000014038039026001",
"000000016043044044043016000000000000000009034039028003",
"000000016043044044043016000000000000015039039023000000",
"000000016043044044043016000000000022039039015000000000",
"000000016042044044040012000003028039034008000000000000",
"000000016043044044041012007033039029004000000000000000",
"000000016043044044041021038039025001000000000000000000",
"000000016043044044041039039017000000000000000000000000",
"000000016039039039039035010000000000000000000000000000",
"000000000000000000000000000000000000000000000000000000"
};

View File

@@ -0,0 +1,36 @@
/* XPM */
static char *Pixmap[] = {
"16 16 16 2",
"00 c #080810",
"01 c #181821",
"02 c gray16",
"03 c #D6D6CE",
"04 c gray100",
"05 c gray100",
"06 c gray100",
"07 c gray100",
"08 c gray100",
"09 c gray100",
"10 c gray100",
"11 c gray100",
"12 c gray100",
"13 c gray100",
"14 c gray100",
"15 c gray100",
"03030303030303030303030303030303",
"03030303030303030303030303030303",
"03030303030303030303030303030303",
"03030303030303000303030303030303",
"03030303030300010003030303030303",
"03030303030001010100030303030303",
"03030303000101010101000303030303",
"03030300010101010101010003030303",
"03030202020202020202020202030303",
"03030303030303030303030303030303",
"03030000000000000000000000030303",
"03030001010101010101010102030303",
"03030202020202020202020202030303",
"03030303030303030303030303030303",
"03030303030303030303030303030303",
"03030303030303030303030303030303"
};

View File

@@ -0,0 +1,36 @@
/* XPM */
static char *Pixmap[] = {
"16 16 16 2",
"00 c #080810",
"01 c #181821",
"02 c gray16",
"03 c #D6D6CE",
"04 c gray100",
"05 c gray100",
"06 c gray100",
"07 c gray100",
"08 c gray100",
"09 c gray100",
"10 c gray100",
"11 c gray100",
"12 c gray100",
"13 c gray100",
"14 c gray100",
"15 c gray100",
"03030303030303030303030303030303",
"03030303030303030303030303030303",
"03030303030303030303030303030303",
"03030000000003030300000000030303",
"03030001010203030300010102030303",
"03030001010203030300010102030303",
"03030001010203030300010102030303",
"03030001010203030300010102030303",
"03030001010203030300010102030303",
"03030001010203030300010102030303",
"03030001010203030300010102030303",
"03030001010203030300010102030303",
"03030202020203030302020202030303",
"03030303030303030303030303030303",
"03030303030303030303030303030303",
"03030303030303030303030303030303"
};

276
acs/Demos/images/play.xpm Normal file
View File

@@ -0,0 +1,276 @@
/* XPM */
static char *Pixmap[] = {
"16 16 256 3",
"000 c #0C0F12",
"001 c #1B1D20",
"002 c #2A2D2D",
"003 c #D4D0C8",
"004 c black",
"005 c black",
"006 c black",
"007 c black",
"008 c black",
"009 c black",
"010 c black",
"011 c black",
"012 c black",
"013 c black",
"014 c black",
"015 c black",
"016 c black",
"017 c black",
"018 c black",
"019 c black",
"020 c black",
"021 c black",
"022 c black",
"023 c black",
"024 c black",
"025 c black",
"026 c black",
"027 c black",
"028 c black",
"029 c black",
"030 c black",
"031 c black",
"032 c black",
"033 c black",
"034 c black",
"035 c black",
"036 c black",
"037 c black",
"038 c black",
"039 c black",
"040 c black",
"041 c black",
"042 c black",
"043 c black",
"044 c black",
"045 c black",
"046 c black",
"047 c black",
"048 c black",
"049 c black",
"050 c black",
"051 c black",
"052 c black",
"053 c black",
"054 c black",
"055 c black",
"056 c black",
"057 c black",
"058 c black",
"059 c black",
"060 c black",
"061 c black",
"062 c black",
"063 c black",
"064 c black",
"065 c black",
"066 c black",
"067 c black",
"068 c black",
"069 c black",
"070 c black",
"071 c black",
"072 c black",
"073 c black",
"074 c black",
"075 c black",
"076 c black",
"077 c black",
"078 c black",
"079 c black",
"080 c black",
"081 c black",
"082 c black",
"083 c black",
"084 c black",
"085 c black",
"086 c black",
"087 c black",
"088 c black",
"089 c black",
"090 c black",
"091 c black",
"092 c black",
"093 c black",
"094 c black",
"095 c black",
"096 c black",
"097 c black",
"098 c black",
"099 c black",
"100 c black",
"101 c black",
"102 c black",
"103 c black",
"104 c black",
"105 c black",
"106 c black",
"107 c black",
"108 c black",
"109 c black",
"110 c black",
"111 c black",
"112 c black",
"113 c black",
"114 c black",
"115 c black",
"116 c black",
"117 c black",
"118 c black",
"119 c black",
"120 c black",
"121 c black",
"122 c black",
"123 c black",
"124 c black",
"125 c black",
"126 c black",
"127 c black",
"128 c black",
"129 c black",
"130 c black",
"131 c black",
"132 c black",
"133 c black",
"134 c black",
"135 c black",
"136 c black",
"137 c black",
"138 c black",
"139 c black",
"140 c black",
"141 c black",
"142 c black",
"143 c black",
"144 c black",
"145 c black",
"146 c black",
"147 c black",
"148 c black",
"149 c black",
"150 c black",
"151 c black",
"152 c black",
"153 c black",
"154 c black",
"155 c black",
"156 c black",
"157 c black",
"158 c black",
"159 c black",
"160 c black",
"161 c black",
"162 c black",
"163 c black",
"164 c black",
"165 c black",
"166 c black",
"167 c black",
"168 c black",
"169 c black",
"170 c black",
"171 c black",
"172 c black",
"173 c black",
"174 c black",
"175 c black",
"176 c black",
"177 c black",
"178 c black",
"179 c black",
"180 c black",
"181 c black",
"182 c black",
"183 c black",
"184 c black",
"185 c black",
"186 c black",
"187 c black",
"188 c black",
"189 c black",
"190 c black",
"191 c black",
"192 c black",
"193 c black",
"194 c black",
"195 c black",
"196 c black",
"197 c black",
"198 c black",
"199 c black",
"200 c black",
"201 c black",
"202 c black",
"203 c black",
"204 c black",
"205 c black",
"206 c black",
"207 c black",
"208 c black",
"209 c black",
"210 c black",
"211 c black",
"212 c black",
"213 c black",
"214 c black",
"215 c black",
"216 c black",
"217 c black",
"218 c black",
"219 c black",
"220 c black",
"221 c black",
"222 c black",
"223 c black",
"224 c black",
"225 c black",
"226 c black",
"227 c black",
"228 c black",
"229 c black",
"230 c black",
"231 c black",
"232 c black",
"233 c black",
"234 c black",
"235 c black",
"236 c black",
"237 c black",
"238 c black",
"239 c black",
"240 c black",
"241 c black",
"242 c black",
"243 c black",
"244 c black",
"245 c black",
"246 c black",
"247 c black",
"248 c black",
"249 c black",
"250 c black",
"251 c black",
"252 c black",
"253 c black",
"254 c black",
"255 c black",
"003003003003003003003003003003003003003003003003",
"003003003003003003003003003003003003003003003003",
"003003003003003003003003003003003003003003003003",
"003003003000000003003003003003003003003003003003",
"003003003000001000000003003003003003003003003003",
"003003003000001001001000000003003003003003003003",
"003003003000001001001001001000000003003003003003",
"003003003000001001001001001001001000000003003003",
"003003003000001001001001001001001002002003003003",
"003003003000001001001001001002002003003003003003",
"003003003000001001001002002003003003003003003003",
"003003003000001002002003003003003003003003003003",
"003003003002002003003003003003003003003003003003",
"003003003003003003003003003003003003003003003003",
"003003003003003003003003003003003003003003003003",
"003003003003003003003003003003003003003003003003"
};

36
acs/Demos/images/stop.xpm Normal file
View File

@@ -0,0 +1,36 @@
/* XPM */
static char *Pixmap[] = {
"16 16 16 2",
"00 c #080810",
"01 c #181821",
"02 c gray16",
"03 c #D6D6CE",
"04 c gray100",
"05 c gray100",
"06 c gray100",
"07 c gray100",
"08 c gray100",
"09 c gray100",
"10 c gray100",
"11 c gray100",
"12 c gray100",
"13 c gray100",
"14 c gray100",
"15 c gray100",
"03030303030303030303030303030303",
"03030303030303030303030303030303",
"03030303030303030303030303030303",
"03030300000000000000000000030303",
"03030300010101010101010102030303",
"03030300010101010101010102030303",
"03030300010101010101010102030303",
"03030300010101010101010102030303",
"03030300010101010101010102030303",
"03030300010101010101010102030303",
"03030300010101010101010102030303",
"03030300010101010101010102030303",
"03030302020202020202020202030303",
"03030303030303030303030303030303",
"03030303030303030303030303030303",
"03030303030303030303030303030303"
};

View File

@@ -0,0 +1,36 @@
/* XPM */
static char *Pixmap[] = {
"16 16 16 2",
"00 c #080810",
"01 c #181821",
"02 c gray16",
"03 c #D6D6CE",
"04 c gray100",
"05 c gray100",
"06 c gray100",
"07 c gray100",
"08 c gray100",
"09 c gray100",
"10 c gray100",
"11 c gray100",
"12 c gray100",
"13 c gray100",
"14 c gray100",
"15 c gray100",
"03030303030303030303030303030303",
"03030303030303030303030303030303",
"03030303030303030303030303030303",
"03030300000003030303030000030303",
"03030300010203030303000102030303",
"03030300010203030300010102030303",
"03030300010203030001010102030303",
"03030300010203000101010102030303",
"03030300010203020101010102030303",
"03030300010203030201010102030303",
"03030300010203030302010102030303",
"03030300010203030303020102030303",
"03030302020203030303030202030303",
"03030303030303030303030303030303",
"03030303030303030303030303030303",
"03030303030303030303030303030303"
};

View File

@@ -0,0 +1,36 @@
/* XPM */
static char *Pixmap[] = {
"16 16 16 2",
"00 c #080810",
"01 c #181821",
"02 c gray16",
"03 c #D6D6CE",
"04 c gray100",
"05 c gray100",
"06 c gray100",
"07 c gray100",
"08 c gray100",
"09 c gray100",
"10 c gray100",
"11 c gray100",
"12 c gray100",
"13 c gray100",
"14 c gray100",
"15 c gray100",
"03030303030303030303030303030303",
"03030303030303030303030303030303",
"03030303030303030303030303030303",
"03030300000303030303000000030303",
"03030302010003030303020100030303",
"03030302010100030303020100030303",
"03030302010101000303020100030303",
"03030302010101010003020100030303",
"03030302010101010203020100030303",
"03030302010101020303020100030303",
"03030302010102030303020100030303",
"03030302010203030303020100030303",
"03030302020303030303020202030303",
"03030303030303030303030303030303",
"03030303030303030303030303030303",
"03030303030303030303030303030303"
};

View File

@@ -0,0 +1,250 @@
<?xml version="1.0"?>
<CONFIG>
<ProjectOptions>
<PathDelim Value="/"/>
<Version Value="5"/>
<General>
<MainUnit Value="0"/>
<IconPath Value="./"/>
<TargetFileExt Value=".exe"/>
<ActiveEditorIndexAtStart Value="0"/>
</General>
<LazDoc Paths=""/>
<Units Count="17">
<Unit0>
<Filename Value="linerecord.lpr"/>
<IsPartOfProject Value="True"/>
<UnitName Value="linerecord"/>
<UsageCount Value="21"/>
</Unit0>
<Unit1>
<CursorPos X="24" Y="71"/>
<EditorIndex Value="0"/>
<Filename Value="umain.pas"/>
<ComponentName Value="Form1"/>
<IsPartOfProject Value="True"/>
<Loaded Value="True"/>
<ResourceFilename Value="umain.lrs"/>
<TopLine Value="24"/>
<UnitName Value="umain"/>
<UsageCount Value="21"/>
</Unit1>
<Unit2>
<CursorPos X="15" Y="129"/>
<Filename Value="D:/LKomponenten/acs/Src/classes/acs_file.pas"/>
<TopLine Value="129"/>
<UnitName Value="acs_file"/>
<UsageCount Value="10"/>
</Unit2>
<Unit3>
<CursorPos X="3" Y="153"/>
<Filename Value="D:/LKomponenten/acs/Src/classes/acs_classes.pas"/>
<TopLine Value="134"/>
<UnitName Value="acs_classes"/>
<UsageCount Value="10"/>
</Unit3>
<Unit4>
<CursorPos X="15" Y="169"/>
<Filename Value="D:/LKomponenten/acs/Src/classes/acs_mixer.pas"/>
<TopLine Value="153"/>
<UnitName Value="acs_mixer"/>
<UsageCount Value="10"/>
</Unit4>
<Unit5>
<CursorPos X="3" Y="389"/>
<Filename Value="D:/LKomponenten/acs/Src/classes/windows/acs_mixer.inc"/>
<TopLine Value="372"/>
<UsageCount Value="10"/>
</Unit5>
<Unit6>
<CursorPos X="1" Y="2235"/>
<Filename Value="D:/lazarus/lcl/include/control.inc"/>
<TopLine Value="2219"/>
<UsageCount Value="10"/>
</Unit6>
<Unit7>
<CursorPos X="1" Y="645"/>
<Filename Value="D:/lazarus/lcl/EditBtn.pas"/>
<TopLine Value="629"/>
<UnitName Value="EditBtn"/>
<UsageCount Value="10"/>
</Unit7>
<Unit8>
<CursorPos X="1" Y="1379"/>
<Filename Value="D:/LKomponenten/acs/Src/fileformats/acs_wave.pas"/>
<TopLine Value="1363"/>
<UnitName Value="acs_wave"/>
<UsageCount Value="10"/>
</Unit8>
<Unit9>
<CursorPos X="27" Y="1335"/>
<Filename Value="D:/acs tmp/Src/Common/ACS_Wave.pas"/>
<TopLine Value="1326"/>
<UnitName Value="ACS_Wave"/>
<UsageCount Value="10"/>
</Unit9>
<Unit10>
<CursorPos X="1" Y="681"/>
<Filename Value="D:/LKomponenten/acs/Src/classes/acs_audio.pas"/>
<TopLine Value="665"/>
<UnitName Value="acs_audio"/>
<UsageCount Value="10"/>
</Unit10>
<Unit11>
<CursorPos X="28" Y="377"/>
<Filename Value="D:/LKomponenten/acs/Src/drivers/windows/ACS_Audio.inc"/>
<TopLine Value="361"/>
<UsageCount Value="10"/>
</Unit11>
<Unit12>
<CursorPos X="14" Y="125"/>
<Filename Value="D:/LKomponenten/acs/Src/drivers/ACS_StdAudio.pas"/>
<TopLine Value="109"/>
<UnitName Value="acs_stdaudio"/>
<UsageCount Value="10"/>
</Unit12>
<Unit13>
<CursorPos X="1" Y="391"/>
<Filename Value="D:/LKomponenten/acs/Src/drivers/ACS_DXAudio.pas"/>
<TopLine Value="375"/>
<UnitName Value="acs_dxaudio"/>
<UsageCount Value="10"/>
</Unit13>
<Unit14>
<CursorPos X="1" Y="2456"/>
<Filename Value="D:/fpc/packages/extra/winunits/mmsystem.pp"/>
<TopLine Value="2440"/>
<UnitName Value="mmsystem"/>
<UsageCount Value="10"/>
</Unit14>
<Unit15>
<CursorPos X="18" Y="205"/>
<EditorIndex Value="2"/>
<Filename Value="/windows/C/src/LKomponenten/acs/Src/classes/acs_mixer.pas"/>
<Loaded Value="True"/>
<TopLine Value="197"/>
<UnitName Value="acs_mixer"/>
<UsageCount Value="10"/>
</Unit15>
<Unit16>
<CursorPos X="18" Y="99"/>
<EditorIndex Value="1"/>
<Filename Value="/windows/C/src/LKomponenten/acs/Src/classes/linux/acs_mixer.inc"/>
<Loaded Value="True"/>
<TopLine Value="152"/>
<UsageCount Value="10"/>
</Unit16>
</Units>
<PublishOptions>
<Version Value="2"/>
<IgnoreBinaries Value="False"/>
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
<Display Use="True" Value=":1"/>
</local>
</RunParams>
<RequiredPackages Count="2">
<Item1>
<PackageName Value="LCL"/>
</Item1>
<Item2>
<PackageName Value="laz_acs"/>
</Item2>
</RequiredPackages>
<JumpHistory Count="12" HistoryIndex="11">
<Position1>
<Filename Value="/windows/C/src/LKomponenten/acs/Src/classes/linux/acs_mixer.inc"/>
<Caret Line="163" Column="1" TopLine="136"/>
</Position1>
<Position2>
<Filename Value="/windows/C/src/LKomponenten/acs/Src/classes/linux/acs_mixer.inc"/>
<Caret Line="164" Column="1" TopLine="137"/>
</Position2>
<Position3>
<Filename Value="/windows/C/src/LKomponenten/acs/Src/classes/linux/acs_mixer.inc"/>
<Caret Line="163" Column="1" TopLine="136"/>
</Position3>
<Position4>
<Filename Value="/windows/C/src/LKomponenten/acs/Src/classes/linux/acs_mixer.inc"/>
<Caret Line="164" Column="1" TopLine="137"/>
</Position4>
<Position5>
<Filename Value="/windows/C/src/LKomponenten/acs/Src/classes/linux/acs_mixer.inc"/>
<Caret Line="163" Column="1" TopLine="136"/>
</Position5>
<Position6>
<Filename Value="/windows/C/src/LKomponenten/acs/Src/classes/linux/acs_mixer.inc"/>
<Caret Line="164" Column="1" TopLine="137"/>
</Position6>
<Position7>
<Filename Value="/windows/C/src/LKomponenten/acs/Src/classes/linux/acs_mixer.inc"/>
<Caret Line="163" Column="1" TopLine="136"/>
</Position7>
<Position8>
<Filename Value="/windows/C/src/LKomponenten/acs/Src/classes/linux/acs_mixer.inc"/>
<Caret Line="164" Column="1" TopLine="137"/>
</Position8>
<Position9>
<Filename Value="/windows/C/src/LKomponenten/acs/Src/classes/linux/acs_mixer.inc"/>
<Caret Line="163" Column="1" TopLine="136"/>
</Position9>
<Position10>
<Filename Value="/windows/C/src/LKomponenten/acs/Src/classes/linux/acs_mixer.inc"/>
<Caret Line="166" Column="1" TopLine="139"/>
</Position10>
<Position11>
<Filename Value="/windows/C/src/LKomponenten/acs/Src/classes/acs_mixer.pas"/>
<Caret Line="250" Column="3" TopLine="200"/>
</Position11>
<Position12>
<Filename Value="/windows/C/src/LKomponenten/acs/Src/classes/acs_mixer.pas"/>
<Caret Line="249" Column="40" TopLine="201"/>
</Position12>
</JumpHistory>
</ProjectOptions>
<CompilerOptions>
<Version Value="5"/>
<SearchPaths>
<SrcPath Value="$(LazarusDir)/lcl/;$(LazarusDir)/lcl/interfaces/$(LCLWidgetType)/"/>
</SearchPaths>
<CodeGeneration>
<Generate Value="Faster"/>
</CodeGeneration>
<Linking>
<Options>
<Win32>
<GraphicApplication Value="True"/>
</Win32>
</Options>
</Linking>
<Other>
<CompilerPath Value="$(CompPath)"/>
</Other>
</CompilerOptions>
<Debugging>
<BreakPoints Count="3">
<Item1>
<Source Value="D:/LKomponenten/acs/Demos/Ripper/umain.pas"/>
<Line Value="68"/>
</Item1>
<Item2>
<Source Value="D:/LKomponenten/acs/Src/fileformats/acs_wave.pas"/>
<Line Value="1379"/>
</Item2>
<Item3>
<Source Value="D:/LKomponenten/acs/Src/drivers/windows/ACS_Audio.inc"/>
<Line Value="341"/>
</Item3>
</BreakPoints>
<Watches Count="1">
<Item1>
<Expression Value="newfilename"/>
</Item1>
</Watches>
</Debugging>
</CONFIG>

View File

@@ -0,0 +1,83 @@
object Form1: TForm1
ActiveControl = bRecord
BorderStyle = bsToolWindow
Caption = 'Audio Record'
ClientHeight = 43
ClientWidth = 308
OnCreate = FormCreate
PixelsPerInch = 90
HorzScrollBar.Page = 307
VertScrollBar.Page = 42
Left = 347
Height = 43
Top = 208
Width = 308
object Label1: TLabel
Caption = 'Source'
Color = clNone
ParentColor = False
Left = 60
Height = 13
Width = 41
end
object bRecord: TBitBtn
BorderSpacing.InnerBorder = 2
Caption = 'Record'
NumGlyphs = 0
OnClick = bRecordClick
TabOrder = 0
Left = 184
Height = 26
Top = 12
Width = 60
end
object cbRecordSource: TComboBox
MaxLength = 0
OnChange = cbRecordSourceChange
TabOrder = 1
Left = 60
Height = 21
Top = 16
Width = 116
end
object bStop: TBitBtn
BorderSpacing.InnerBorder = 2
Caption = 'Stop'
NumGlyphs = 0
OnClick = bStopClick
TabOrder = 2
Left = 248
Height = 26
Top = 12
Width = 56
end
object bOpen: TBitBtn
BorderSpacing.InnerBorder = 2
Caption = 'Open'
NumGlyphs = 0
OnClick = bOpenClick
TabOrder = 3
Left = 4
Height = 26
Top = 12
Width = 51
end
object FileOut1: TACSFileOut
Input = AudioIn1
left = 4
top = 268
end
object AudioIn1: TACSAudioIn
Driver = 'Wavemapper'
InBitsPerSample = 8
InChannels = 1
InSampleRate = 8000
left = 4
top = 236
end
object Mixer1: TACSMixer
MixerName = 'Realtek ALC655 rev 0'
left = 4
top = 204
end
end

View File

@@ -0,0 +1,82 @@
unit umain;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Buttons,
StdCtrls, acs_file, acs_audio, EditBtn,acs_classes,acs_mixer;
type
{ TForm1 }
TForm1 = class(TForm)
bOpen: TBitBtn;
Mixer1: TACSMixer;
AudioIn1: TACSAudioIn;
FileOut1: TACSFileOut;
bRecord: TBitBtn;
bStop: TBitBtn;
cbRecordSource: TComboBox;
Label1: TLabel;
procedure FormCreate(Sender: TObject);
procedure bOpenClick(Sender: TObject);
procedure bRecordClick(Sender: TObject);
procedure bStopClick(Sender: TObject);
procedure cbRecordSourceChange(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
var
i : Integer;
begin
for i := 0 to Mixer1.Channelcount-1 do
if Mixer1.IsRecordable(i) then
cbRecordSource.Items.Add(Mixer1.ChannelName[i]);
cbRecordSource.Text := Mixer1.ChannelName[Mixer1.RecordSource];
end;
procedure TForm1.bOpenClick(Sender: TObject);
begin
FileOut1.Open;
if FileExists(FileOut1.FileName) then
FileOut1.FileMode := foAppend;
end;
procedure TForm1.bRecordClick(Sender: TObject);
begin
FileOut1.Run;
end;
procedure TForm1.bStopClick(Sender: TObject);
begin
FileOut1.Stop;
end;
procedure TForm1.cbRecordSourceChange(Sender: TObject);
var
i : Integer;
begin
for i := 0 to Mixer1.Channelcount-1 do
if Mixer1.ChannelName[i] = cbRecordSource.Text then
Mixer1.RecordSource := i;
end;
initialization
{$I umain.lrs}
end.

View File

@@ -0,0 +1,87 @@
[FileVersion]
Version=6.0
[Compiler]
A=8
B=0
C=1
D=1
E=0
F=0
G=1
H=1
I=1
J=0
K=0
L=1
M=0
N=1
O=1
P=1
Q=0
R=0
S=0
T=0
U=0
V=1
W=0
X=1
Y=1
Z=1
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
[Linker]
MapFile=0
OutputObjs=0
ConsoleApp=1
DebugInfo=0
RemoteSymbols=0
MinStackSize=16384
MaxStackSize=1048576
ImageBase=4194304
ExeDescription=
[Directories]
OutputDir=
UnitOutputDir=
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=
Packages=vcl;rtl;dbrtl;adortl;vcldb;vclx;bdertl;vcldbx;ibxpress;dsnap;cds;bdecds;qrpt;teeui;teedb;tee;dss;teeqr;dsnapcrba;dsnapcon;VclSmp;vclshlctrls;dbexpress;dbxcds;indy;dclaxserver;visualclx;visualdbclx;ACS
Conditionals=
DebugSourceDirs=
UsePackages=0
[Parameters]
RunParams=
HostApplication=
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=
[Version Info]
IncludeVerInfo=0
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=0
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=0
Locale=1031
CodePage=1252
[Version Info Keys]
CompanyName=
FileDescription=
FileVersion=1.0.0.0
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=1.0.0.0
Comments=

View File

@@ -0,0 +1,17 @@
program player;
uses
Forms,
uMain in 'umain.pas' {fMain},
uPlaylist in 'uplaylist.pas' {fPlaylist},
uvis in 'uvis.pas' {fVizu};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TfMain, fMain);
Application.CreateForm(TfPlaylist, fPlaylist);
Application.CreateForm(TfVizu, fVizu);
Application.Run;
end.

760
acs/Demos/player/player.lpi Normal file
View File

@@ -0,0 +1,760 @@
<?xml version="1.0"?>
<CONFIG>
<ProjectOptions>
<PathDelim Value="\"/>
<Version Value="6"/>
<General>
<Flags>
<AlwaysBuild Value="False"/>
</Flags>
<MainUnit Value="0"/>
<IconPath Value="./"/>
<TargetFileExt Value=".exe"/>
<Title Value="Lazarus Player Example"/>
<UseXPManifest Value="True"/>
<ActiveEditorIndexAtStart Value="0"/>
</General>
<PublishOptions>
<Version Value="2"/>
<DestinationDirectory Value="$(TestDir)\publishedproject\"/>
<IgnoreBinaries Value="False"/>
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
<LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/>
</local>
</RunParams>
<RequiredPackages Count="2">
<Item1>
<PackageName Value="LCL"/>
</Item1>
<Item2>
<PackageName Value="laz_acs"/>
</Item2>
</RequiredPackages>
<Units Count="96">
<Unit0>
<Filename Value="player.lpr"/>
<IsPartOfProject Value="True"/>
<UnitName Value="player"/>
<CursorPos X="1" Y="18"/>
<TopLine Value="1"/>
<EditorIndex Value="4"/>
<UsageCount Value="63"/>
<Loaded Value="True"/>
</Unit0>
<Unit1>
<Filename Value="umain.pas"/>
<ComponentName Value="fMain"/>
<IsPartOfProject Value="True"/>
<ResourceFilename Value="umain.lrs"/>
<UnitName Value="uMain"/>
<CursorPos X="1" Y="113"/>
<TopLine Value="99"/>
<EditorIndex Value="0"/>
<UsageCount Value="63"/>
<Loaded Value="True"/>
</Unit1>
<Unit2>
<Filename Value="..\..\Src\classes\acs_audio.pas"/>
<UnitName Value="acs_audio"/>
<CursorPos X="25" Y="238"/>
<TopLine Value="225"/>
<EditorIndex Value="2"/>
<UsageCount Value="22"/>
<Loaded Value="True"/>
</Unit2>
<Unit3>
<Filename Value="..\..\Src\drivers\windows\acs_audio.inc"/>
<CursorPos X="19" Y="244"/>
<TopLine Value="228"/>
<UsageCount Value="20"/>
</Unit3>
<Unit4>
<Filename Value="..\..\..\..\lazarus\lcl\include\control.inc"/>
<CursorPos X="1" Y="1823"/>
<TopLine Value="1808"/>
<UsageCount Value="10"/>
</Unit4>
<Unit5>
<Filename Value="..\..\..\..\lazarus\lcl\include\buttoncontrol.inc"/>
<CursorPos X="1" Y="58"/>
<TopLine Value="43"/>
<UsageCount Value="10"/>
</Unit5>
<Unit6>
<Filename Value="..\..\..\..\lazarus\lcl\include\buttons.inc"/>
<CursorPos X="1" Y="242"/>
<TopLine Value="227"/>
<UsageCount Value="10"/>
</Unit6>
<Unit7>
<Filename Value="..\..\Src\drivers\ACS_StdAudio.pas"/>
<UnitName Value="acs_stdaudio"/>
<CursorPos X="10" Y="115"/>
<TopLine Value="83"/>
<UsageCount Value="20"/>
</Unit7>
<Unit8>
<Filename Value="..\..\Src\classes\acs_file.pas"/>
<UnitName Value="acs_file"/>
<CursorPos X="1" Y="291"/>
<TopLine Value="277"/>
<EditorIndex Value="1"/>
<UsageCount Value="22"/>
<Loaded Value="True"/>
</Unit8>
<Unit9>
<Filename Value="..\..\Src\fileformats\acs_allformats.pas"/>
<UnitName Value="acs_allformats"/>
<CursorPos X="8" Y="8"/>
<TopLine Value="1"/>
<UsageCount Value="17"/>
</Unit9>
<Unit10>
<Filename Value="..\..\Src\fileformats\acs_dsaudio.pas"/>
<UnitName Value="acs_dsaudio"/>
<CursorPos X="13" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="10"/>
</Unit10>
<Unit11>
<Filename Value="..\..\Src\fileformats\acs_dsfiles.pas"/>
<UnitName Value="acs_dsfiles"/>
<CursorPos X="1" Y="326"/>
<TopLine Value="305"/>
<UsageCount Value="14"/>
</Unit11>
<Unit12>
<Filename Value="..\..\Src\fileformats\acs_vorbis.pas"/>
<UnitName Value="acs_vorbis"/>
<CursorPos X="1" Y="462"/>
<TopLine Value="446"/>
<UsageCount Value="17"/>
</Unit12>
<Unit13>
<Filename Value="..\..\Src\classes\acs_classes.pas"/>
<UnitName Value="acs_classes"/>
<CursorPos X="25" Y="694"/>
<TopLine Value="680"/>
<EditorIndex Value="3"/>
<UsageCount Value="22"/>
<Loaded Value="True"/>
</Unit13>
<Unit14>
<Filename Value="..\..\Src\classes\ACS_Strings.pas"/>
<UnitName Value="ACS_Strings"/>
<CursorPos X="54" Y="48"/>
<TopLine Value="22"/>
<UsageCount Value="16"/>
</Unit14>
<Unit15>
<Filename Value="..\..\Src\drivers\acs_dxaudio.pas"/>
<UnitName Value="acs_dxaudio"/>
<CursorPos X="10" Y="335"/>
<TopLine Value="332"/>
<UsageCount Value="17"/>
</Unit15>
<Unit16>
<Filename Value="..\..\Src\fileformats\ACS_Wave.pas"/>
<UnitName Value="acs_wave"/>
<CursorPos X="16" Y="108"/>
<TopLine Value="76"/>
<UsageCount Value="10"/>
</Unit16>
<Unit17>
<Filename Value="..\..\..\..\lazarus\lcl\LResources.pp"/>
<UnitName Value="LResources"/>
<CursorPos X="26" Y="2101"/>
<TopLine Value="2082"/>
<UsageCount Value="10"/>
</Unit17>
<Unit18>
<Filename Value="..\Lazarus\Mediaplayer\uplayer.pas"/>
<HasResources Value="True"/>
<UnitName Value="uPlayer"/>
<CursorPos X="1" Y="351"/>
<TopLine Value="329"/>
<UsageCount Value="10"/>
</Unit18>
<Unit19>
<Filename Value="..\Win32\CDPlayer\Main.pas"/>
<UnitName Value="Main"/>
<CursorPos X="13" Y="121"/>
<TopLine Value="98"/>
<UsageCount Value="10"/>
</Unit19>
<Unit20>
<Filename Value="..\Win32\OggPlayer\Main.pas"/>
<UnitName Value="Main"/>
<CursorPos X="1" Y="129"/>
<TopLine Value="105"/>
<UsageCount Value="10"/>
</Unit20>
<Unit21>
<Filename Value="..\Win32\AudioPlayer\Main.pas"/>
<UnitName Value="Main"/>
<CursorPos X="13" Y="28"/>
<TopLine Value="28"/>
<UsageCount Value="10"/>
</Unit21>
<Unit22>
<Filename Value="..\..\..\..\fpc\packages\extra\winunits\activex.pp"/>
<UnitName Value="activex"/>
<CursorPos X="5" Y="2678"/>
<TopLine Value="2661"/>
<UsageCount Value="10"/>
</Unit22>
<Unit23>
<Filename Value="uplaylist.pas"/>
<ComponentName Value="fPlaylist"/>
<IsPartOfProject Value="True"/>
<ResourceFilename Value="uplaylist.lrs"/>
<UnitName Value="uPlaylist"/>
<CursorPos X="8" Y="32"/>
<TopLine Value="17"/>
<UsageCount Value="43"/>
</Unit23>
<Unit24>
<Filename Value="..\..\..\..\lazarus\lcl\interfaces\win32\win32object.inc"/>
<CursorPos X="1" Y="304"/>
<TopLine Value="287"/>
<UsageCount Value="10"/>
</Unit24>
<Unit25>
<Filename Value="..\..\Src\classes\acs_cdrom.pas"/>
<UnitName Value="acs_cdrom"/>
<CursorPos X="35" Y="6"/>
<TopLine Value="1"/>
<UsageCount Value="10"/>
</Unit25>
<Unit26>
<Filename Value="uvis.pas"/>
<ComponentName Value="fVizu"/>
<IsPartOfProject Value="True"/>
<ResourceFilename Value="uvis.lrs"/>
<UnitName Value="uvis"/>
<CursorPos X="34" Y="9"/>
<TopLine Value="58"/>
<UsageCount Value="40"/>
</Unit26>
<Unit27>
<Filename Value="..\..\Src\classes\ACS_Indicator.pas"/>
<UnitName Value="ACS_Indicator"/>
<CursorPos X="52" Y="186"/>
<TopLine Value="157"/>
<UsageCount Value="11"/>
</Unit27>
<Unit28>
<Filename Value="..\..\Src\classes\ACS_Procs.pas"/>
<UnitName Value="ACS_Procs"/>
<CursorPos X="5" Y="268"/>
<TopLine Value="235"/>
<UsageCount Value="11"/>
</Unit28>
<Unit29>
<Filename Value="..\..\..\..\lazarus\lcl\Graphics.pp"/>
<UnitName Value="Graphics"/>
<CursorPos X="15" Y="927"/>
<TopLine Value="911"/>
<UsageCount Value="11"/>
</Unit29>
<Unit30>
<Filename Value="..\..\..\..\lazarus\lcl\graphtype.pp"/>
<UnitName Value="GraphType"/>
<CursorPos X="12" Y="2"/>
<TopLine Value="1"/>
<UsageCount Value="11"/>
</Unit30>
<Unit31>
<Filename Value="..\..\..\..\fpc\fcl\image\fpimage.pp"/>
<UnitName Value="FPimage"/>
<CursorPos X="15" Y="32"/>
<TopLine Value="14"/>
<UsageCount Value="10"/>
</Unit31>
<Unit32>
<Filename Value="..\..\..\..\lazarus\ide\lazarus.pp"/>
<UnitName Value="Lazarus"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="10"/>
</Unit32>
<Unit33>
<Filename Value="..\..\..\..\lazarus\lcl\include\filedialog.inc"/>
<CursorPos X="1" Y="50"/>
<TopLine Value="33"/>
<UsageCount Value="10"/>
</Unit33>
<Unit34>
<Filename Value="windows\C\src\LKomponenten\acs\Src\fileformats\ACS_Vorbis.pas"/>
<UnitName Value="ACS_Vorbis"/>
<CursorPos X="37" Y="284"/>
<TopLine Value="255"/>
<UsageCount Value="10"/>
</Unit34>
<Unit35>
<Filename Value="windows\C\src\LKomponenten\acs\Src\fileformats\ACS_Allformats.pas"/>
<UnitName Value="acs_allformats"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="10"/>
</Unit35>
<Unit36>
<Filename Value="windows\D\LKomponenten\acs\Src\classes\ACS_File.pas"/>
<UnitName Value="ACS_File"/>
<CursorPos X="14" Y="231"/>
<TopLine Value="195"/>
<UsageCount Value="11"/>
</Unit36>
<Unit37>
<Filename Value="windows\D\LKomponenten\acs\Src\classes\ACS_Classes.pas"/>
<UnitName Value="ACS_Classes"/>
<CursorPos X="19" Y="231"/>
<TopLine Value="213"/>
<UsageCount Value="11"/>
</Unit37>
<Unit38>
<Filename Value="windows\D\LKomponenten\acs\Src\classes\ACS_Audio.pas"/>
<UnitName Value="ACS_Audio"/>
<CursorPos X="19" Y="308"/>
<TopLine Value="290"/>
<UsageCount Value="11"/>
</Unit38>
<Unit39>
<Filename Value="windows\D\LKomponenten\acs\Src\classes\ACS_AudioMix.pas"/>
<UnitName Value="ACS_AudioMix"/>
<CursorPos X="42" Y="80"/>
<TopLine Value="62"/>
<UsageCount Value="10"/>
</Unit39>
<Unit40>
<Filename Value="windows\D\LKomponenten\acs\Src\classes\ACS_CDROM.pas"/>
<UnitName Value="ACS_CDROM"/>
<CursorPos X="19" Y="127"/>
<TopLine Value="109"/>
<UsageCount Value="10"/>
</Unit40>
<Unit41>
<Filename Value="windows\D\LKomponenten\acs\Src\classes\linux\ACS_CDROM.inc"/>
<CursorPos X="18" Y="356"/>
<TopLine Value="320"/>
<UsageCount Value="10"/>
</Unit41>
<Unit42>
<Filename Value="windows\D\LKomponenten\acs\Src\classes\ACS_Converters.pas"/>
<UnitName Value="ACS_Converters"/>
<CursorPos X="12" Y="823"/>
<TopLine Value="803"/>
<UsageCount Value="10"/>
</Unit42>
<Unit43>
<Filename Value="windows\D\LKomponenten\acs\Src\classes\ACS_Types.pas"/>
<UnitName Value="ACS_Types"/>
<CursorPos X="41" Y="75"/>
<TopLine Value="34"/>
<UsageCount Value="10"/>
</Unit43>
<Unit44>
<Filename Value="windows\D\LKomponenten\acs\Src\classes\ACS_Procs.pas"/>
<UnitName Value="ACS_Procs"/>
<CursorPos X="38" Y="276"/>
<TopLine Value="258"/>
<UsageCount Value="10"/>
</Unit44>
<Unit45>
<Filename Value="windows\D\LKomponenten\acs\Src\classes\ACS_Filters.pas"/>
<UnitName Value="ACS_Filters"/>
<CursorPos X="23" Y="673"/>
<TopLine Value="654"/>
<UsageCount Value="10"/>
</Unit45>
<Unit46>
<Filename Value="windows\D\LKomponenten\acs\Src\classes\ACS_Indicator.pas"/>
<UnitName Value="ACS_Indicator"/>
<CursorPos X="21" Y="115"/>
<TopLine Value="93"/>
<UsageCount Value="10"/>
</Unit46>
<Unit47>
<Filename Value="windows\D\LKomponenten\acs\Src\classes\ACS_Misc.pas"/>
<UnitName Value="ACS_Misc"/>
<CursorPos X="12" Y="496"/>
<TopLine Value="478"/>
<UsageCount Value="10"/>
</Unit47>
<Unit48>
<Filename Value="windows\D\LKomponenten\acs\Src\classes\ACS_MultiMix.pas"/>
<UnitName Value="ACS_MultiMix"/>
<CursorPos X="28" Y="235"/>
<TopLine Value="217"/>
<UsageCount Value="10"/>
</Unit48>
<Unit49>
<Filename Value="windows\D\LKomponenten\acs\Src\drivers\ACS_StdAudio.pas"/>
<UnitName Value="ACS_StdAudio"/>
<CursorPos X="42" Y="164"/>
<TopLine Value="146"/>
<UsageCount Value="10"/>
</Unit49>
<Unit50>
<Filename Value="windows\D\LKomponenten\acs\Src\drivers\linux\ACS_Audio.inc"/>
<CursorPos X="12" Y="69"/>
<TopLine Value="50"/>
<UsageCount Value="10"/>
</Unit50>
<Unit51>
<Filename Value="windows\D\LKomponenten\acs\Src\classes\ACS_VolumeQuery.pas"/>
<UnitName Value="ACS_VolumeQuery"/>
<CursorPos X="27" Y="166"/>
<TopLine Value="147"/>
<UsageCount Value="10"/>
</Unit51>
<Unit52>
<Filename Value="windows\D\LKomponenten\acs\Src\Linux\acs_reg.pas"/>
<UnitName Value="acs_reg"/>
<CursorPos X="67" Y="35"/>
<TopLine Value="11"/>
<UsageCount Value="10"/>
</Unit52>
<Unit53>
<Filename Value="windows\D\LKomponenten\acs\Src\classes\ACS_Mixer.pas"/>
<UnitName Value="ACS_Mixer"/>
<CursorPos X="16" Y="241"/>
<TopLine Value="212"/>
<UsageCount Value="10"/>
</Unit53>
<Unit54>
<Filename Value="windows\D\LKomponenten\acs\Src\classes\linux\ACS_Mixer.inc"/>
<CursorPos X="19" Y="119"/>
<TopLine Value="101"/>
<UsageCount Value="10"/>
</Unit54>
<Unit55>
<Filename Value="windows\D\LKomponenten\acs\Src\classes\ACS_Streams.pas"/>
<UnitName Value="ACS_Streams"/>
<CursorPos X="14" Y="202"/>
<TopLine Value="172"/>
<UsageCount Value="10"/>
</Unit55>
<Unit56>
<Filename Value="windows\D\LKomponenten\acs\Src\fileformats\ACS_Vorbis.pas"/>
<UnitName Value="ACS_Vorbis"/>
<CursorPos X="14" Y="63"/>
<TopLine Value="55"/>
<UsageCount Value="10"/>
</Unit56>
<Unit57>
<Filename Value="windows\D\LKomponenten\acs\Src\fileformats\acs_flac.pas"/>
<UnitName Value="ACS_FLAC"/>
<CursorPos X="1" Y="60"/>
<TopLine Value="32"/>
<UsageCount Value="10"/>
</Unit57>
<Unit58>
<Filename Value="windows\D\LKomponenten\acs\Src\fileformats\acs_lame.pas"/>
<UnitName Value="ACS_LAME"/>
<CursorPos X="29" Y="89"/>
<TopLine Value="64"/>
<UsageCount Value="10"/>
</Unit58>
<Unit59>
<Filename Value="windows\D\LKomponenten\acs\Src\fileformats\acs_mad.pas"/>
<UnitName Value="ACS_MAD"/>
<CursorPos X="16" Y="62"/>
<TopLine Value="46"/>
<UsageCount Value="10"/>
</Unit59>
<Unit60>
<Filename Value="windows\D\LKomponenten\acs\Src\fileformats\ACS_Wave.pas"/>
<UnitName Value="ACS_Wave"/>
<CursorPos X="16" Y="1361"/>
<TopLine Value="1359"/>
<UsageCount Value="10"/>
</Unit60>
<Unit61>
<Filename Value="umain.lfm"/>
<CursorPos X="30" Y="559"/>
<TopLine Value="527"/>
<UsageCount Value="10"/>
<SyntaxHighlighter Value="LFM"/>
</Unit61>
<Unit62>
<Filename Value="..\..\..\..\fpc\rtl\objpas\classes\classesh.inc"/>
<CursorPos X="17" Y="193"/>
<TopLine Value="175"/>
<UsageCount Value="10"/>
</Unit62>
<Unit63>
<Filename Value="..\..\..\..\fpc\rtl\objpas\classes\lists.inc"/>
<CursorPos X="1" Y="370"/>
<TopLine Value="368"/>
<UsageCount Value="10"/>
</Unit63>
<Unit64>
<Filename Value="..\..\Src\fileformats\ACS_FLAC.pas"/>
<UnitName Value="ACS_FLAC"/>
<CursorPos X="1" Y="65"/>
<TopLine Value="65"/>
<UsageCount Value="10"/>
</Unit64>
<Unit65>
<Filename Value="..\..\Src\fileformats\ACS_MAC.pas"/>
<UnitName Value="ACS_MAC"/>
<CursorPos X="1" Y="49"/>
<TopLine Value="49"/>
<UsageCount Value="10"/>
</Unit65>
<Unit66>
<Filename Value="..\..\..\..\lazarus\lcl\interfaces\win32\Win32WSControls.pp"/>
<UnitName Value="Win32WSControls"/>
<CursorPos X="30" Y="209"/>
<TopLine Value="191"/>
<UsageCount Value="10"/>
</Unit66>
<Unit67>
<Filename Value="..\..\Src\fileformats\ACS_LAME.pas"/>
<UnitName Value="ACS_LAME"/>
<CursorPos X="14" Y="61"/>
<TopLine Value="49"/>
<UsageCount Value="10"/>
</Unit67>
<Unit68>
<Filename Value="..\..\Src\fileformats\ACS_MAD.pas"/>
<UnitName Value="ACS_MAD"/>
<CursorPos X="14" Y="239"/>
<TopLine Value="207"/>
<UsageCount Value="10"/>
</Unit68>
<Unit69>
<Filename Value="..\..\..\..\fpc\rtl\inc\systemh.inc"/>
<CursorPos X="11" Y="370"/>
<TopLine Value="354"/>
<UsageCount Value="10"/>
</Unit69>
<Unit70>
<Filename Value="..\..\..\lazreport\source\lr_desgn.pas"/>
<ComponentName Value="frDesignerForm"/>
<HasResources Value="True"/>
<UnitName Value="LR_Desgn"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="10"/>
</Unit70>
<Unit71>
<Filename Value="windows\D\lazarus\lcl\lresources.pp"/>
<UnitName Value="LResources"/>
<CursorPos X="1" Y="2098"/>
<TopLine Value="2077"/>
<UsageCount Value="10"/>
</Unit71>
<Unit72>
<Filename Value="windows\D\fpc\rtl\inc\systemh.inc"/>
<CursorPos X="11" Y="370"/>
<TopLine Value="352"/>
<UsageCount Value="10"/>
</Unit72>
<Unit73>
<Filename Value="..\..\..\..\acs tmp\Src\Common\ACS_Wave.pas"/>
<UnitName Value="ACS_Wave"/>
<CursorPos X="1" Y="126"/>
<TopLine Value="123"/>
<UsageCount Value="10"/>
</Unit73>
<Unit74>
<Filename Value="windows\D\fpc\rtl\i386\i386.inc"/>
<CursorPos X="72" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="10"/>
</Unit74>
<Unit75>
<Filename Value="windows\D\acs tmp\Src\Common\ACS_Wave.pas"/>
<UnitName Value="ACS_Wave"/>
<CursorPos X="20" Y="899"/>
<TopLine Value="869"/>
<UsageCount Value="10"/>
</Unit75>
<Unit76>
<Filename Value="..\..\Src\classes\windows\acs_cdrom.inc"/>
<CursorPos X="16" Y="266"/>
<TopLine Value="244"/>
<UsageCount Value="10"/>
</Unit76>
<Unit77>
<Filename Value="..\..\..\..\lazarus\lcl\include\canvas.inc"/>
<CursorPos X="10" Y="1476"/>
<TopLine Value="1469"/>
<UsageCount Value="10"/>
</Unit77>
<Unit78>
<Filename Value="..\..\..\..\fpc\fcl\image\fpcanvas.pp"/>
<UnitName Value="FPCanvas"/>
<CursorPos X="13" Y="225"/>
<TopLine Value="193"/>
<UsageCount Value="10"/>
</Unit78>
<Unit79>
<Filename Value="..\..\..\..\fpc\fcl\image\FPCanvas.inc"/>
<CursorPos X="1" Y="267"/>
<TopLine Value="265"/>
<UsageCount Value="10"/>
</Unit79>
<Unit80>
<Filename Value="..\..\..\..\SRC\lazarus\ide\lazarus.pp"/>
<UnitName Value="Lazarus"/>
<CursorPos X="27" Y="20"/>
<TopLine Value="1"/>
<UsageCount Value="10"/>
</Unit80>
<Unit81>
<Filename Value="..\..\..\..\SRC\LKomponenten\acs\Src\fileformats\acs_allformats.pas"/>
<UnitName Value="acs_allformats"/>
<CursorPos X="8" Y="13"/>
<TopLine Value="1"/>
<UsageCount Value="10"/>
</Unit81>
<Unit82>
<Filename Value="..\..\..\..\SRC\LKomponenten\acs\Src\fileformats\acs_wave.pas"/>
<UnitName Value="acs_wave"/>
<CursorPos X="3" Y="1485"/>
<TopLine Value="1462"/>
<UsageCount Value="10"/>
</Unit82>
<Unit83>
<Filename Value="..\..\..\..\SRC\LKomponenten\acs\Src\fileformats\acs_vorbis.pas"/>
<UnitName Value="acs_vorbis"/>
<CursorPos X="12" Y="446"/>
<TopLine Value="416"/>
<UsageCount Value="10"/>
</Unit83>
<Unit84>
<Filename Value="..\..\..\..\SRC\LKomponenten\acs\Src\fileformats\general\Codec.pas"/>
<UnitName Value="codec"/>
<CursorPos X="16" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="10"/>
</Unit84>
<Unit85>
<Filename Value="..\..\..\..\SRC\LKomponenten\acs\Src\fileformats\general\vorbisfile.pas"/>
<UnitName Value="vorbisfile"/>
<CursorPos X="21" Y="224"/>
<TopLine Value="191"/>
<UsageCount Value="10"/>
</Unit85>
<Unit86>
<Filename Value="..\..\..\..\SRC\LKomponenten\acs\Src\fileformats\general\ogg.pas"/>
<UnitName Value="ogg"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="10"/>
</Unit86>
<Unit87>
<Filename Value="..\..\..\..\SRC\LKomponenten\acs\Src\fileformats\general\vorbis_codec.pas"/>
<UnitName Value="codec"/>
<CursorPos X="12" Y="34"/>
<TopLine Value="1"/>
<UsageCount Value="10"/>
</Unit87>
<Unit88>
<Filename Value="..\..\..\..\SRC\LKomponenten\acs\Src\fileformats\general\vorbiscodec.pas"/>
<UnitName Value="vorbiscodec"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="427"/>
<UsageCount Value="10"/>
</Unit88>
<Unit89>
<Filename Value="..\..\..\..\SRC\LKomponenten\acs\Src\fileformats\general\VorbisEnc.pas"/>
<UnitName Value="vorbisenc"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="10"/>
</Unit89>
<Unit90>
<Filename Value="..\..\..\..\SRC\LKomponenten\acs\Src\classes\acs_strings.pas"/>
<UnitName Value="acs_strings"/>
<CursorPos X="1" Y="23"/>
<TopLine Value="1"/>
<UsageCount Value="10"/>
</Unit90>
<Unit91>
<Filename Value="..\..\..\..\SRC\fpc\rtl\win32\wininc\ascdef.inc"/>
<CursorPos X="10" Y="70"/>
<TopLine Value="47"/>
<UsageCount Value="10"/>
</Unit91>
<Unit92>
<Filename Value="..\..\..\..\SRC\LKomponenten\acs\Src\classes\acs_classes.pas"/>
<UnitName Value="acs_classes"/>
<CursorPos X="1" Y="175"/>
<TopLine Value="164"/>
<UsageCount Value="10"/>
</Unit92>
<Unit93>
<Filename Value="windows\D\LKomponenten\acs\Src\drivers\acs_alsaaudio.pas"/>
<UnitName Value="acs_alsaaudio"/>
<CursorPos X="1" Y="356"/>
<TopLine Value="347"/>
<UsageCount Value="11"/>
</Unit93>
<Unit94>
<Filename Value="windows\D\LKomponenten\acs\Src\drivers\acs_aolive.pas"/>
<UnitName Value="acs_aolive"/>
<CursorPos X="1" Y="205"/>
<TopLine Value="177"/>
<UsageCount Value="10"/>
</Unit94>
<Unit95>
<Filename Value="windows\D\LKomponenten\acs\Src\drivers\linux\libao.pas"/>
<UnitName Value="libao"/>
<CursorPos X="22" Y="47"/>
<TopLine Value="37"/>
<UsageCount Value="10"/>
</Unit95>
</Units>
<JumpHistory Count="0" HistoryIndex="-1"/>
</ProjectOptions>
<CompilerOptions>
<Version Value="5"/>
<PathDelim Value="\"/>
<SearchPaths>
<SrcPath Value="$(LazarusDir)\lcl\;$(LazarusDir)\lcl\interfaces\$(LCLWidgetType)\"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<DelphiCompat Value="True"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<Generate Value="Faster"/>
</CodeGeneration>
<Linking>
<Options>
<Win32>
<GraphicApplication Value="True"/>
</Win32>
</Options>
</Linking>
<Other>
<CompilerPath Value="$(CompPath)"/>
</Other>
</CompilerOptions>
<Debugging>
<BreakPoints Count="1">
<Item1>
<Source Value="..\..\Src\fileformats\ACS_FLAC.pas"/>
<Line Value="576"/>
</Item1>
</BreakPoints>
<Watches Count="2">
<Item1>
<Expression Value="newcolor"/>
</Item1>
<Item2>
<Expression Value="DrvName"/>
</Item2>
</Watches>
</Debugging>
</CONFIG>

View File

@@ -0,0 +1,26 @@
program player;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Interfaces, // this includes the LCL widgetset
Forms
{ you can add units after this }
,uMain
,uPlaylist
,uVis;
{$IFDEF WINDOWS}{$R manifest.rc}{$ENDIF}
begin
Application.Title:='Lazarus Player Example';
Application.Initialize;
Application.CreateForm(TFMain, FMain);
Application.CreateForm(TfPlaylist, fPlaylist);
Application.CreateForm(TfVizu, fVizu);
Application.Run;
end.

217
acs/Demos/player/umain.dfm Normal file
View File

@@ -0,0 +1,217 @@
object fMain: TfMain
Left = 271
Top = 150
BorderStyle = bsToolWindow
Caption = 'Audioplayer'
ClientHeight = 99
ClientWidth = 204
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = True
OnClose = FormClose
PixelsPerInch = 96
TextHeight = 13
object Panel1: TPanel
Left = 4
Top = 0
Width = 192
Height = 64
BevelOuter = bvLowered
FullRepaint = False
TabOrder = 0
object lTime: TLabel
Left = 1
Top = 24
Width = 108
Height = 29
AutoSize = False
Caption = '00:00:00'
Color = clNone
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -25
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentColor = False
ParentFont = False
Transparent = True
end
object lFilename: TLabel
Left = 1
Top = 1
Width = 190
Height = 13
Align = alTop
Caption = 'File:'
Color = clNone
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -9
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentColor = False
ParentFont = False
Transparent = True
WordWrap = True
end
object lTime1: TLabel
Left = 1
Top = 21
Width = 57
Height = 13
Caption = 'Time remain'
Color = clNone
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -9
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentColor = False
ParentFont = False
Transparent = True
end
object lTime2: TLabel
Left = 116
Top = 21
Width = 14
Height = 13
Caption = 'left'
Color = clNone
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -9
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentColor = False
ParentFont = False
Transparent = True
end
object lLeft: TLabel
Left = 116
Top = 32
Width = 42
Height = 13
Caption = '00:00:00'
Color = clNone
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentColor = False
ParentFont = False
Transparent = True
end
object Progress: TProgressBar
Left = 1
Top = 55
Width = 190
Height = 8
Align = alBottom
Min = 0
Max = 1000
Smooth = True
TabOrder = 0
end
end
object btOpen: TBitBtn
Left = 4
Top = 67
Width = 28
Height = 26
TabOrder = 1
OnClick = OpenClick
Layout = blGlyphTop
end
object btRew: TBitBtn
Left = 32
Top = 67
Width = 28
Height = 26
TabOrder = 2
OnClick = btRewClick
end
object btFfw: TBitBtn
Left = 60
Top = 67
Width = 28
Height = 26
TabOrder = 3
OnClick = btFfwClick
Layout = blGlyphRight
end
object btPlay: TBitBtn
Left = 88
Top = 67
Width = 28
Height = 30
TabOrder = 4
OnClick = PlayClick
end
object btStop: TBitBtn
Left = 144
Top = 67
Width = 28
Height = 30
TabOrder = 5
OnClick = StopClick
end
object btPause: TBitBtn
Left = 116
Top = 67
Width = 28
Height = 30
TabOrder = 6
OnClick = Pauseclick
end
object btPlaylist: TBitBtn
Left = 174
Top = 67
Width = 22
Height = 17
TabOrder = 7
OnClick = btPlaylistClick
end
object btVizu: TBitBtn
Left = 174
Top = 84
Width = 22
Height = 13
Caption = 'Vis'
TabOrder = 8
OnClick = btVizuClick
end
object FileIn1: TACSFileIn
EndSample = -1
Loop = False
StartSample = 0
Left = 72
end
object PlayTimer: TTimer
Enabled = False
Interval = 100
OnTimer = Timer1Timer
Left = 72
Top = 32
end
object AudioOut1: TACSAudioOut
Driver = 'Wavemapper'
Device = 0
Volume = 0
Input = SoundIndicator
Delay = 6
SuspendWhenIdle = True
OnDone = AudioOut1Done
OnThreadException = AudioOut1ThreadException
Left = 40
Top = 32
end
object SoundIndicator: TACSSoundIndicator
Input = FileIn1
Left = 40
end
end

444
acs/Demos/player/umain.lfm Normal file
View File

@@ -0,0 +1,444 @@
object fMain: TfMain
Left = 271
Height = 99
Top = 150
Width = 204
HorzScrollBar.Page = 203
VertScrollBar.Page = 98
ActiveControl = btOpen
BorderStyle = bsToolWindow
Caption = 'Audioplayer'
ClientHeight = 99
ClientWidth = 204
OnClose = FormClose
OnCreate = FormCreate
object Panel1: TPanel
Left = 4
Height = 64
Width = 192
BevelOuter = bvLowered
ClientHeight = 64
ClientWidth = 192
FullRepaint = False
TabOrder = 0
object lTime: TLabel
Left = 1
Height = 29
Top = 24
Width = 108
AutoSize = False
Caption = '00:00:00'
Font.Height = -25
ParentColor = False
end
object lFilename: TLabel
Left = 1
Height = 12
Top = 1
Width = 190
Align = alTop
Caption = 'File:'
Font.Height = -9
ParentColor = False
WordWrap = True
end
object lTime1: TLabel
Left = 1
Height = 12
Top = 20
Width = 53
Caption = 'Time remain'
Font.Height = -9
ParentColor = False
OnClick = lTime1Click
end
object lTime2: TLabel
Left = 116
Height = 12
Top = 20
Width = 14
Caption = 'left'
Font.Height = -9
ParentColor = False
end
object lLeft: TLabel
Left = 116
Height = 15
Top = 28
Width = 51
Caption = '00:00:00'
Font.Height = -12
ParentColor = False
end
object Progress: TProgressBar
Left = 1
Height = 10
Top = 53
Width = 190
Align = alBottom
Max = 1000
Smooth = True
end
end
object btOpen: TBitBtn
Left = 4
Height = 26
Top = 67
Width = 28
BorderSpacing.InnerBorder = 2
Glyph.Data = {
46050000424D4605000000000000360000002800000012000000120000000100
2000000000001005000064000000640000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000232323FF4A4A4AFF494A4AFF4B4C4CFF4C4C4CFF4B4C
4CFF4A4B4BFF484949FF464646FF434343FF404141FF333434FF1E1F1FFF0000
0000000000000000000000000000000000001B334EFFBDBDBDFFA5A6A6FFA8AA
AAFFABADADFFACAEAEFFAAABABFFA6A7A7FFA0A1A1FF999A9AFF929494FF8B8D
8DFF484949FF00000000000000000000000000000000000000001B334EFF5053
56FFCECECEFFBCBEBEFFC2C4C4FFC5C6C6FFC2C3C3FFBEBFBFFFB5B6B6FFADAE
AEFFA4A5A5FF9D9E9EFF6E6F6FFF121212FF0000000000000000000000000000
00001B334EFF183049FFCDCDCDFFC9CACAFFD4D5D5FFD4D5D5FFD0D2D2FFCBCC
CCFFC1C2C2FFB8B9B9FFAEAFAFFFA1A2A2FF949595FF484949FF000000000000
000000000000000000001B334EFF447DB7FF4E5153FFDADADAFFDADBDBFFE0E1
E1FFDCDDDDFFD5D6D6FFCACBCBFFC0C1C1FFB5B6B6FFA8A9A9FF9FA0A0FF6768
68FF212222FF0000000000000000000000001B334EFF82C2FEFF19314AFFDBDB
DBFFDEDFDFFFE7E8E8FFE4E6E6FFDEDFDFFFD1D2D2FFC6C7C7FFB9BABAFFACAD
ADFF9FA0A0FF939494FF484949FF0000000000000000000000001B334EFF82C2
FEFF4E86C4FF4C4F52FFF5F5F5FFF5F5F5FFECECECFFE4E4E4FFDCDCDCFFD4D4
D4FFCBCBCBFFC4C4C4FFBCBCBCFFB5B5B5FFB3B3B3FF303030FF000000000000
00001B334EFF8AC8FEFF82C2FEFF1B334EFF4D5053FF4D5053FF4F5255FF575A
5CFF4E5154FF4E5154FF505356FF505356FF4E5154FF000000FF000000FF0000
00FF00000000000000001B334EFF9AD3FEFF87C5FDFF82C2FEFF62ACF8FF62AC
F8FF62ACF8FF62ACF8FF62ACF8FF62ACF8FF62ACF8FF62ACF8FF000000FF0000
0000000000000000000000000000000000001B334EFF66A5E5FF9AD3FEFF85C5
FEFF66A5E5FF1B334EFF1B334EFF1B334EFF1B334EFF1B334EFF1B334EFF1B33
4EFF000000000000000000000000000000000000000000000000000000001B33
4EFF1B334EFF1B334EFF1B334EFF000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000FF000000FF000000FF000000FF000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000FF000000FF0000
00FF000000000000000000000000000000000000000000000000000000000000
0000000000FF0000000000000000000000000000000000000000000000FF0000
00FF000000FF000000FF00000000000000000000000000000000000000000000
0000000000000000000000000000000000FF000000FF00000000000000FF0000
00FF000000FF000000FF00000000000000FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000FF0000
00FF000000FF000000FF00000000000000000000000000000000000000000000
00000000000000000000
}
Layout = blGlyphTop
NumGlyphs = 0
OnClick = OpenClick
TabOrder = 1
end
object btRew: TBitBtn
Left = 32
Height = 26
Top = 67
Width = 28
BorderSpacing.InnerBorder = 2
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000CED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FF808080FF808080FF808080FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FF808080FF808080FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FF100808FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FF808080FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FF100808FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FF8080
80FF211818FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FF100808FF211818FF808080FFCED6D6FFCED6D6FF808080FF2118
18FF211818FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FF100808FF211818FF808080FFCED6D6FF808080FF211818FF2118
18FF211818FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FF100808FF211818FF808080FFCED6D6FF100808FF211818FF2118
18FF211818FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FF100808FF211818FF808080FFCED6D6FFCED6D6FF100808FF2118
18FF211818FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FF100808FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FF1008
08FF211818FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FF100808FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FF100808FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FF100808FF100808FF100808FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FF100808FF100808FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FF
}
NumGlyphs = 0
OnClick = btRewClick
TabOrder = 2
end
object btFfw: TBitBtn
Left = 60
Height = 26
Top = 67
Width = 28
BorderSpacing.InnerBorder = 2
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000CED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FF808080FF808080FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FF808080FF808080FF808080FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FF808080FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FF808080FF211818FF100808FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FF808080FF211818FF211818FF808080FFCED6D6FFCED6D6FFCED6
D6FF808080FF211818FF100808FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FF808080FF211818FF211818FF211818FF808080FFCED6D6FFCED6
D6FF808080FF211818FF100808FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FF808080FF211818FF211818FF211818FF211818FF808080FFCED6
D6FF808080FF211818FF100808FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FF808080FF211818FF211818FF211818FF211818FF100808FFCED6
D6FF808080FF211818FF100808FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FF808080FF211818FF211818FF211818FF100808FFCED6D6FFCED6
D6FF808080FF211818FF100808FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FF808080FF211818FF211818FF100808FFCED6D6FFCED6D6FFCED6
D6FF808080FF211818FF100808FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FF808080FF211818FF100808FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FF808080FF211818FF100808FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FF100808FF100808FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FF100808FF100808FF100808FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FF
}
Layout = blGlyphRight
NumGlyphs = 0
OnClick = btFfwClick
TabOrder = 3
end
object btPlay: TBitBtn
Left = 88
Height = 30
Top = 67
Width = 28
BorderSpacing.InnerBorder = 2
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000C8D0D4FFC8D0
D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0
D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0
D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0
D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0
D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0
D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0
D4FFC8D0D4FF2D2D2AFF2D2D2AFFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0
D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0
D4FFC8D0D4FF120F0CFF201D1BFF2D2D2AFF2D2D2AFFC8D0D4FFC8D0D4FFC8D0
D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0
D4FFC8D0D4FF120F0CFF201D1BFF201D1BFF201D1BFF2D2D2AFF2D2D2AFFC8D0
D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0
D4FFC8D0D4FF120F0CFF201D1BFF201D1BFF201D1BFF201D1BFF201D1BFF2D2D
2AFF2D2D2AFFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0
D4FFC8D0D4FF120F0CFF201D1BFF201D1BFF201D1BFF201D1BFF201D1BFF201D
1BFF201D1BFF2D2D2AFF2D2D2AFFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0
D4FFC8D0D4FF120F0CFF201D1BFF201D1BFF201D1BFF201D1BFF201D1BFF201D
1BFF201D1BFF120F0CFF120F0CFFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0
D4FFC8D0D4FF120F0CFF201D1BFF201D1BFF201D1BFF201D1BFF201D1BFF120F
0CFF120F0CFFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0
D4FFC8D0D4FF120F0CFF201D1BFF201D1BFF201D1BFF120F0CFF120F0CFFC8D0
D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0
D4FFC8D0D4FF120F0CFF201D1BFF120F0CFF120F0CFFC8D0D4FFC8D0D4FFC8D0
D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0
D4FFC8D0D4FF120F0CFF120F0CFFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0
D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0
D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0
D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0
D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0
D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0
D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0
D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FFC8D0D4FF
}
NumGlyphs = 0
OnClick = PlayClick
TabOrder = 4
end
object btStop: TBitBtn
Left = 144
Height = 30
Top = 67
Width = 28
BorderSpacing.InnerBorder = 2
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000CED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FF808080FF808080FF808080FF808080FF808080FF808080FF8080
80FF808080FF808080FF808080FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FF100808FF211818FF211818FF211818FF211818FF211818FF2118
18FF211818FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FF100808FF211818FF211818FF211818FF211818FF211818FF2118
18FF211818FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FF100808FF211818FF211818FF211818FF211818FF211818FF2118
18FF211818FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FF100808FF211818FF211818FF211818FF211818FF211818FF2118
18FF211818FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FF100808FF211818FF211818FF211818FF211818FF211818FF2118
18FF211818FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FF100808FF211818FF211818FF211818FF211818FF211818FF2118
18FF211818FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FF100808FF211818FF211818FF211818FF211818FF211818FF2118
18FF211818FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FF100808FF211818FF211818FF211818FF211818FF211818FF2118
18FF211818FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FF100808FF100808FF100808FF100808FF100808FF100808FF1008
08FF100808FF100808FF100808FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FF
}
NumGlyphs = 0
OnClick = StopClick
TabOrder = 5
end
object btPause: TBitBtn
Left = 116
Height = 30
Top = 67
Width = 28
BorderSpacing.InnerBorder = 2
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000CED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FF808080FF808080FF808080FF808080FFCED6D6FFCED6D6FFCED6D6FF8080
80FF808080FF808080FF808080FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FF100808FF211818FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FF1008
08FF211818FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FF100808FF211818FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FF1008
08FF211818FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FF100808FF211818FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FF1008
08FF211818FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FF100808FF211818FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FF1008
08FF211818FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FF100808FF211818FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FF1008
08FF211818FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FF100808FF211818FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FF1008
08FF211818FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FF100808FF211818FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FF1008
08FF211818FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FF100808FF211818FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FF1008
08FF211818FF211818FF808080FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FF100808FF100808FF100808FF100808FFCED6D6FFCED6D6FFCED6D6FF1008
08FF100808FF100808FF100808FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6
D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FFCED6D6FF
}
NumGlyphs = 0
OnClick = Pauseclick
TabOrder = 6
end
object btPlaylist: TBitBtn
Left = 174
Height = 17
Top = 67
Width = 22
BorderSpacing.InnerBorder = 2
Glyph.Data = {
9E020000424D9E0200000000000036000000280000000B0000000E0000000100
2000000000006802000064000000640000000000000000000000000000FF0000
00FF000000FF000000FF000000FF000000FF000000FF00000000000000000000
000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000
00FF00000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFF000000FF000000000000000000000000000000000000
00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000FF0000
00FF0000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFF000000FFFFFFFFFF000000FF0000000000000000000000FFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFF000000FF000000000000
0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000FFFFFF
FFFF000000FF000000FF000000FF00000000000000FF000000FF000000FF0000
00FFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFF000000FF000000000000
0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
FFFF000000FF0000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFF000000FF000000FFFFFFFFFF000000FF0000000000000000000000000000
00FF000000FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFF000000FF0000
0000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFF000000FF00000000000000000000000000000000000000FFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000FF00000000000000000000
00000000000000000000000000FF000000FF000000FF000000FF000000000000
0000
}
NumGlyphs = 0
OnClick = btPlaylistClick
TabOrder = 7
end
object btVizu: TBitBtn
Left = 174
Height = 13
Top = 84
Width = 22
BorderSpacing.InnerBorder = 2
Caption = 'Vis'
NumGlyphs = 0
OnClick = btVizuClick
TabOrder = 8
end
object FileIn1: TACSFileIn
EndSample = -1
left = 172
top = 36
end
object PlayTimer: TTimer
Enabled = False
Interval = 50
OnTimer = Timer1Timer
left = 140
top = 36
end
object AudioOut1: TACSAudioOut
Buffersize = 100000
Driver = 'Wavemapper'
Device = 0
Input = SoundIndicator
Delay = 6
SuspendWhenIdle = True
OnDone = AudioOut1Done
OnThreadException = AudioOut1ThreadException
left = 140
top = 4
end
object SoundIndicator: TACSSoundIndicator
Input = FileIn1
left = 172
top = 4
end
end

279
acs/Demos/player/umain.pas Normal file
View File

@@ -0,0 +1,279 @@
unit uMain;
{$IFDEF FPC}
{$mode objfpc}{$H+}
{$ENDIF}
interface
uses
{$IFDEF FPC}
LResources,
{$ENDIF}
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, Buttons,
ACS_Audio,ACS_File,ACS_Classes,ACS_Allformats, ExtCtrls, StdCtrls,
ComCtrls,uPlaylist, ACS_Indicator,uvis
//You must include Output drivers to not get an "No drier selected" exception
{$IFDEF MSWINDOWS}
,ACS_DXAudio //DirectSound Driver
{$ELSE}
,ACS_AlsaAudio //Alsa Driver
// ,ACS_AOLive //AO Live Driver
{$ENDIF}
,ACS_StdAudio //Wavemapper Driver
;
type
TTimeFormat = (tfElapsed,tfRemain);
{ TfMain }
TfMain = class(TForm)
AudioOut1: TACSAudioOut;
btVizu: TBitBtn;
btPlaylist: TBitBtn;
btPause: TBitBtn;
btRew: TBitBtn;
btFfw: TBitBtn;
btPlay: TBitBtn;
btStop: TBitBtn;
btOpen: TBitBtn;
FileIn1: TACSFileIn;
lLeft: TLabel;
lFilename: TLabel;
lTime: TLabel;
Panel1: TPanel;
Progress: TProgressBar;
PlayTimer: TTimer;
lTime1: TLabel;
lTime2: TLabel;
SoundIndicator: TACSSoundIndicator;
procedure AudioOut1Done(Sender: TComponent);
procedure AudioOut1ThreadException(Sender: TComponent; E: Exception);
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure Pauseclick(Sender: TObject);
procedure PlayClick(Sender: TObject);
procedure StopClick(Sender: TObject);
procedure OpenClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure btFfwClick(Sender: TObject);
procedure btPlaylistClick(Sender: TObject);
procedure btRewClick(Sender: TObject);
procedure btVizuClick(Sender: TObject);
procedure lTime1Click(Sender: TObject);
procedure resetDisplay;
private
{ private declarations }
FPaused : Boolean;
FStopped : Boolean;
TimeFormat : TTimeFormat;
public
{ public declarations }
end;
var
fMain: TfMain;
implementation
{ TfMain }
procedure TfMain.PlayClick(Sender: TObject);
begin
if FPaused then
begin
AudioOut1.Resume;
FPaused := False;
end
else
begin
if FileIn1.FileName = '' then
begin
if fPlaylist.lbPlaylist.Items.Count = 0 then exit;
if fPlaylist.lbPlaylist.ItemIndex = -1 then
fPlayList.lbPlaylist.ItemIndex := 0;
FileIn1.FileName := fPlayList.lbPlaylist.Items[fPlayList.lbPlaylist.ItemIndex];
lFilename.Caption := Format('File:%s',[ExtractFileName(FileIn1.FileName)]);
end;
AudioOut1.Run;
end;
FStopped := False;
btPlay.Enabled := False;
btStop.Enabled := True;
btOpen.Enabled := False;
btRew.Enabled := False;
btFfw.Enabled := False;
btPause.Enabled := True;
PlayTimer.Enabled := True;
end;
procedure TfMain.AudioOut1Done(Sender: TComponent);
begin
btPlay.Enabled := True;
btStop.Enabled := False;
btOpen.Enabled := True;
btRew.Enabled := True;
btFfw.Enabled := True;
PlayTimer.Enabled := false;
ResetDisplay;
if FStopped then
exit;
if fPlaylist.lbPlaylist.Items.Count = 0 then exit;
if fPlaylist.lbPlaylist.ItemIndex = -1 then
fPlayList.lbPlaylist.ItemIndex := 0;
FileIn1.FileName := fPlayList.lbPlaylist.Items[fPlayList.lbPlaylist.ItemIndex];
if fPlayList.lbPlaylist.Items.Count-1 > fPlayList.lbPlaylist.ItemIndex then
begin
fPlayList.lbPlaylist.ItemIndex := fPlayList.lbPlaylist.ItemIndex+1;
FileIn1.FileName := fPlayList.lbPlaylist.Items[fPlayList.lbPlaylist.ItemIndex];
lFilename.Caption := Format('File:%s',[ExtractFileName(FileIn1.FileName)]);
PlayClick(nil);
end;
end;
procedure TfMain.AudioOut1ThreadException(Sender: TComponent; E: Exception);
begin
ShowMessage(E.Message);
end;
procedure TfMain.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
FStopped := True;
if (AudioOut1.Status <> tosIdle) then
AudioOut1.Stop;
while (AudioOut1.Status <> tosIdle) do
Application.Processmessages;
end;
procedure TfMain.FormCreate(Sender: TObject);
begin
// AudioOut1.Driver := 'Alsa';
end;
procedure TfMain.Pauseclick(Sender: TObject);
begin
if FPaused then
exit;
AudioOut1.Pause;
FPaused := True;
btPause.Enabled := False;
btPlay.Enabled := True;
PlayTimer.Enabled := False;
end;
procedure TfMain.StopClick(Sender: TObject);
begin
FStopped := True;
AudioOut1.Stop;
end;
procedure TfMain.OpenClick(Sender: TObject);
begin
FileIn1.Open;
btPlay.Enabled := True;
ResetDisplay;
end;
procedure TfMain.Timer1Timer(Sender: TObject);
var
tmp : real;
begin
case TimeFormat of
tfElapsed:
begin
tmp := ((FileIn1.Position * FileIn1.TotalTime) / FileIn1.Size);
lTime.Caption := Format('%.2d:%.2d:%.2d',[round((tmp-30) / 60) mod 120,round(tmp) mod 60,round(tmp*100) mod 100]);
tmp := FileIn1.TotalTime-((FileIn1.Position * FileIn1.TotalTime) / FileIn1.Size);
lLeft.Caption := Format('%.2d:%.2d:%.2d',[round((tmp-30) / 60) mod 120,round(tmp) mod 60,round(tmp*100) mod 100]);
lTime1.Caption := 'Time elapsed';
lTime2.Caption := 'left';
end;
tfRemain:
begin
tmp := ((FileIn1.Position * FileIn1.TotalTime) / FileIn1.Size);
lLeft.Caption := Format('%.2d:%.2d:%.2d',[round((tmp-30) / 60) mod 120,round(tmp) mod 60,round(tmp*100) mod 100]);
tmp := FileIn1.TotalTime-((FileIn1.Position * FileIn1.TotalTime) / FileIn1.Size);
lTime.Caption := Format('%.2d:%.2d:%.2d',[round((tmp-30) / 60) mod 120,round(tmp) mod 60,round(tmp*100) mod 100]);
lTime1.Caption := 'Time remain';
lTime2.Caption := 'elapsed';
end;
end;
Progress.Position := round((FileIn1.Position * 100) / FileIn1.Size);
end;
procedure TfMain.btFfwClick(Sender: TObject);
begin
if fPlayList.lbPlaylist.Items.Count-1 > fPlayList.lbPlaylist.ItemIndex then
fPlayList.lbPlaylist.ItemIndex := fPlayList.lbPlaylist.ItemIndex+1;
FileIn1.FileName := fPlayList.lbPlaylist.Items[fPlayList.lbPlaylist.ItemIndex];
ResetDisplay;
end;
procedure TfMain.btPlaylistClick(Sender: TObject);
begin
fPlaylist.Visible := True;
end;
procedure TfMain.btRewClick(Sender: TObject);
begin
if fPlayList.lbPlaylist.ItemIndex >= 1 then
fPlayList.lbPlaylist.ItemIndex := fPlayList.lbPlaylist.ItemIndex-1;
FileIn1.FileName := fPlayList.lbPlaylist.Items[fPlayList.lbPlaylist.ItemIndex];
ResetDisplay;
end;
procedure TfMain.btVizuClick(Sender: TObject);
begin
fVizu.Show;
end;
procedure TfMain.lTime1Click(Sender: TObject);
begin
case TimeFormat of
tfElapsed:TimeFormat := tfRemain;
tfRemain:TimeFormat := tfElapsed;
end;
ResetDisplay;
end;
procedure TfMain.resetDisplay;
var
tmp : real;
begin
lFilename.Caption := Format('File:%s',[ExtractFileName(FileIn1.FileName)]);
case TimeFormat of
tfElapsed:
begin
tmp := 0;
// if FileIn1.Size > 0 then
// tmp := ((FileIn1.Position * FileIn1.TotalTime) / FileIn1.Size);
lTime.Caption := Format('%.2d:%.2d:%.2d',[round((tmp-30) / 60) mod 120,round(tmp) mod 60,round(tmp*100) mod 100]);
// tmp := FileIn1.TotalTime-((FileIn1.Position * FileIn1.TotalTime) / FileIn1.Size);
lLeft.Caption := Format('%.2d:%.2d:%.2d',[round((tmp-30) / 60) mod 120,round(tmp) mod 60,round(tmp*100) mod 100]);
lTime1.Caption := 'Time elapsed';
lTime2.Caption := 'left';
end;
tfRemain:
begin
// if FileIn1.Size > 0 then
// tmp := ((FileIn1.Position * FileIn1.TotalTime) / FileIn1.Size);
lLeft.Caption := Format('%.2d:%.2d:%.2d',[round((tmp-30) / 60) mod 120,round(tmp) mod 60,round(tmp*100) mod 100]);
// tmp := FileIn1.TotalTime-((FileIn1.Position * FileIn1.TotalTime) / FileIn1.Size);
lTime.Caption := Format('%.2d:%.2d:%.2d',[round((tmp-30) / 60) mod 120,round(tmp) mod 60,round(tmp*100) mod 100]);
lTime1.Caption := 'Time remain';
lTime2.Caption := 'elapsed';
end;
end;
// Progress.Position := round((FileIn1.Position * 100) / FileIn1.Size);
end;
initialization
{$IFDEF FPC}
{$I umain.lrs}
{$ELSE}
{$R *.dfm}
{$ENDIF}
end.

View File

@@ -0,0 +1,55 @@
object fPlaylist: TfPlaylist
Left = 278
Top = 276
Width = 208
Height = 242
BorderStyle = bsSizeToolWin
Caption = 'Playlist'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = True
DesignSize = (
200
215)
PixelsPerInch = 96
TextHeight = 13
object lbPlaylist: TListBox
Left = 0
Top = 0
Width = 200
Height = 215
Align = alClient
BorderStyle = bsNone
ItemHeight = 13
TabOrder = 0
end
object btAdd: TBitBtn
Left = 0
Top = 193
Width = 27
Height = 22
Anchors = [akLeft, akBottom]
Caption = '+'
TabOrder = 1
OnClick = btAddClick
end
object Button1: TButton
Left = 32
Top = 193
Width = 27
Height = 22
Anchors = [akLeft, akBottom]
Caption = '-'
TabOrder = 2
OnClick = Button1Click
end
object OpenDialog: TOpenDialog
FilterIndex = 0
Options = [ofAllowMultiSelect, ofPathMustExist, ofFileMustExist, ofEnableSizing]
Title = 'Vorhandene Datei '#246'ffnen'
end
end

View File

@@ -0,0 +1,48 @@
object fPlaylist: TfPlaylist
BorderStyle = bsSizeToolWin
Caption = 'Playlist'
ClientHeight = 215
ClientWidth = 200
PixelsPerInch = 96
HorzScrollBar.Page = 199
VertScrollBar.Page = 214
Left = 278
Height = 215
Top = 276
Width = 200
object lbPlaylist: TListBox
Align = alClient
BorderSpacing.OnChange = nil
BorderSpacing.Bottom = 25
BorderStyle = bsNone
TabOrder = 0
Height = 190
Width = 200
end
object btAdd: TBitBtn
Anchors = [akLeft, akBottom]
Caption = '+'
OnClick = btAddClick
TabOrder = 1
Height = 22
Top = 193
Width = 27
end
object Button1: TButton
Anchors = [akLeft, akBottom]
BorderSpacing.OnChange = nil
Caption = '-'
OnClick = Button1Click
TabOrder = 2
Left = 32
Height = 22
Top = 193
Width = 27
end
object OpenDialog: TOpenDialog
Options = [ofAllowMultiSelect, ofPathMustExist, ofFileMustExist, ofEnableSizing, ofViewDetail]
Title = 'Vorhandene Datei <20>ffnen'
FilterIndex = 0
Title = 'Vorhandene Datei <20>ffnen'
end
end

View File

@@ -0,0 +1,67 @@
unit uPlaylist;
{$IFDEF FPC}
{$mode objfpc}{$H+}
{$ENDIF}
interface
uses
{$IFDEF FPC}
LResources,
{$ENDIF}
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons;
type
{ TfPlaylist }
TfPlaylist = class(TForm)
btAdd: TBitBtn;
Button1: TButton;
lbPlaylist: TListBox;
OpenDialog: TOpenDialog;
procedure Button1Click(Sender: TObject);
procedure btAddClick(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
fPlaylist: TfPlaylist;
implementation
uses ACS_File;
{ TfPlaylist }
procedure TfPlaylist.btAddClick(Sender: TObject);
var
desc : string;
begin
FileFormats.BuildFilterStrings(desc,[fcLoad]);
OpenDialog.Filter := desc;
if OpenDialog.Execute then
begin
lbPlayList.Items.AddStrings(OpenDialog.Files);
end;
end;
procedure TfPlaylist.Button1Click(Sender: TObject);
begin
if lbPlayList.ItemIndex > -1 then
lbPlayList.Items.Delete(lbPlayList.ItemIndex);
end;
initialization
{$IFDEF FPC}
{$I uplaylist.lrs}
{$else}
{$R *.dfm}
{$ENDIF}
end.

53
acs/Demos/player/uvis.dfm Normal file
View File

@@ -0,0 +1,53 @@
object fVizu: TfVizu
Left = 483
Top = 150
Width = 202
Height = 126
BorderStyle = bsSizeToolWin
Caption = 'Visualization'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
Menu = MainMenu1
OldCreateOrder = True
OnPaint = FormPaint
PixelsPerInch = 96
TextHeight = 13
object Image: TImage
Left = 0
Top = 0
Width = 194
Height = 80
Align = alClient
Transparent = True
end
object MainMenu1: TMainMenu
Left = 17
Top = 10
object miType: TMenuItem
Caption = 'Type'
object rFFT: TMenuItem
AutoCheck = True
Caption = 'FFT'
Checked = True
GroupIndex = 1
RadioItem = True
end
object MenuItem2: TMenuItem
AutoCheck = True
Caption = 'Wave'
GroupIndex = 1
RadioItem = True
end
end
end
object Timer1: TTimer
Interval = 100
OnTimer = Timer1Timer
Left = 48
Top = 8
end
end

49
acs/Demos/player/uvis.lfm Normal file
View File

@@ -0,0 +1,49 @@
object fVizu: TfVizu
BorderStyle = bsSizeToolWin
Caption = 'Visualization'
ClientHeight = 79
ClientWidth = 194
Menu = MainMenu1
OnPaint = FormPaint
PixelsPerInch = 96
HorzScrollBar.Page = 193
VertScrollBar.Page = 78
Left = 483
Height = 99
Top = 150
Width = 194
object Image: TImage
Align = alClient
Transparent = True
Height = 79
Width = 194
end
object MainMenu1: TMainMenu
left = 17
top = 10
object miType: TMenuItem
Caption = 'Type'
object rFFT: TMenuItem
AutoCheck = True
Caption = 'FFT'
Checked = True
GroupIndex = 1
RadioItem = True
ShowAlwaysCheckable = True
end
object MenuItem2: TMenuItem
AutoCheck = True
Caption = 'Wave'
GroupIndex = 1
RadioItem = True
ShowAlwaysCheckable = True
end
end
end
object Timer1: TTimer
Interval = 150
OnTimer = Timer1Timer
left = 17
top = 44
end
end

104
acs/Demos/player/uvis.pas Normal file
View File

@@ -0,0 +1,104 @@
unit uvis;
{$IFDEF FPC}
{$mode objfpc}{$H+}
{$ENDIF}
interface
uses
{$IFDEF FPC}
LResources,FPImage,
{$ENDIF}
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, Menus, ExtCtrls;
type
TVals = array[0..31] of Double;
{ TfVizu }
TfVizu = class(TForm)
Image: TImage;
MainMenu1: TMainMenu;
rFFT: TMenuItem;
MenuItem2: TMenuItem;
miType: TMenuItem;
Timer1: TTimer;
procedure FormPaint(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
lVals : array of TVals;
Vals : TVals;
end;
var
fVizu: TfVizu;
implementation
uses uMain;
{ TfVizu }
procedure TfVizu.FormPaint(Sender: TObject);
var
i,x,y : Integer;
{$IFDEF FPC}
newcolor : TFPColor;
{$ENDIF}
begin
Canvas.Lock;
Canvas.Brush.Color := clBlack;
Canvas.Pen.Color := clBlack;
Canvas.Rectangle(0,0,Width,Height);
if rFFT.Checked then
begin
fMain.SoundIndicator.GetValues(Vals);
Setlength(lVals,0);
Canvas.Pen.Color := clAqua;
Canvas.Brush.Color := clAqua;
for i := 0 to 31 do
Canvas.Rectangle(((Width div 31)*i)+1,Height-Round(Vals[i]*Height),((Width div 31)*(i+1))-1,Height);
end
else
begin
{$IFDEF FPC}
Setlength(lVals,Height div 4);
for i := 0 to length(lVals)-2 do
lVals[i] := lVals[i+1];
fMain.SoundIndicator.GetValues(lVals[length(lVals)-1]);
for y := 0 to (Height div 4)-1 do
for x := 0 to 31 do
begin
newcolor := TColorToFPColor(clBlack);
newcolor.blue := round(65535*lVals[y][x]);
newcolor.green := round(65535*lVals[y][x]);
Canvas.Brush.Color := FPColorToTColor(newcolor);
newcolor.blue := round(32000*lVals[y][x]);
newcolor.green := round(32000*lVals[y][x]);
Canvas.Pen.Color := FPColorToTColor(newcolor);
Canvas.Rectangle(((Width div 31)*x),y*4,((Width div 31)*(x+1)),((y+1)*4));
end;
{$ENDIF}
end;
Canvas.Unlock;
end;
procedure TfVizu.Timer1Timer(Sender: TObject);
begin
if fVizu.Visible then
fVizu.Invalidate;
end;
initialization
{$IFDEF FPC}
{$I uvis.lrs}
{$else}
{$R *.dfm}
{$ENDIF}
end.

View File

@@ -0,0 +1,259 @@
<?xml version="1.0"?>
<CONFIG>
<ProjectOptions>
<PathDelim Value="/"/>
<Version Value="5"/>
<General>
<MainUnit Value="0"/>
<IconPath Value="./"/>
<TargetFileExt Value=".exe"/>
<ActiveEditorIndexAtStart Value="3"/>
</General>
<LazDoc Paths=""/>
<Units Count="22">
<Unit0>
<CursorPos X="5" Y="3"/>
<Filename Value="recorder.lpr"/>
<IsPartOfProject Value="True"/>
<TopLine Value="1"/>
<UnitName Value="recorder"/>
<UsageCount Value="26"/>
</Unit0>
<Unit1>
<CursorPos X="49" Y="22"/>
<EditorIndex Value="0"/>
<Filename Value="umain.pas"/>
<ComponentName Value="fMain"/>
<IsPartOfProject Value="True"/>
<Loaded Value="True"/>
<ResourceFilename Value="umain.lrs"/>
<TopLine Value="1"/>
<UnitName Value="uMain"/>
<UsageCount Value="26"/>
</Unit1>
<Unit2>
<CursorPos X="1" Y="41"/>
<Filename Value="D:/LKomponenten/acs/Src/classes/ACS_Audio.pas"/>
<TopLine Value="9"/>
<UnitName Value="acs_audio"/>
<UsageCount Value="11"/>
</Unit2>
<Unit3>
<CursorPos X="3" Y="77"/>
<Filename Value="D:/LKomponenten/acs/Src/classes/ACS_Classes.pas"/>
<TopLine Value="63"/>
<UnitName Value="ACS_Classes"/>
<UsageCount Value="11"/>
</Unit3>
<Unit4>
<CursorPos X="1" Y="171"/>
<Filename Value="D:/LKomponenten/acs/Src/classes/ACS_VolumeQuery.pas"/>
<TopLine Value="157"/>
<UnitName Value="ACS_VolumeQuery"/>
<UsageCount Value="11"/>
</Unit4>
<Unit5>
<CursorPos X="69" Y="32"/>
<Filename Value="D:/LKomponenten/acs/Src/Win32/acs_reg.pas"/>
<TopLine Value="13"/>
<UnitName Value="acs_reg"/>
<UsageCount Value="10"/>
</Unit5>
<Unit6>
<CursorPos X="53" Y="17"/>
<Filename Value="D:/LKomponenten/acs/Src/Linux/acs_reg.pas"/>
<TopLine Value="1"/>
<UnitName Value="acs_reg"/>
<UsageCount Value="10"/>
</Unit6>
<Unit7>
<CursorPos X="9" Y="363"/>
<Filename Value="D:/LKomponenten/acs/Src/classes/ACS_Misc.pas"/>
<TopLine Value="340"/>
<UnitName Value="ACS_Misc"/>
<UsageCount Value="11"/>
</Unit7>
<Unit8>
<CursorPos X="1" Y="298"/>
<Filename Value="D:/LKomponenten/acs/Src/drivers/windows/ACS_Audio.inc"/>
<TopLine Value="271"/>
<UsageCount Value="11"/>
</Unit8>
<Unit9>
<CursorPos X="20" Y="176"/>
<Filename Value="D:/LKomponenten/acs/Src/drivers/ACS_StdAudio.pas"/>
<TopLine Value="168"/>
<UnitName Value="ACS_StdAudio"/>
<UsageCount Value="11"/>
</Unit9>
<Unit10>
<CursorPos X="3" Y="26"/>
<Filename Value="D:/LKomponenten/acs/Src/classes/ACS_Strings.pas"/>
<TopLine Value="18"/>
<UnitName Value="ACS_Strings"/>
<UsageCount Value="10"/>
</Unit10>
<Unit11>
<CursorPos X="1" Y="114"/>
<Filename Value="D:/LKomponenten/acs/Src/drivers/linux/ACS_Audio.inc"/>
<TopLine Value="104"/>
<UsageCount Value="10"/>
</Unit11>
<Unit12>
<CursorPos X="27" Y="63"/>
<Filename Value="umain.lfm"/>
<SyntaxHighlighter Value="LFM"/>
<TopLine Value="38"/>
<UsageCount Value="10"/>
</Unit12>
<Unit13>
<CursorPos X="1" Y="989"/>
<Filename Value="D:/fpc/packages/extra/winunits/mmsystem.pp"/>
<TopLine Value="957"/>
<UnitName Value="mmsystem"/>
<UsageCount Value="11"/>
</Unit13>
<Unit14>
<CursorPos X="4" Y="203"/>
<Filename Value="D:/LKomponenten/acs/Src/drivers/acs_dxaudio.pas"/>
<TopLine Value="171"/>
<UnitName Value="acs_dxaudio"/>
<UsageCount Value="11"/>
</Unit14>
<Unit15>
<CursorPos X="22" Y="109"/>
<EditorIndex Value="4"/>
<Filename Value="/windows/D/LKomponenten/acs/Src/drivers/acs_stdaudio.pas"/>
<Loaded Value="True"/>
<TopLine Value="103"/>
<UnitName Value="acs_stdaudio"/>
<UsageCount Value="10"/>
</Unit15>
<Unit16>
<CursorPos X="21" Y="96"/>
<Filename Value="/windows/D/LKomponenten/acs/Src/drivers/windows/acs_audio.inc"/>
<TopLine Value="73"/>
<UsageCount Value="10"/>
</Unit16>
<Unit17>
<CursorPos X="16" Y="239"/>
<EditorIndex Value="5"/>
<Filename Value="/windows/D/LKomponenten/acs/Src/drivers/linux/acs_audio.inc"/>
<Loaded Value="True"/>
<TopLine Value="203"/>
<UsageCount Value="10"/>
</Unit17>
<Unit18>
<CursorPos X="1" Y="339"/>
<EditorIndex Value="6"/>
<Filename Value="/windows/D/lazarus/lcl/include/screen.inc"/>
<Loaded Value="True"/>
<TopLine Value="321"/>
<UsageCount Value="10"/>
</Unit18>
<Unit19>
<CursorPos X="26" Y="320"/>
<EditorIndex Value="1"/>
<Filename Value="/windows/D/LKomponenten/acs/Src/drivers/linux/alsa.pas"/>
<Loaded Value="True"/>
<TopLine Value="284"/>
<UnitName Value="alsa"/>
<UsageCount Value="10"/>
</Unit19>
<Unit20>
<CursorPos X="27" Y="247"/>
<EditorIndex Value="2"/>
<Filename Value="/windows/D/LKomponenten/acs/Src/drivers/linux/libao.pas"/>
<Loaded Value="True"/>
<TopLine Value="211"/>
<UnitName Value="libao"/>
<UsageCount Value="10"/>
</Unit20>
<Unit21>
<CursorPos X="1" Y="67"/>
<EditorIndex Value="3"/>
<Filename Value="/windows/D/LKomponenten/acs/Src/drivers/acs_alsaaudio.pas"/>
<Loaded Value="True"/>
<TopLine Value="56"/>
<UnitName Value="acs_alsaaudio"/>
<UsageCount Value="10"/>
</Unit21>
</Units>
<PublishOptions>
<Version Value="2"/>
<IgnoreBinaries Value="False"/>
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
<Display Use="True" Value=":1"/>
</local>
</RunParams>
<RequiredPackages Count="2">
<Item1>
<PackageName Value="LCL"/>
</Item1>
<Item2>
<PackageName Value="LAZ_ACS"/>
<MinVersion Major="2" Minor="4" Valid="True"/>
</Item2>
</RequiredPackages>
<JumpHistory Count="5" HistoryIndex="4">
<Position1>
<Filename Value="/windows/D/LKomponenten/acs/Src/drivers/acs_stdaudio.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position1>
<Position2>
<Filename Value="/windows/D/LKomponenten/acs/Src/drivers/acs_stdaudio.pas"/>
<Caret Line="151" Column="36" TopLine="123"/>
</Position2>
<Position3>
<Filename Value="/windows/D/LKomponenten/acs/Src/drivers/acs_stdaudio.pas"/>
<Caret Line="170" Column="5" TopLine="152"/>
</Position3>
<Position4>
<Filename Value="/windows/D/LKomponenten/acs/Src/drivers/linux/acs_audio.inc"/>
<Caret Line="239" Column="16" TopLine="203"/>
</Position4>
<Position5>
<Filename Value="/windows/D/lazarus/lcl/include/screen.inc"/>
<Caret Line="339" Column="26" TopLine="318"/>
</Position5>
</JumpHistory>
</ProjectOptions>
<CompilerOptions>
<Version Value="5"/>
<SearchPaths>
<SrcPath Value="$(LazarusDir)/lcl/;$(LazarusDir)/lcl/interfaces/$(LCLWidgetType)/"/>
</SearchPaths>
<CodeGeneration>
<Generate Value="Faster"/>
</CodeGeneration>
<Linking>
<Options>
<Win32>
<GraphicApplication Value="True"/>
</Win32>
</Options>
</Linking>
<Other>
<CompilerPath Value="$(CompPath)"/>
</Other>
</CompilerOptions>
<Debugging>
<BreakPoints Count="1">
<Item1>
<Source Value="D:/Worldspace/Src/gstdintf/home/z0m3ie/lazarus/components/turbopower_ipro/iphtml.pas"/>
<Line Value="17239"/>
</Item1>
</BreakPoints>
<Watches Count="1">
<Item1>
<Expression Value="TControlPanel(FList^[i])"/>
</Item1>
</Watches>
</Debugging>
</CONFIG>

View File

@@ -0,0 +1,74 @@
object fMain: TfMain
BorderStyle = bsToolWindow
Caption = 'Sound Indicator'
ClientHeight = 53
ClientWidth = 400
OnShow = FormShow
PixelsPerInch = 96
HorzScrollBar.Page = 399
VertScrollBar.Page = 52
Left = 276
Height = 53
Top = 155
Width = 400
object Label1: TLabel
Caption = 'Input Level'
Color = clNone
ParentColor = False
Left = 8
Height = 14
Top = 2
Width = 55
end
object Label2: TLabel
Caption = '-3 db'
Color = clNone
ParentColor = False
Left = 192
Height = 14
Top = 36
Width = 26
end
object Label3: TLabel
Caption = '-96 db'
Color = clNone
ParentColor = False
Left = 8
Height = 14
Top = 36
Width = 32
end
object ProgressBar: TProgressBar
Max = 200
Left = 8
Height = 16
Top = 16
Width = 376
end
object AudioIn1: TACSAudioIn
Driver = 'Wavemapper'
InBitsPerSample = 8
InChannels = 1
InSampleRate = 8000
RecTime = -1
left = 9
top = 296
end
object NULLOut1: TACSNULLOut
Input = VolumeQuery
SuspendWhenIdle = True
left = 9
top = 368
end
object VolumeQuery: TACSVolumeQuery
Input = AudioIn1
left = 9
top = 332
end
object Timer1: TTimer
Interval = 100
OnTimer = Timer1Timer
left = 9
top = 264
end
end

View File

@@ -0,0 +1,53 @@
unit uMain;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ACS_Audio, ComCtrls, StdCtrls, ACS_Misc,
ACS_VolumeQuery, ExtCtrls;
type
{ TfMain }
TfMain = class(TForm)
AudioIn1: TACSAudioIn;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
NULLOut1: TACSNULLOut;
ProgressBar: TProgressBar;
Timer1: TTimer;
VolumeQuery: TACSVolumeQuery;
procedure FormShow(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
fMain: TfMain;
implementation
{ TfMain }
procedure TfMain.FormShow(Sender: TObject);
begin
NULLOut1.Run;
end;
procedure TfMain.Timer1Timer(Sender: TObject);
begin
ProgressBar.Position := (round((VolumeQuery.dbLeft+VolumeQuery.dbRight)/2)+96);
end;
initialization
{$I umain.lrs}
end.