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

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

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.