/VCL_DELPHIX_D6/SXMedia/MpSndSys.pas |
---|
0,0 → 1,237 |
(* |
* This unit is free software; you can redistribute it and modify it |
* under the terms of the GNU Library General Public License as published |
* by the Free Software Foundation; either version 2 of the license or |
* (at your option) any later version. |
* |
* Author of CPP header file : Olivier Lapicque <olivierl@jps.net> |
* Author of Delphi conversion : Dean Ellis <Dean_Ellis@sillex.freeserve.co.uk> |
* |
* NOTE : The Origonal C++ Class declarations anc constants have been left in place |
* |
*) |
unit MpSndSys; |
interface |
uses Windows,Classes; |
const |
//#ifndef MPP_SND_SYS_H |
//#define MPP_SND_SYS_H |
//#ifndef MPPDLLEXPORT |
//#define MPPDLLEXPORT |
//#endif |
//#define MPPAPI __stdcall |
//#define MPPCDECL __cdecl |
//#define MPPAPI_VERSION 0x0140 |
//#define MPPAPI_VERSION 0x0140 |
MPPAPI_VERSION = $0141; |
// Version-specific functions |
//#define MPPVERSION_HAS_NAVIGATION 0x0139 |
//#define MPPVERSION_HAS_SONGTIME 0x0141 |
MPPVERSION_HAS_NAVIGATION = $0139; |
MPPVERSION_HAS_SONGTIME = $0141; |
// Error codes |
//typedef long MPPERR; |
// |
//enum { |
// MPPERR_NOERROR=0, |
// MPPERR_FAILED, |
// MPPERR_INVALIDPARAM, |
//}; |
//enum { |
// MPPSONG_INVALID=0, |
// MPPSONG_MOD, |
// MPPSONG_S3M, |
// MPPSONG_XM, |
// MPPSONG_IT, |
// MPPSONG_MDL, |
// MPPSONG_UNKNOWN=100 |
//}; |
MPPERR_NOERROR = 0; |
MPPERR_FAILED = 1; |
MPPERR_INVALIDPARAM = 2; |
MPPSONG_INVALID = 0; |
MPPSONG_MOD = 1; |
MPPSONG_S3M = 2; |
MPPSONG_XM = 3; |
MPPSONG_IT = 4; |
MPPSONG_MDL = 5; |
MPPSONG_UNKNOWN = 100; |
// Mixer Options MPPMIX_XXXX |
//#define MPPMIX_NORESAMPLING 0x01 // Faster, but crappy quality |
//#define MPPMIX_BASSEXPANSION 0x02 // Bass Expansion |
//#define MPPMIX_SURROUND 0x04 // Surround Encoding |
//#define MPPMIX_REVERB 0x08 // Reverb |
//#define MPPMIX_LOOP 0x10 // Loop the song (backward jumps will be enabled) |
//// v1.40+ flags |
//#define MPPMIX_HIGHQUALITY 0x20 // HQ mixing (better resampling, dithering enabled) |
//#define MPPMIX_GAINCONTROL 0x40 // Automatic Gain Control |
//#define MPPMIX_NOISEREDUCTION 0x80 // Noise reduction (-6dB 22kHz lowpass filter) |
MPPMIX_NORESAMPLING = $01; // Faster, but crappy quality |
MPPMIX_BASSEXPANSION = $02; // Bass Expansion |
MPPMIX_SURROUND = $04; // Surround Encoding |
MPPMIX_REVERB = $08; // Reverb |
MPPMIX_LOOP = $10; // Loop the song (backward jumps will be enabled) |
// v1.40+ flags |
MPPMIX_HIGHQUALITY = $20; // HQ mixing (better resampling, dithering enabled) |
MPPMIX_GAINCONTROL = $40; // Automatic Gain Control |
MPPMIX_NOISEREDUCTION = $80; // Noise reduction (-6dB 22kHz lowpass filter) |
type |
//========================== |
//class MPPDLLEXPORT IModMixer |
//========================== |
(* { |
public: |
// Reference count: the initial reference count is 1, so you shouldn't have to call AddRef() |
virtual unsigned long MPPAPI AddRef() = 0; |
virtual unsigned long MPPAPI Release() = 0; |
// API Version: you should refuse to continue if the returned value is smaller than MPPAPI_VERSION |
virtual unsigned long MPPAPI GetVersion() = 0; |
// Basic I/O Functions |
virtual MPPERR MPPAPI LoadSong(const void *pmemfile, long len) = 0; |
// Songs are always loaded from memory. The pointer pmemfile can be destroyed |
// after the call to LoadSong. You can use memory-mapped files or a pointer returned |
// by LockResource(), or whatever file in memory. |
virtual MPPERR MPPAPI FreeSong() = 0; // Free the memory used by the song |
// Audio Rendering Functions: example: (44100, 2, 16) for 44.1kHz, stereo, 16-bit |
virtual MPPERR MPPAPI SetWaveFormat(long samplespersec, long channels, long bitspersample) = 0; |
// return # of SAMPLES that have been written to the buffer, 0 if end has been reached |
// Note: protect calls to Render() and SetMixerOptions() by a critical section, if they |
// are used in different threads. |
virtual long MPPAPI Render(void *pbuffer, unsigned long bufsize) = 0; |
// Player Configuration: set of MPPMIX_XXXX |
virtual MPPERR MPPAPI SetMixerOptions(unsigned long dwOptions) = 0; |
virtual unsigned long MPPAPI GetMixerOptions() = 0; |
// Song Information |
virtual long MPPAPI GetSongType() = 0; // Return MPPSONG_XXXX |
virtual void MPPAPI GetSongName(char *pszbuf) = 0; // pszbuf must be at least 32-bytes |
////////////////////////////////////////////////////////////////////////////////////// |
// v1.39+: Navigation functions |
// The order is the position in the pattern sequence list: this allows you to |
// jump to a specific part of a song. It can be useful in a game with a song that |
// uses pattern position jump effects (or pattern loops). |
// These function will not be available if GetVersion() returns a value smaller than 0x139 (MPPVERSION_HAS_NAVIGATION) |
virtual unsigned long MPPAPI GetNumOrders() = 0; |
virtual unsigned long MPPAPI GetCurrentOrder() = 0; |
virtual MPPERR MPPAPI SetCurrentOrder(unsigned long neworder) = 0; |
}; |
*) |
MppError = longint; |
PModMixer = ^IModMixer; |
IModMixer = class |
public |
function AddRef:longint; virtual; stdcall; abstract; |
function Release:longint; virtual; stdcall; abstract; |
function GetVersion:longint; virtual; stdcall; abstract; |
function LoadSong(const MemFile:pointer;Length:longint):MppError;virtual; stdcall; abstract; |
function FreeSong:MppError;virtual; stdcall; abstract; |
function SetWaveFormat(SamplesPerSec,channels,bitsPerSample:longint):MppError;virtual; stdcall; abstract; |
function Render(Buffer:pointer;BufferSize:longint):MppError;virtual; stdcall; abstract; |
function SetMixerOptions(dwOptions:longint):MppError;virtual; stdcall; abstract; |
function GetMixerOptions:longint;virtual; stdcall; abstract; |
function GetSongType:longint;virtual; stdcall; abstract; |
procedure GetSongName(Buffer:PChar);virtual; stdcall; abstract; |
function GetNumOrders:longint;virtual; stdcall; abstract; |
function SetCurrentOrder(newOrder:longint):MppError;virtual; stdcall; abstract; |
function GetSongLength:longint; virtual; stdcall; abstract; |
end; |
var |
MppSdkLibLoaded:Boolean; |
ModMixer:IModMixer; |
implementation |
const MppSdkLibrary = 'mppsdk.dll'; |
var MppSdkLibHandle:THandle; |
//#define MPP_GETMODAPIFUNCNAME "MPP_GetModAPI" |
//typedef MPPERR (MPPCDECL * MPP_GETMODAPIFUNC)(IModMixer **); |
GetModAPI : function(MODMixer:PModMixer):MppError;cdecl; |
(* |
* |
* To get a pointer to the IModMixer interface, you can use the following functions: |
* |
* HMODULE hMPPSDK = (HMODULE)LoadLibrary("mppsdk.dll"); |
* MPP_GETMODAPIFUNC pFunc = (MPP_GETMODAPIFUNC)GetProcAddress(hMPPSDK, MPP_GETMODAPIFUNCNAME); |
* IModMixer *pMPPAPI; |
* pFunc(&pMPPAPI); |
* ... |
* You can then access the MPP SDK API through the IModMixer interface |
* |
* When you are done: |
* |
* pMPPAPI->Release(); |
* FreeLibrary(hMPPSDK); |
* |
*) |
//#endif // MPP_SND_SYS_H |
{----------------------------------------------------------------------------} |
{InitLibrary - will try to load the Mppsdk.dll and get the ModMixer object} |
{----------------------------------------------------------------------------} |
function InitLibrary:Boolean; |
begin |
Result := False; |
MppSdkLibHandle := LoadLibrary(MppSdkLibrary); |
if MppSdkLibHandle = 0 then |
begin |
Exit; |
end; |
try |
GetModAPI := GetProcAddress(MppSdkLibHandle,'MPP_GetModAPI'); |
GetModAPI(@ModMixer); |
Result := True; |
except |
Result := False; |
end; |
end; |
{----------------------------------------------------------------------------} |
{UnLoadLibrary - Will unload the Mppsdk.dll if it was loaded} |
{----------------------------------------------------------------------------} |
procedure UnLoadLibrary; |
begin |
if MppSdkLibLoaded then |
begin |
FreeLibrary(MppSdkLibHandle); |
end; |
end; |
{----------------------------------------------------------------------------} |
{Automatic initialization and finalization - comment out if you want to |
do this manually} |
{----------------------------------------------------------------------------} |
initialization |
MppSdkLibLoaded:=InitLibrary; |
finalization |
UnloadLibrary; |
end. |
/VCL_DELPHIX_D6/SXMedia/SXAbout.dfm |
---|
0,0 → 1,728 |
object AboutBox: TAboutBox |
Left = 260 |
Top = 194 |
BorderStyle = bsDialog |
Caption = 'About SXMedia' |
ClientHeight = 186 |
ClientWidth = 244 |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
FormStyle = fsStayOnTop |
Position = poScreenCenter |
PixelsPerInch = 96 |
TextHeight = 13 |
object InfoContainer: TPanel |
Left = 0 |
Top = 0 |
Width = 245 |
Height = 153 |
BevelInner = bvLowered |
BevelOuter = bvLowered |
Color = clInactiveBorder |
TabOrder = 0 |
object Version: TLabel |
Left = 7 |
Top = 57 |
Width = 53 |
Height = 13 |
Caption = 'Version 1.0' |
IsControl = True |
end |
object Copyright: TLabel |
Left = 122 |
Top = 57 |
Width = 117 |
Height = 13 |
Caption = 'Copyright SXMedia 1999' |
Transparent = True |
IsControl = True |
end |
object Author: TLabel |
Left = 76 |
Top = 74 |
Width = 87 |
Height = 13 |
Alignment = taCenter |
Caption = 'Author : Dean Ellis' |
end |
object WebSite: TLabel |
Left = 42 |
Top = 92 |
Width = 157 |
Height = 13 |
Caption = 'http://www.sillex.freeserve.co.uk' |
IsControl = True |
end |
object Credits: TLabel |
Left = 42 |
Top = 108 |
Width = 167 |
Height = 40 |
Alignment = taCenter |
AutoSize = False |
Caption = |
'MOD Player Engine provided by'#13#10'Olivier Lapicque <olivierl@jps.ne' + |
't>'#13#10'http://www/jps.net/olivierl/' |
WordWrap = True |
IsControl = True |
end |
object LogoContainer: TPanel |
Left = 13 |
Top = 2 |
Width = 221 |
Height = 53 |
Color = clBlack |
TabOrder = 0 |
object ProgramIcon: TImage |
Left = 6 |
Top = 3 |
Width = 210 |
Height = 45 |
AutoSize = True |
Center = True |
IncrementalDisplay = True |
Picture.Data = { |
07544269746D61700A4A0000424D0A4A0000000000003600000028000000D200 |
00002D0000000100100000000000D44900000000000000000000000100000000 |
000000000000000080000080000000808000800000008000800080800000C0C0 |
C000C0DCC000F0CAA60018081000080000000800080008080800100008001008 |
0800100010001008100010101000180010001808100018081800250018002108 |
18001810100022091D0025102100181818002118180031042700311029003910 |
2D00211821002918210031182900262326003118310039183100352632004A14 |
3B006B0B520066255600493A4600653358006E3261006F4364008B176E00892E |
71008E3375009C3184007E4171008E4279009C39840094468400A5007B00A510 |
7E00A5398400A5398C00A0467F00A0468400A04A8800AD007F00AD108400A542 |
8C00A54A9000C1009000B9229400D6009C00F5349500565256005A5A5A00635A |
5E006363630075566D008452730088567B00A5636B00A55A7300AD637300A552 |
7B008C5A7B0094568400A1568800A0639400AD5A8400AD4A8C00AD528C00AD5A |
8C00AD4A9400AD529400AD5A9400AD529C00AD5A9C00E75A7300E75A7B00EF52 |
7B00EF5A7B00EF4A8400EC4F89009E7A6100B5915C00B8C232007B7179008787 |
8700AF688A00B47B7E00CDAF4000C7CE2F00C0CA4500CE906000CB898000C0B6 |
5B00C4AB7600BDF70000C1F30400C6EF0800BDF70800C6F70800BDFF0000BDFF |
0800C6FF0000C0E41000C1DE1800BDF31000CED62100C0E91800BDE22100C4E1 |
2D00D600A500D608A500DE00A500DE08A500E700A500DE00AD00EB00AD00EF00 |
B500F700B500F708B500F700BD00FF00B500FF08B500FF00BD00FF00C600E221 |
B100F721A500F714B900FF10B100FB10BD00FF08C600FC18C300EC29AF00EF2D |
B500E241B700F92DC700FF39CE00E246BD00FF46D200A57B9C00AD639C00AD6B |
9C00AD739C00B55A9C00B5639C00B56B9C00B563A500B56BA500B573A500BD7B |
9C00BD5AA500BD6BA500BD73A500BD6BAD00D6739C00C66BAD00BD73AD00BD7B |
AD00C67BAD00D65AB500D663B500CE6BB500CE73B500D66BB500D65ABD00DE52 |
BD00EF52C600FF5AD600FF67DA009C8C9C009C949C00AD8CA900AD94AD009C9C |
9C00A59C9C00AD9CA500AD9CAD00B594AD00B59CAD00BD849C00C6849C00C68C |
9C00C6949C00C68CA500C694A500C684AD00C68CAD00C67BB500C684B500CE7B |
A500CE7BB500CE84BD00D68CC600E794CE00FF7BDE00FF84DE00FF84E700FF8C |
E700FF94E700B4B0B200C8B7C100D3CCD000E6B9D600DED6DE00E7D6E700EFD6 |
E700FF9CE700FFA5EF00F7ADE700FFADEF00FFBDEF00F7CEEF00FFCEF700DEDE |
DE00E7DEE700E7E7E700EFDEE700FFD6F700EFDEEF00EFE7EF00FBDEF300FFE7 |
FF00EFEFEF00F7EFF700FFEFFF00F7F7F700FFF7FF00FFFFFF00F0FBFF00A4A0 |
A000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFF |
FF00FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7B |
BD779C739C733967F75EB656734E1042EF3DEF3DAE398B2DAE398B2D8B2D8B2D |
E820E82084108410420800000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000002104 |
420884108614E8204A298B2DAE391042B656B656F75EB656F75E734E744EF75E |
3967BD777B6F9C739C73BD77DE7BFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7BBD77BD779C73 |
9C735B6F9C73F75EB656B6561042AE398B2D4A294208E8204208841084100000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
00000000000000000000000000000000000000000000000042088614E8206A29 |
8B2DEF3D744E734EB656F75E39677B6F9C73BD77BD77DE7BFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7BDE7B9C739C737B6F7B6F |
F75EB656744E10428B2DE820E82042088614430C240C440C0000240C25100208 |
010002080208030845108614E820E820CC280D310D314E355035503550395039 |
7139503950397139503971395039713950395039713950397139503971397139 |
5039713950397139713971395039713950397139503971395039713950397139 |
5039503950395039503971395039503971395039503950397139503971395039 |
7139503950395039503971395039503950395039713950395039713950397139 |
5039713950397139503971397139713971397139503971395039713950397139 |
713950397139503971395039503971395039503971395039503950354E350D31 |
0D31CC28E820E82086144514240C020400000000000000000000000000000100 |
02044208430C210484108410E8204A298B2D1042F75EB656F75E39679C73BD77 |
DE7BDE7BFF7FDE7BFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7BDE7BBD773967F75EB656 |
734EAE394A298410430C430C02080208030C0208030C481848188C285034EF34 |
11393445754DB751185A185A185A185A185A185A185A185A185A185A185A185A |
185A185A185A185A185A185A185A185AF859185A185A185A185AF755185AF859 |
185AF755F859185AF755F859F755F859F755F859F855F755F859F755F855F755 |
F859F755F855F755F855F755F855F755F755F855F755F755F855F755F755F755 |
F755F755F755F855F755F755F855F755F855F755F855F755F855F755F855F755 |
F859F755F855F859F755F859F855F859F755F859F859F755185AF859185AF755 |
185A185AF755185A185A185A185AF859185A185A185A185A185A185A185A185A |
185A185A185A185A185A185A185A185A185AF859F859B855764D1445B3405034 |
2C2448180510010400000000000000000000000000002104430CE8206A291042 |
734EF75E39677B6FBD77BD77DE7BDE7BFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7BDE7BFF7F7B6FF75EF75EEF3D |
6B2DE820430C240C0204030C040805102C245034153C7B54FB587A59B959F859 |
185A185A185A185A185A185A185A185A185A185A185A185A185A185A185A185A |
185A185A185AF859185AF755185AF859F859F755185AF755F859F755F859F755 |
F855F755F855F755F855F755F755F755F855F755F755F755F755F755D755F755 |
F755D755F755D755F755D755F755D755D755F755D755D755F755D755D755F755 |
D755D755F755D755D755F755D755F755D755D755F755D755D755F755D755F755 |
D755F755D755F755F755D755F755F755F755F755F755F755F755F755F855F755 |
F855F755F859F755F859F855F859F755F859185AF859185AF755185A185A185A |
F755185A185A185A185A185A185A185A185A185A185A185A185A185A185A185A |
185A185A185AF8597A59FB587B54354014382C24481801040000000000000000 |
0000420800008614AE39734EB65639673967BD77BD77DE7BDE7BFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7BFF7F7B6F3967F75E1042E820 |
4208430C240C020405104818143817441E58BD58FB58B959F859185A185A185A |
185A185A185A185A185A185A185A185A185A185AF859185A185A185AF859185A |
F755185AF859F755F859185AF755F859F755F855F755F859F755F755F755F855 |
F755F755D755F755D755F755D755F755D755D755D755D755D755D755D755D751 |
D755D755D755D755D755D751D755D755D755D751D755D755D755D651D755D755 |
D751D755D755D751D755D755D751D755D755D755D651D755D755D755D755D755 |
D755D755D755D755D755D751D755D755D755D755D755D755D755D755D755F755 |
D755F755D755F755D755F755F755F755F755F755F855F755F855F755F859F755 |
F859F855F859185AF859185AF755185A185A185AF859185A185A185A185A185A |
185A185A185A185A185A185A185A185A185A185AD9597A59BD585E581A50153C |
2C24261400000000020400000000210486148B2D1042F75E39677B6FBD77DE7B |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7BDE7BBD779C733967734E4A290000 |
0000000002042C2414381B501F5C5E58FB587A59185A185A185A185A185A185A |
185A185A185A185A185A185A185A185A185A185A185AF859185AF859F859F755 |
F859F755F859F755F755F855F755F755D755F755D755F755D755D755F755D755 |
D755D755D755D755D755D755D755D755D755D751D755D755D651D755B651D751 |
B651B755D755B651B755B751B651B755B651B755B651B755B651B751B651B755 |
B651B751B651B751B751B651B751B751B651B751B651B751B751B651D751B751 |
D651B751B751D751B751D651B751D755B651D751D755D751D755D751D755D755 |
D755D755D755D755D751D755D755D755D755D755D755D755F755D755F755D755 |
F755F755F755F755F855F755F855F755F859F855F859F755185AF8591856185A |
185A185AF859185A185A185A185A185A185A185A185A185A185A185A185A185A |
B9591B5D7B541E5C1E58153C2C2405100000000001000000420886148B2DB656 |
39677B6F9C73DE7BDE7BFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7BBD77BD773967F75EEF3D84100000 |
000004082C241A4C1E5C1F5C3E5CFB58B959F859185A185A185A185A185A185A |
185A185A185A185A185A185AF859185AF755185AF755F859F755F859F755F855 |
B83A372337233723372337233723372337233723372337233723372337233723 |
B755D755D755D651D755D751D755B651D751B751D751B651B751B751B751B651 |
B83A372337233723161737233723161737233723161737233723161737233723 |
37231617B83A9651B651B651B651B651B651B651B651B751B651B651B651B751 |
B651B651B651B651B651B651B651B651B751B651B751B651B751B651B751B751 |
B651B751B751D651B751D751B651D755D751D755D751D755D755D755D755D751 |
D755D755D755D755D755D755F755D755F755F755F755F755F755F855F755F859 |
F755F859F859F755185AF8591856185A185AF859185A185A185A185A185A185A |
185A185A185A185A185AF8595B5D5E581E5C1F5C1B5414384818000000000104 |
430886148B2D734EB6563967BD77DE7BFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7BDE7B5B6F744EAE3922040104 |
02042C241A4C1F5C1F5C1E5CBD587A59185A185A185A185A185A185A185A185A |
185A185AF859185A185A185AF755F8591856F859F755F859F755F855F755F755 |
F755F755D72AD703F703F703F703F703F703F703F703F803F703F703F703F703 |
F703D707D751B651B751B751B751B651B751B651B751B651B651B651B651B651 |
B651B6513817F703F703F703F703F703F703F703F703F803F703F703F703F703 |
F703F703D703F703D72A964D9651965196519651965196519651964D9651964D |
96519651964D9651964D9651B65196519651B64D9651B6519651B6519651B651 |
B651B651B651B651B651B751B651B651B751B651B751B751B651B751B751D651 |
B751D755D751D755D755D751D755D755D755D755D755D751D755D755F755D755 |
F755F755F755F755F855F755F859F755F859F755F859185A185A185A185A185A |
F859185A185A185A185A185A185A185A185A185AB959FB581E5C1F5C1E581D58 |
14380510040800000000E8204A291042F75E7B6FBD77DE7BFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7BBD777C737B6FAE3984100104 |
4818153C1E5C1F5C1F5C5E58FB58D959185A185A185A185A185A185A185A185A |
185AF859185AF755185AF859F755F859F755F859F755F755F855F755F755D755 |
F755D755D755D755384ED72AD72AD72A970BF703F703F703F703F703F703970F |
D72A362EB83A362ED751B651B651B651B651B651B651B6519651B6519651964D |
96519651964D9651F63D362EB83A362E1617F703F803F703F703F703F703F703 |
F703D703D7071617D72A362EF63D964D964D954D964D964D954D964D964D954D |
9651964D964D954D9651964D9651964D964D9651964D9651964D9651964D9651 |
965196519651964D96519651964DB6519651B6519651B651B651B651B651B651 |
B651B751B651B751B651B751B751B651D751B751D755D651D755D755D755D755 |
D751D755D755D755D755F755D755F755F755F755F855F755F855F755F859F755 |
F859F755185A185A185AF859185A185A185A185A185A185A185A185AF8597A59 |
9D541F5C1F5C1E581A4C2C2402040000020842088614734EF75E7B6FBD77FF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7B7C733967734E43080000 |
2C241A4C1F5C1F583F547C39183E3852185A185A185A185A185A185A185A185A |
F859185AF755185AF859F755F859F755F855F755F755F755F755D755D755F755 |
D755D755D755D751D755D755D751D755D751B755D651183E970FF703F703F703 |
F703D72A9651B6519651B651B65196519651B64D965196519651964D96519651 |
964D9651964D964D9651964D964D754D964D964D9541F703F703F703F703F703 |
F703F703D703D72A7549764D754D764D754D764D754D764D754D764D754D764D |
754D764D754D764D754D964D754D764D954D764D764D954D764D964D764D954D |
964D964D964D954D964D964D9651964D9651954D96519651964D96519651964D |
96519651B64D9651B651B651B651B651B651B651B751B651B751B751B651B751 |
D751D651D755B755D751D755D755D755D751D755D755D755F755F755F755F755 |
F855F755F855F859F755F859F755185A185AF859185A185A185A185AF755185A |
185A185A185A183E183E7E501F581E5C1D585034040801004308E8208B2D744E |
39679C73DE7BDE7BFF7FFF7FFF7FFF7FFF7FFF7FFF7FBD773967B656AE390000 |
2C241A4C1F5C1F5C7E50392E3723384E185A185A185A185A185A185A185AF859 |
185AF755185AF859F755F859F755F855F755F755F755D755F755D755D755D755 |
D755D755D751D755D755D751B755D651B751B751B651B751B651B751B6513723 |
D703F703F703F703D72A964D9651964D96519651964D9651964D964D954D764D |
964D954D764D964D754D964D754D764D754D954D764D9541970BF703F703F703 |
F803F703F703D707F63D7549754D754D754D754D754D754D754D7549754D754D |
754D754D754D754D7549754D754D7549754D754D7549754D754D754D754D754D |
754D754D754D754D764D754D764D754D964D764D954D764D964D954D964D964D |
964D9651954D96519651964D96519651964D9651B6519651B651B651B651B651 |
B651B751B651B751B751B651D751B751D755D651D755D755D751D755D755D755 |
D755F755D755F755F755F755F855F755F859F755F859F755185A185AF859185A |
185A185A185A185A185A185A1856D72AB91E7C391F5C1F601E58503405100204 |
86144A29EF3DB6567B6FDE7BDE7BFF7FFF7FFF7FFF7FFF7FBD775B6F55564A29 |
051017441F5C1F5CDE48B91ED707B83AF859185A185A185A185A185AF859185A |
F755185AF859F755F855F755F855F755F755F755D755F755D755D755D755D755 |
D755D751D755D751B755D651B751B651B751B651B751B651B651B651B6519651 |
B6519651D72AD703F703F703F703D72A964D964D954D764D964D954D764D964D |
754D964D754D764D754D754D754D754D754D754D754D75499541D707D703F803 |
F703F703F703F703770B954175495549554D5549554955495549554955495549 |
554D75495549554955495549554D55495549554D55495549754D5549554D7549 |
554D7549554D754D7549754D754D754D754D754D7549754D754D754D754D764D |
754D764D964D754D964D964D954D964D964D9651964D96519651964D96519651 |
964DB6519651B651B651B651B651B751B651B751B651B751D751D755D651B755 |
D751D755D755D755D755D751D755F755F755D755F755F855F755F859F755F859 |
F755185AF859185A185A185A185A185A185A185A38527817770B7C351F581F60 |
1B502C240510030CE820AE39B65639679C73DE7BFF7FFF7FFF7FBE7B5B6F5556 |
124150341F581F5C7E50B91EF80378171856185A185A185A185A185AF859F755 |
185AF859F755F859F755F859F755F755F755D755F755D755D755D755D755D755 |
D751D755D751B755D651B751B651B751B651B751B651B651B651B65196519651 |
B64D9651964D9651964DF63DD703F703F703F7031617964D754D964D754D764D |
754D754D754D754D754D7549754D754D5549754D554975495549F63DD707D703 |
F703F703F703F703F703970F7545554955495549554955495549554955495549 |
5549554955493549554955495549554955495549554955495549554955495549 |
5549554955495549554955495549554955495549554D7549554D754D7549754D |
7549754D754D754D754D754D754D764D754D764D954D764D964D954D964D964D |
9651964D96519651964D96519651B6519651B651B651B651B751B651B751B651 |
B751B651D755D751B755D751D755D755D755D755D755F755D755F755F755F855 |
F755F755F859F755F859185AF755185A185AF755185A185A185A185AD72AD703 |
770B5D391E581F5C153C261404088614AE39744E39679C73BD77FF7FFF7FDE7B |
D85E334135401E581E5C392ED703F703D72A185A185A185AF859185A185AF755 |
F859185AF755F859F755F755F755F755D755F755D755D755D755D755D755D751 |
D755D751B755D651B751B651B751B651B751B651B651B651B65196519651964D |
9651964D9651964D9651954D764D954DF63D970FF703F703F703970F9541754D |
754D7549754D7549754D554D5549554D5549554955495549554D5549F63DD703 |
F703F703F703F703F703D7031617754134453549344535493445354934453445 |
3445344534453445344534453445344534453445344534453445344535493445 |
3549344555493445554935495549554955495549554955495549554955495549 |
5549554D55497549554D754D7549554D754D754D7549754D754D764D754D764D |
754D964D954D764D964D954D9651964D9651964D965196519651B651B651B651 |
B651B651B751B651B751B651D751D755B651D755D751D755D755D755D751D755 |
F755D755F755F855F755F855F755F859F755185AF859185AF859185A185A185A |
185AB83AD707F703B91E7E501E581C5448180408E820AE39744EF75E7B6FFF7F |
DE7B3967EF3417445E587E50590FF703F703D72A185A185A185A185A185AF859 |
F755185AF755F859F755F755F755F855F755D755F755D755D755D755D755D751 |
D755D751B755D651B751B651B751B651B751B651B651B6519651964D96519651 |
964D9651964D9651954D764D964D754D964D754D764D95413817F703F703F703 |
970B954175455549554D5549554955495549554955495549554955493445362E |
D703F703F703F703F703F703F703161734453445344534453445344534453445 |
3445144534453445344534453445144534453445344534451445344534453445 |
3445344534453445344534453445344534453445344535493445354934455549 |
5549344555495549554955495549554955497549554D7549554D754D754D7549 |
754D754D764D754D764D754D964D754D964D954D9651964D9651964D9651964D |
9651B651964DB651B651B751B651B751B651B751D651B755D751D755D651D755 |
D755D755D755D755F755D755F755F755F755F859F755F855F755185A185AF755 |
185A185A185A185A584ED703F703D7037C351F5C1E5C2C2426148614AE39B656 |
F75EFF7FDE7B4E351A501E583D41D703F703F703D72A185A185A185AF859185A |
F755185AF755F859F755F755F755F855D755F755D755D755D755D755D751D755 |
D751B755D651B751B651D651B751B651B651B651B6519651964D96519651964D |
9651964D9651754D964D964D764D954D764D764D754D764D754D754D75491617 |
F703F703F703D707F63D55495549554955493445554955493445354934453445 |
362ED703F703F703F703F703F703F703B91E3341144514453445144514453445 |
1445334114451445144514451445144514453341144514451445144534451445 |
1445144514451445144514453445144534451445344534453445344534453445 |
3445344534453549344535493549554935493445554935495549554955495549 |
55495549754D7549754D7549754D764D754D764D964D764D964D964D964D964D |
9651964D9651965196519651B6519651B6519651B651B751B651B751D651B755 |
D751B755D751D755D751D755D755D755F755D755F855F755F755F859F755F859 |
F755185AF859185AF755185A185A584EF703F703F703392E1F581E5C2C242614 |
E8201042F75EFF7FB6561A4C1E5C3D41D703F703F7037817185A185AF755185A |
185AF755F859F755F859F755F755F855F755D755F755D755D755D755D755D751 |
D755D751B755D651B751B6515341EF340D31EF340D31EF340D310D31EF340D31 |
0D31EF340D310D310D31EF34CD2C0D310D31CD2C0D31CD2C0D31CD2C0D313445 |
7549554D362EF703F703F703D703362E55495549344555493445344534453445 |
3445362EF703F703F703F803F703F703F703362E134114451139CD2C8C288C28 |
CD2C8C288C28B0341445144514451445D34014451445D1388C288C28CC288C28 |
8C288C2811391445144514451445144514451445144514451445334114453445 |
14453445CD2C8C2833413445EF34CD2CEF34CD2CEF34EF34EF34EF34CD2CEF34 |
EF34EF34EF34EF3455491241EF34EF34EF34EF34EF34EF34EF34EF34EF34EF34 |
EF34EF34EF347549965153415035EF3450355341B65150397549B651B651B751 |
B651B751B651D755D6515039503950395241D755F755D755F755F755F855D755 |
F859F755F855F755185AF859185A185AF755185AB83AF703F703F703B91E1F5C |
1C542C24440C6A291042FF7F35491F5CDE48D703F703F703D703584E185AF859 |
185A185AF755185AF755F859F755F755F755F755D755F755D755D755D755D751 |
D755D751B755D651B751D751B651B751E8200000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000240C554955495549F63DD703F703F703D703362E34453445354534453445 |
34451445B91ED703F703F703F703F703F703D703362ED3401445144501040000 |
000000000000000000008C28D340D340D340D340D340D440D340000000000000 |
00000000000000008C28D440D3401445D34014451445D3401445144514451445 |
1445144513414818000000001139D34000000000000000002510461446144614 |
48188614461446144818E8203549CC2800000000000001044614861446144614 |
86140308000000000000E820764D86140000000000000D31964DCC2801045039 |
B651B751B651B751B651D751B7550000000000000000954DD751D755F755D755 |
F755F755D755F859F755F859F755185AF859F755185A185A18567817F703F703 |
F703392E1F5C1A4C0408420810427D771E581F5C590FF703F703F7033723185A |
185A185AF859F755F859F755F859F755F855F755F855D755F755D755D755D755 |
D755D751D755B751D755B651B751B651B651B751E82000000000000000000000 |
00000104754993495549534175495341754953413341EF340000000000000000 |
0000000000000104554955495549344595419707F703F703F703161734453445 |
3445144534451617D703F703F703F703F703F703D703F32DD4401445D340D444 |
00000000000000000000000000004818D444D340D340B340D340B340B3400000 |
0000000000000000000000008C28D340D340D340D340D340D340D440D340D440 |
1445D3401445D138240C00000104CD2C14451241000000000000000034453445 |
344534453445344535495549344555495549CC2800000000000046147549554D |
7549754D754D8C28000000000000E820764D4614000000000000CD2C9651B64D |
EF340104CC28B651B651B651B751B651B75100000000000000009349D755D755 |
D755D755D755F855F755F855F859F755F859F755F859185A1856F859185A584E |
F703F703F703F703DE481E582C2400006A291F6E1F5C7C35F803F703F703F703 |
584E1856185AF859F755185AF755F859F755F755F755F755D755F755D755D755 |
D755D751D755D751B651D755B651B751B651B751B651B751E820000000000000 |
00000000000022049651754D964D954D764D754D754D754D754D754D48180000 |
0000000000000000000001045549554934455549344575411617F703F703F703 |
16175341144533411617F703F703F703F703F703F703D70794311445D340D440 |
D340D34000000000000000000000000000004818D340B340B340B340B340B340 |
D13800000000000000000000000000008C28B340B340D340B340D340D340D340 |
D340D340D340D340CD2C01040000030CD13814451445D1380000000000000000 |
8C28CC288C288C28CC281341344534455549344555498C280000000000004614 |
5549754D5549754D7549E8200000000000004818964D86140000000000000D31 |
964D9651964D53414208240C440C440C86144614861400000000000000009349 |
D755D751D755F755D755F755D755F755F755F755F855F755185AF859F755185A |
185A185A970FF703F703F70338171F5C1A5000008410DF641F5C3817D703F703 |
F703D707185A185AF755185AF859F755F859F755F855F755F855D755F755D755 |
D755D755D755D751D755D751B755D651B751B651B651B751B651B651CC28440C |
430C240C430C240C240C4614954D964D754D764D764D754D764D754D55491139 |
4510000000000000000000000000020455495549344555493445344535451617 |
D703F703F703770B74351617F703F703F703F703F703F70397077435D340D340 |
D340D340D340D34000000000000000000000000000004818B340B340D138B340 |
B340B340B03400000000000000000000000000008C28B340B340B340B340B340 |
D340B340D340D340D3408C28000000004614D3401445D3401445113900000000 |
0000000025104510251045104510134134453549344555493445CC2800000000 |
000046145549754D5549754D554D8C28000000000000E820764D461400000000 |
0000CD2C964D9651964DB651954D861400000000CC28B651B751000000000000 |
00009349D755D751D755D755D755F755D755F855F755F859F755F859F755185A |
F755185AF859185A3723F703F703F803D7037E501F5C040800005F5C1F5CD703 |
F703F703F7037817185AF859185A185AF755185AF755F859F755F755F755F755 |
D755D755D755D755D755D751D755B751D651B755B751B651B751B651B651B651 |
96519651964D9651964D9651964D954D964D754D964D754D5241CD2CE820240C |
0000000000000000000002088614CC2811393445554934453549344534453549 |
34453445362EF703F703F703F703F703F703F703F803F703D703770B5439D340 |
D340D440D340D340D340B34000000000000000000000000000004818B340B340 |
B340B340D138B340503400000000000000000000000000008C28B340B340B340 |
D138B340B340B340D340D1382614000000008C28D340D3401445D3401445D138 |
000000000000000014451445344514453445144534453445344535493445CC28 |
000000000000451455495549554955497549E8200000000000004818954D4614 |
0000000000000D31954D9651964D96519651B651CC28000000008614954D0000 |
0000000000009349D755D751D755D755F755D755F755D755F855F755F859F755 |
F859F755185A185AF859185AD72AF703F703F703F7037C391F5C481800003E5C |
1F5CF803F703F703F8037817F859185A185AF755F859F755185AF755F859F755 |
F859D755D755F755D755D755D755D751D755B651D755B751B651B751B651B651 |
B751B6519651B651964D96519651964D96517549EF34CC284510010400000000 |
0000000001004514CC28EF343341554955495549554955493445554934453549 |
344534453445344534459535D703F703F703F803F703F703F703F703770B133D |
D340D340D340D340D340D340B340D34000000000000000000000000000004818 |
B340D138B3405034B3405034D13800000000000000000000000000008C28D138 |
B340B340B340B340B340B340B034020400000104B034D340D3401445D3401445 |
D340D3400000000000000000CC28CD2C8C28CD2CCD2CCD2CCD2CCD2CCD2CCD2C |
3549CC28000000000000240CCC28CC28CC28CC28CC280000000000000000E820 |
764D4614000000000000CD2C964D9651964D9651B651964DB651503901040000 |
020800000000000000009349D755D751D755D755D751F755D755F855F755D755 |
F855F755F8591856F859F755185A185AB83AF703F703F703F7037C351F5C4818 |
02085F5C1F5C9707F703F703F703970F185A185A185AF755185AF859F755F755 |
F855F755F755D755F755D755D755D755D755D751D755B751D755B651B751D651 |
B751B651B651B751B6519651964D5241CC288614030C00000000000000000000 |
240CE820CD2C3341754D7549554D55495549554D554955495549344555493445 |
5549344534453445344534451445F32DB803F703F703F703F703F703F7031617 |
133DD444D3401445D340D444D340D340D340B340000000000000000000000000 |
00004818B340B340D138B340D138B3408C280000000000000000000000000000 |
8C28B340B340D138B340B340B3408C2800000000240CD138D444D340D340D340 |
1445D3401445D340CD2C8C288C28CC288C288C28CC288C28CC288C28CC28CC28 |
CD2CCD2C35491139CD2CCC28CD2CCC28CD2CCC28CD2CCD2CCD2CCD2CCD2CCD2C |
0D313341954D33410D31CD2C0D3152419651964D9651964D9651B6519651B651 |
75490D310D310D31EF340D315035B755D651D755D755D755F755D755F755D755 |
F755F859F755F859F755F859F755185A185AF755D72AF703F803F703F7033D41 |
1F5C2614E8207F691F5C392EF803F703F703D7031856185AF859185AF755F859 |
F755F859F755F755F855D755F755D755D755D755D751D755D755D751B651D751 |
B651B755B651B751B6519651EF34440C0000000000000000000000008614CD2C |
5039554D964D754D754D764D7549754912410D31EF34CD2CEF34CD2CEF34EF34 |
34455549344535493445344534453445362ED703F703F703F703F703F703F703 |
D70394311445D3401445D340D340D340D340D340D340D3400000000000000000 |
0000000000004818B340B340B340B340B3404818000000000000000000000000 |
000000008C28B340B340B340D340B3404818000000004818D340D340D340D440 |
D3401445D3401445D34014451445334114451445144534451445344534453445 |
35493445344555493445554934455549554955495549554D7549554D7549754D |
754D7549764D954D764D954D764D9651754D964D9651964D96519651B64D9651 |
B751B651B651B751B651D755B651D751B755D751D755D755D751D755D755D755 |
F855F755F855F755F755F859F755185AF8591856F859185A3723F703F703F703 |
D7031F581E5C0204AE39BF761F5CDE48D703F803F703F703B83A185A185AF859 |
F755185AF755F859F755F859F755F755D755F755D755D755D755D755D751D755 |
B751D755B651D751B651B651B751B651E8200000000000000000000000000204 |
9651954D764D964D754D754D764D754D764D754D8C2800000000000000000000 |
000001045549554934453549554934453445362EF703F703F703F803F703F703 |
F703F703F703D703362ED34014451341D444D3401445D340D444D34000000000 |
000000000000000000004818D444D340B340D138261400000000000000000000 |
00000000000000008C28B340D340B340D138240C000000008C28D340D444D340 |
1445D3401445D444134114451445144514451445144534451445344534453445 |
34453445344535495549344555495549554955495549554D5549754D5549754D |
7549754D754D764D754D764D954D764D954D964D9651964D9651964D9651B64D |
9651B6519651B651B751B651B751B651D755B751D755D651D755D751D755F755 |
D755F755F755D755F755F755F859F755F859185AF755185AF8593852D707F703 |
F703F803392E1F58153CE820534EFF7FBE601F5C392EF803F703F7037817185A |
F755185A185AF755F8591856F755F755F755F755F855D755F755D755D755D755 |
D751D755D755B651D751B755B651B751B651B651E82000000000000000000000 |
000000005241964D954D9651954D764D954D754D754D754DE820000000000000 |
0000000000000104554955495549554934453549362EF703F703F703F703F703 |
F703D803362ED707F703F703D703362E1341144513411445D3401445D3401445 |
00000000000000000000000000004818D340D340B0340208000001048C280000 |
0000000000000000000000008C28D340D440CD2C020400000208B034D3401445 |
D3401445D3401445144513411445144514451445144534451445344534453445 |
3445344534453549554934455549344555495549554955495549754D5549754D |
5549754D754D754D764D754D964D754D964D754D9651964D9651964D9651964D |
B6519651B751B651B651B751B651B751B651D751B755D651D755D751D755D755 |
D755D755F855F755D755F755F859F755F859F755185AF755185A185A185AB83A |
F703F703F70397073F541F5C8C28F44DB656FF7FFF761F5C1F583817D703F703 |
F703B83A185A185AF859F755185AF755F859F755F859F755F755F755D755F755 |
D755D755D755D751D755D751D755B651D751B651B751B651CC28000000000000 |
00000000000000000000240C4510451045104510451045144510451001040000 |
000000000000000000000104554955495549554955491617D703F703F703F803 |
F703F703D703F32D35497541770BF703F703F703161713411445144514451445 |
134114450000000000000000000000000000240C4818461400000000240CD340 |
D3400000000000000000000000000000240C48184614000000004510D3401341 |
1445144513411445144514451445144514451445344534453445344534453445 |
34453445354955493445554934455549554955495549554D5549754D5549754D |
5549754D754D7549764D754D964D754D964D754D964D9651954D9651964D9651 |
964DB6519651B651B651B651B751B651B751B651D755B651D755D751D755D755 |
D751D755F755D755F755D755F755F859F755F855F859F755185A185AF755185A |
3852D707F703F703D703DE481E5C343C934939677C73FF7FFF7F1F6E1F5C3F54 |
3817D703F803D707584E185A185AF859185AF755F859185AF755F855F755F859 |
F755D755F855D755D755D755D751D755D755D751B651D755B751B6519349E820 |
4510451045144510451045144510451045104514451045104510451045104510 |
45104510451045104510451045104614754D7549554975491617F703F703F703 |
F703F703F703D707953555493445344555451617F703F703F703770B53413341 |
3445144514451445CD2C25102510440C2510240C2510240C2510440C25108C28 |
1341144513418C282510440C2510440C2510440C2510240C251045108C281445 |
1445144514451445144514453445144534453445344534453445344534453445 |
354934455549344555493445554955495549554955495549754D5549754D5549 |
754D7549754D754D764D754D964D754D964D754D964D9651964D9651964D9651 |
964DB6519651B651B651B751B651B751B651B751D651B755D751D755D751D755 |
D751D755D755F755D755F755F755F855F755F859F755F859185AF755185AF859 |
185A18563723F703F703D7033D411E581A4C7549D85E5B6FDE7BFF7FFF7FFF7F |
9F691F5C1F58B91EF703F703970F3856185A185A185AF755185AF755F859F755 |
F859F755F755F755F755D755F755D755D755D755D755D751D755D751B651D755 |
B651B751B651B651B751B651B6519651B751964DB651964D9651964D9651964D |
954D964D754D964D754D764D754D754D764D754D754D554975493817F703F703 |
F703F703F703F703D70795355549554934455549344555491617F703F703F703 |
9707953534453445344534453445144534451445344514451445344514451445 |
1445144514451445144514451445144514451445144514451445344514453445 |
1445344534453445144534453445344534453445344534453549344534453549 |
344555493445554955495549554955495549554D5549754D5549754D5549754D |
7549754D764D754D764D754D964D754D964D754D964D9651954D9651964D9651 |
964DB6519651B651B751B651B751B651B651B751D651B755D751B755D651D755 |
D755D755D755F755D755F755F755F755F859F755F855185AF755185AF755185A |
185A185A185AD72AF703F7039707DE481E5C1A500D31D85E9D77BE7BDE7BFF7F |
FF7FFF7FFF7FFF6D1F5C1F5C7C35D703F703970F3852185A185A185A185A185A |
F755185AF755F859F755F859F755F755F755D755F755D755D755D755D751D755 |
D755D751B755D651B751D755B651B751B651B651B651B65196519651B64D9651 |
964D9651964D964D9651954D764D954D764D754D964D754D954D9541970FD703 |
F703F803F703F703F703970B954155495549554955495549554955495549362E |
F703F703F703D703362E34453445344534453445354934453445344534453445 |
3445344534453445344534453445344534453445344534453445344534453445 |
3445344534453445344534453549344534453549344555493445554934455549 |
554955495549554955495549554D5549554D75495549754D5549754D7549754D |
754D754D754D764D954D764D954D764D954D9651964D9651964D9651964D9651 |
B64D9651B6519651B651B651B751B651B751B651D751B755D651D755D751D755 |
D751D755D755F755D755F755D755F755F855F755F859F755185AF859F755185A |
F859185A185A185AD72AF703F703B91E3F541F5C1A4C0D315B6FBD77DF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7F9F763E5C1F5C7E50B91EF703970B584E185A185A |
185AF755185A185AF755185AF755F859F755F859F755F755F755D755D755F755 |
D755D755D755D751D755D751D755B651B751D651B755B651B751B651B651B751 |
B6519651B6519651964D9651964D9651964D9651954D964D954D764D9541970B |
F703F703F703F703F703F703970F95417549554D75495549554D554955495549 |
5549554D362ED703F703F703D703B91E34455549554955493445554934455549 |
3445354934455549344535493445354934453445354934455549344535493445 |
5549344535493445554934455549554934455549554955495549554955495549 |
55495549554955495549554D75495549754D5549754D7549754D764D754D754D |
764D754D964D754D964D754D964D9651954D964D9651964D9651964D9651964D |
B6519651B651B651B751B651B751B651B751D651B751D755B651D755D751D755 |
D755D755D755F755D755F755F755F755F859F755F859F755185AF755185AF755 |
185A185A185A185A18563723F80397077C391F5C1F601438AE39BD77FF7FDE7B |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F7E77DF641F5C1F5C3D413817D703 |
B83A185A185A185A185AF859185AF755185AF755F859F755F755F859F755F855 |
F755F755D755F755D755D755D755D755D751D755D751D755B651B751D651B755 |
B651B751B651B651B651B751B65196519651B64D9651964D9651964D9651F63D |
D707F703F703F703F703F703D703970F9541754D764D754D754D754D754D7549 |
754D7549554D75495549F63DD707F703F703F703161775455549554955495549 |
5549554955495549554955495549554955495549554955495549554955495549 |
55495549554955495549554955495549554955495549554D554955495549754D |
55495549754D5549754D7549754D754D7549754D764D754D754D764D754D754D |
964D754D964D764D954D964D9651964D9651964D9651964D9651964DB6519651 |
B651B751B651B651B751B651B751B651B751D651B755D651D755D751D755D755 |
D755D755F755D755F755D755F755F855F755F859F755F859F755185AF755185A |
F859185A185A185A185A584E970FB803392E1F581F5C1D588C28B656FF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F7F725F5C1F5C |
1F5C3D41381738175852185A185A185A185AF859185AF8591856185AF859F755 |
F859F755F755F859F755F755F755D755D755F755D755D755D755D751D755D751 |
D755B651D751B651B751B651B751B651B651B751B651B6519651B7519651964D |
F63DD703F703F703F803F703F703F70378177549964D954D764D954D764D754D |
954D764D754D754D754D754D764D754D9541770BF703F703F703770B95417549 |
754D5549754D5549754D55495549754D55495549754D55495549754D5549554D |
75495549554D75495549754D55497549554D7549754D7549554D7549754D7549 |
754D754D7549754D764D754D754D754D764D754D754D764D954D764D954D764D |
954D964D9651954D9651964D9651964D9651964D9651964DB6519651B651B651 |
B651B751B651B651B751B651B751D651B755D651D755D751D755D751D755D755 |
D755D755F755D755F755F855F755F755F859F755F859F755185AF755185AF859 |
185A185A185A185AF859185AD72A970F392E1F581F5C1F5C1438EF3DBD77FF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
DF7F1F6E3E5C1F5C1F5CDE48392ED72A1856185A185A185A185A185AF859185A |
F755185A185AF755F859F755F859F755F755F855F755F755D755F755D755D755 |
D755D755D755D751D755D751D755B751D651B755B651B751D651B751B651B651 |
B651B83AD703D703F703F703F703F703F7033817B64D9651964D9651964D9651 |
954D964D9651764D954D764D954D764D754D964D754D964D970FD703F703F703 |
D707F63D7549754D764D7549754D764D754D754D764D754D754D754D754D754D |
754D7549754D754D754D764D754D754D754D754D754D764D754D754D754D764D |
754D754D764D754D754D964D754D964D754D964D754D964D964D9651954D9651 |
964D9651964D9651964D9651964DB6519651B6519651B651B651B651B651B751 |
B651B751B651B751B651D751B755D651D755D751D755D751D755D755D755D755 |
F755D755F755F755F755F755F859F755F859F755185AF755185AF8591856F859 |
185A185A185A185A185A185AB83AB91E7C391F581F5C1E5C153C71397B6FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FBF7F3F725F5C1F5C1F5C3F543D41DA4D1856185A185A185A |
185A185A185AF859185AF755185AF755185AF755185AF755F859F755F855F755 |
F755F755D755D755F755D755D755D755D755D751D755D751D755D651B755B651 |
B651B755D72AD703F703F703F703F703F803F7031617B651B651964DB6519651 |
964D9651964D9651964D9651964D9651964D9651964D9651954D964D964D970F |
D703F703F703D703D72A754D9651754D964D754D964D754D764D954D764D754D |
964D754D764D954D764D754D964D754D964D754D964D754D964D754D964D954D |
764D954D964D9651964D954D9651964D9651964D964D9651964D9651964D9651 |
964D9651964DB6519651B651B6519651B651B651B651B651B751B651B751B651 |
B751B651D755B651D755D651D755D751D755D751D755D755D755D755D755F755 |
D755F755F755F755F855F755F859F755185AF755185AF755185AF859185A185A |
185A185A185A185A185A185AF9517C399D541F581F5C1E58343C52417B6FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FBF761F651F5C1F5C1F5C3E5CFB58 |
F859185A185A185A185A185A185A185AF859185AF859185AF755185AF755F859 |
F755F859F755F859F755F755F855F755D755F755D755D755D755F755D755D755 |
D751F74DB83A970FD703F703F803F703F703F703F703F703D72AB651B751B651 |
9651B651B651B751B651B6519651B651B65196519651B64D96519651964D9651 |
964D3723D703F703F803F703F703970F362EB64D964D964D954D9651964D964D |
9651964D9651964D964D9651964D9651964D964D9651964D964D9651964D9651 |
964D9651964D9651964D9651964D9651964D9651964D9651B6519651B6519651 |
B651B651B651B751B651B651B651B751B651B751B651B751B651B751D651B755 |
D651B751D755D751D755D751D755D751D755D755D755D755F755D755F755F755 |
F755F755F859F755F859F755F859F755185AF859F755185A185AF859185A185A |
185A185A185A185A185AF8597A595E581E5C1F5C1F5C1A50B340334E9C73FF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F9F7F5F72DF64 |
1F5C1F5C1F5CBD587A59185A185A185A185A185A185A185A185A185AF859185A |
F859185AF755185AF755185AF755185AF755F755F859F755F755F755F755F755 |
183ED707D703F703F703F703F703F703F703F703F803F703F703F703F703D703 |
D707D7077817B651B751B651B751B651B651B751B651B651B651B651B651970F |
D707D707D703F703F703F703F703F703F703F703F703F703D703D707D72A964D |
96519651B64D96519651B64D96519651B651964D9651B6519651964DB6519651 |
B6519651B64D9651B651B651B6519651B651B651B651B751B651B651B651B751 |
B651B651B751B651B651B751B651B751D651B751D755B651D751D755D751D755 |
D751D755D751D755D755D755D755D755F755D755F755F755F755F755F755F855 |
F755F859F755F859F755185AF755185AF859185AF755185A185A185A185A185A |
185A185A185A185A185AB959FB583E5C1E5C1F5C1B50343C9349F75EFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7F9F7F5F721F653E5C1F5C3E5CBD589A59F859185A185A185A185A185A |
185A185A185A185A185AF859185AF755185AF859F755185AF859F755185AF755 |
F859F755B83AF703F703F703F703F703F703F703F703F703F703F703F803F703 |
F703F703F703F703970FD751D755D751D751D651B755D751B651B751D755B651 |
B751D707F703F703F703F703F703F703F703F703F703F703F703F703F703F703 |
D72AB651B651B651B751B651B651B651B751B651B651B651B651B751B651B651 |
B751B651B651B751B651B751B651B751B651B651B751B651B751B651B751D651 |
B755B651D751D755B651D751D755D751D755D751D755D755D755D755D755D755 |
D755D755D755D755F755D755F755F755F755F755F859F755F859F755F859F755 |
F859F755185AF755185AF8591856185AF859185A185A185A185A185A185A185A |
185A185A185A185AB9591B5D5E581E5C1F5C1A4C343C9349F75EDE7BFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FDF7FFF76FF6D1F651F5C3E5CBD585B5DF859 |
185AF859185A185A185A185A185A185A185A185A185A185AF859185AF755185A |
F859F755185AF7551856174E3852384E174E3852174E384E174E384E174E174E |
174E174E174E174E174E174E174ED755D755D755D755D755D755D751D755D755 |
D751D755D755F74D174E174EF74D174EF74D174EF74D174EF74DF74D174EF74D |
F74DF74DF74DB651D751B751D651B755D651B751D751B651D755B751D751B651 |
D751B755D751B651D755D751D755B651D751D755D651D751D755D751D755D751 |
D755D755D751D755D755D751D755D755D755D755D755D755D755F755D755F755 |
D755F755F755F755F859F755F755F859F755F859F755F855F755185AF755185A |
F859F755185A185AF859185AF859185A185A185A185AF755185A185A185A185A |
185A185AF8597A5DFB583E5C1E5C1A4C343C3445534E3967FF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDF7F3F7B5F72 |
7F69BE605F5CFB585B5DB9591856185A185A185A185A185A185A185A185A185A |
185A185A185A185AF859185AF859185AF755185AF755185AF755185AF755F859 |
F755185AF755F755F859F755F755F855F755F755F755D755F755F755F755D755 |
F755D755F755D755F755D755D755D755D755D755D755D755D755D755D755D755 |
D755D751D755D755D755D755D751D755D755D755D751D755D755D755D751D755 |
D755D755D755D751D755D755D755D751D755D755D755D755D755D755D755D755 |
D755D755D755F755D755D755F755D755F755F755F755F755F755F755F755F855 |
F755F755F755F859F755F855F755185AF755185AF755185AF755185AF859185A |
F8591856F859185A185A185A185A185A185A185A185A185A185A185A185A185A |
F8597A59FB585E581A50153CD444754975523967FF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FDF7F3F7BBE72FF6D7F695D61FB587A599A59F859185A185A |
185A185A185A185A185A185A185A185A185A185A185A185A185AF859185AF859 |
185AF755185AF859F755185AF859F755185AF755F859F755185AF755F859F755 |
F859F755F755F859F755F755F755F855F755F755F855F755F755F755F755D755 |
F755D755F755D755F755D755F755D755F755D755F755D755F755D755F755D755 |
F755D755F755D755F755D755F755D755F755D755F75500000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
00000000000000000000000000000000000000000000} |
Stretch = True |
IsControl = True |
end |
end |
end |
object OKButton: TButton |
Left = 81 |
Top = 158 |
Width = 75 |
Height = 25 |
Caption = 'OK' |
Default = True |
ModalResult = 1 |
TabOrder = 1 |
end |
end |
/VCL_DELPHIX_D6/SXMedia/SXAbout.pas |
---|
0,0 → 1,53 |
{ |
SXMedia Components - Beta 1 |
-------------------------------- |
Copyright 1999 Dean Ellis |
http://www.sillex.freeserve.co.uk |
This unit is part of the SXMedia Component Set. This code is |
supplied as is with no guarantees and must be used at your own |
risk. |
No modifications to this code must be made without the express |
permission of the author. Please report any problems to |
support@sillex.freeserve.co.uk |
You may use these components to create any freeware/shareware |
applications that you wish. If the components are to be used in |
a commercail product then credit for developement of these components |
should be given. |
Credits : |
Developer : Dean Ellis |
} |
unit sxabout; |
interface |
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, |
Buttons, ExtCtrls; |
type |
TAboutBox = class(TForm) |
InfoContainer: TPanel; |
Version: TLabel; |
Copyright: TLabel; |
OKButton: TButton; |
Author: TLabel; |
WebSite: TLabel; |
Credits: TLabel; |
LogoContainer: TPanel; |
ProgramIcon: TImage; |
private |
{ Private declarations } |
public |
{ Public declarations } |
end; |
implementation |
{$R *.DFM} |
end. |
/VCL_DELPHIX_D6/SXMedia/SXEditor.pas |
---|
0,0 → 1,122 |
{ |
SXMedia Components - Beta 1 |
-------------------------------- |
Copyright 1999 Dean Ellis |
http://www.sillex.freeserve.co.uk |
This unit is part of the SXMedia Component Set. This code is |
supplied as is with no guarantees and must be used at your own |
risk. |
No modifications to this code must be made without the express |
permission of the author. Please report any problems to |
support@sillex.freeserve.co.uk |
You may use these components to create any freeware/shareware |
applications that you wish. If the components are to be used in |
a commercail product then credit for developement of these components |
should be given. |
Credits : |
Developer : Dean Ellis |
} |
unit SXEditor; |
{$INCLUDE DelphiXcfg.inc} |
interface |
uses Windows, Classes, |
{$IfNDef VER6UP} DsgnIntf, {$Else} Designintf, DesignEditors, {$EndIf} |
Dialogs, SXMovie, SXModPlayer, SXEngine, SXAbout; |
const |
SXMOVIE_FILTER = 'All Media Files|*.avi;*.mpg;*.mov|' + |
'AVI (*.avi)|*.avi|MPG (*.mpg)|*.mpg|MOV (*.mov)|*.mov'; |
SXMODPLAYER_FILTER = 'All Media Files|*.mod;*.it;*.sm3|' + |
'Impulse Tracker (*.it)|*.it|Scream Tracker (*.s3m)|*.s3m|Fast Tracker (*.xm)|*.xm'; |
type |
TFilenameProperty = class(TPropertyEditor) |
function GetAttributes : TPropertyAttributes; override; |
function GetValue : string; override; |
procedure SetValue(const Value : string); override; |
procedure Edit; override; |
end; |
TSXComponentEditor = class(TComponentEditor) |
procedure ExecuteVerb(Index: Integer); override; |
function GetVerb(Index: Integer): string; override; |
function GetVerbCount: Integer; override; |
end; |
implementation |
{--------------------------------------} |
{ TFilename Property Editor } |
{--------------------------------------} |
procedure TFilenameProperty.Edit; |
var |
Dialog : TOpenDialog; |
begin |
Dialog := TOpenDialog.Create(nil); |
with Dialog do |
try |
DefaultExt := 'All Media Files'; |
if GetComponent(0) is TSXMovie then |
Filter := SXMOVIE_FILTER |
else |
if GetComponent(0) is TSXModPlayer then |
Filter := SXMODPLAYER_FILTER |
else |
Exit; |
if Dialog.Execute then |
begin |
SetStrValue(Dialog.FileName); |
Designer.Modified; |
end; |
finally |
Free; |
end; |
end; |
function TFilenameProperty.GetAttributes: TPropertyAttributes; |
begin |
Result := [paDialog]; |
end; |
function TFilenameProperty.GetValue : string; |
begin |
Result := GetStrValue; |
end; |
procedure TFilenameProperty.SetValue(const Value : string); |
begin |
SetStrValue(Value); |
Designer.Modified; |
end; |
procedure TSXComponentEditor.ExecuteVerb(Index: Integer); |
begin |
with TAboutBox.Create(nil) do |
begin |
try |
ShowModal; |
finally |
Free; |
end; |
end; |
end; |
function TSXComponentEditor.GetVerb(Index: Integer): string; |
begin |
Result := 'A&bout SXMedia'; |
end; |
function TSXComponentEditor.GetVerbCount: Integer; |
begin |
Result := 1; |
end; |
end. |
/VCL_DELPHIX_D6/SXMedia/SXEngine.pas |
---|
0,0 → 1,221 |
{ |
SXMedia Components - Beta 1 |
-------------------------------- |
Copyright 1999 Dean Ellis |
http://www.sillex.freeserve.co.uk |
This unit is part of the SXMedia Component Set. This code is |
supplied as is with no guarantees and must be used at your own |
risk. |
No modifications to this code must be made without the express |
permission of the author. Please report any problems to |
support@sillex.freeserve.co.uk |
You may use these components to create any freeware/shareware |
applications that you wish. If the components are to be used in |
a commercail product then credit for developement of these components |
should be given. |
Credits : |
Developer : Dean Ellis |
Testers : Dominique Louis |
Ivan Blecic |
} |
unit SXEngine; |
interface |
uses |
Windows, Messages, SysUtils, Classes, MMSystem; |
type |
TFramesPerSecond = 1..100; |
TFreeCyclesEvent = procedure (Sender: TObject; Count:Integer) of object; |
TSXEngine = class(TComponent) |
private |
{ Private Data Members } |
FFramesPerSecond:TFramesPerSecond; |
FEnabled:Boolean; |
FThreadPriority:TThreadPriority; |
FFPS:Integer; |
FActivate:TNotifyEvent; |
FDeActivate:TNotifyEvent; |
FRender:TNotifyEvent; |
FFreeCycles:TFreeCyclesEvent; |
protected |
{ Property Accessors } |
procedure SetTargetFPS(Value:TFramesPerSecond); |
function GetTargetFPS:TFramesPerSecond; |
procedure SetEnabled(Value:Boolean); |
procedure SetThreadPriority(Value:TThreadPriority); |
{ Notification methods } |
procedure DoRender; |
procedure DoActivate; |
procedure DoDeActivate; |
procedure DoFreeCycles(Count: Integer); |
{ Class Helper methods } |
public |
{ Public methods } |
constructor Create(AOwner:TComponent);override; |
destructor Destroy; override; |
{Public Properties} |
property FramesPerSecond : Integer read FFPS write FFPS; |
published |
{ Published properties } |
property TargetFPS : TFramesPerSecond read GetTargetFPS write SetTargetFPS default 30; |
property Enabled : Boolean read FEnabled write SetEnabled default False; |
property ThreadPriority : TThreadPriority read FThreadPriority write SetThreadPriority; |
{ Published Events} |
property OnActivate : TNotifyEvent read FActivate write FActivate; |
property OnDeActivate : TNotifyEvent read FDeActivate write FDeActivate; |
property OnRender : TNotifyEvent read FRender write FRender; |
property OnFreeCycles : TFreeCyclesEvent read FFreeCycles write FFreeCycles; |
end; |
implementation |
{$J+} |
const |
FPS : Single = 33.3; |
SECOND : Single = 1000.0; |
type |
TGameThread = class(TThread) |
private |
{ Private declarations } |
FThreadCallback:TThreadMethod; |
protected |
procedure Execute; override; |
property ThreadCallback: TThreadMethod read FThreadCallback write FThreadCallback; |
public |
constructor Create(CreateSupsended:Boolean;Callback:TThreadMethod); |
end; |
var Thread:TGameThread; |
{ Important: Methods and properties of objects in VCL can only be used in a |
method called using Synchronize, for example, |
Synchronize(UpdateCaption); |
and UpdateCaption could look like, |
procedure TGameThread.UpdateCaption; |
begin |
Form1.Caption := 'Updated in a thread'; |
end; } |
{ TGameThread } |
procedure TGameThread.Execute; |
begin |
{ Place thread code here } |
while not Terminated do |
begin |
try |
if Assigned(ThreadCallback) then Synchronize(ThreadCallback); |
except |
Terminate; |
end; |
end; |
end; |
constructor TGameThread.Create(CreateSupsended:Boolean;Callback:TThreadMethod); |
begin |
inherited Create(CreateSupsended); |
ThreadCallback := Callback; |
end; |
{ TSXEngine } |
constructor TSXEngine.Create(AOwner:TComponent); |
begin |
inherited Create(AOwner); |
if not (csDesigning in ComponentState) then |
begin |
if not Assigned(Thread) then |
begin |
Thread := TGameThread.Create(True,DoRender); |
Thread.FreeOnTerminate := False; |
Thread.Priority := ThreadPriority; |
Thread.Suspended := not Enabled; |
end; |
DoActivate; |
end; |
Enabled := False; |
TargetFPS := 30; |
end; |
destructor TSXEngine.Destroy; |
begin |
if not (csDesigning in ComponentState) then |
begin |
if Assigned(Thread) then |
begin |
Thread.Terminate; |
Thread.Free; |
end; |
DoDeActivate; |
end; |
inherited Destroy; |
end; |
procedure TSXEngine.SetTargetFPS(Value:TFramesPerSecond); |
begin |
FFramesPerSecond := Value; |
FPS := SECOND / Value; |
end; |
function TSXEngine.GetTargetFPS:TFramesPerSecond; |
begin |
Result := FFramesPerSecond; |
end; |
procedure TSXEngine.SetEnabled(Value:Boolean); |
begin |
FEnabled := Value; |
if Thread <> nil then |
Thread.Suspended := not Value; |
end; |
procedure TSXEngine.SetThreadPriority(Value:TThreadPriority); |
begin |
FThreadPriority := Value; |
if Thread <> nil then |
Thread.Priority := Value; |
end; |
procedure TSXEngine.DoRender; |
const Start:DWord = 0; |
OldStart:DWord = 0; |
Count:Integer =0; |
var FreeCycleCount:integer; |
begin |
try |
Start := TimeGetTime; |
FreeCycleCount := 0; |
if Assigned(FRender) then FRender(Self); |
if (Start - OldStart) < SECOND then |
Inc(Count) |
else |
begin |
FramesPerSecond := Count; |
OldStart := Start; |
Count := 0; |
end; |
repeat |
DoFreeCycles(FreeCycleCount); |
inc(FreeCycleCount); |
until (TimeGetTime - Start) >= FPS; |
except |
Enabled := False; |
Thread.Terminate; |
end; |
end; |
procedure TSXEngine.DoActivate; |
begin |
if Assigned(FActivate) then FActivate(Self); |
end; |
procedure TSXEngine.DoDeActivate; |
begin |
if Assigned(FDeActivate) then FDeActivate(Self); |
end; |
procedure TSXEngine.DoFreeCycles(Count: Integer); |
begin |
if Assigned(FFreeCycles) then FFreeCycles(Self,Count); |
end; |
end. |
/VCL_DELPHIX_D6/SXMedia/SXModPlayer.pas |
---|
0,0 → 1,542 |
{ |
SXMedia Components - Beta 1 |
-------------------------------- |
Copyright 1999 Dean Ellis |
http://www.sillex.freeserve.co.uk |
This unit is part of the SXMedia Component Set. This code is |
supplied as is with no guarantees and must be used at your own |
risk. |
No modifications to this code must be made without the express |
permission of the author. Please report any problems to |
support@sillex.freeserve.co.uk |
You may use these components to create any freeware/shareware |
applications that you wish. If the components are to be used in |
a commercail product then credit for developement of these components |
should be given. |
Credits : |
Developer : Dean Ellis |
Testers : Dominique Louis |
Ivan Blecic |
Naoki Haga |
Version History |
-------------------------------------------------------------------------------- |
25/01/2000 Modified Destroy and Stop methods to check IDSBuffer before |
calling IBuffer.Stop. Stops the "Buffer not Created exception" |
being thrown. |
06/02/2000 Added OnStop and OnStart events |
Added Finalize method. This does not have to be called but if you |
manually finalize and initialize the DXSound Component you |
need to call this method to clear the buffers and the Threads. |
22/02/2000 Modified SetLoop code to correct functionality. |
Modifed Stop method to make sure the OnStop event is only called |
if it wsa playing and that the Value of Playing would be False |
when the event is fired. |
15/05/2000 Made use of the MppSdkLibLoaded variable to make sure the component |
does nothing if the mppsdk.dll is not found. |
Removed the raising of an exception in the constructor as it seemed to |
be causing more problems than it was solving. |
-------------------------------------------------------------------------------- |
} |
unit SXModPlayer; |
{$INCLUDE DelphiXcfg.inc} |
interface |
uses |
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, |
DXSounds, MMSystem, MpSndSys, |
{$IFDEF StandardDX} |
DirectDraw, DirectSound, |
{$IFDEF DX7} |
{$IFDEF D3DRM} |
Direct3DRM, |
{$ENDIF} |
Direct3D; |
{$ENDIF} |
{$IFDEF DX9} |
Direct3D9, Direct3D, D3DX9, {Direct3D8,} DX7toDX8; |
{$ENDIF} |
{$ELSE} |
DirectX; |
{$ENDIF} |
type |
TModOption = (NoResampling, BassExpansion, Surround, Reverb, |
HighQuality, GainControl, NoiseReduction); |
TModOptions = Set of TModOption; |
TSXModPlayer = class(TComponent) |
private |
{ Private declarations } |
FFilename: TFilename; |
FDXSound : TDXSound; |
FSoundBuffer : TDirectSoundBuffer; |
FSoundNotify : IDirectSoundNotify; |
FBufferDesc : TDSBufferDesc; |
FWaveFormat : TWaveFormatEx; |
FLoop : Boolean; |
FPlaying : Boolean; |
FOptions : TModOptions; |
FEvents: TList; |
FNotify: TList; |
FOnStop: TNotifyEvent; |
FOnStart: TNotifyEvent; |
function GetPosition : Integer; |
function GetSilenceData:Integer; |
protected |
{ Protected declarations } |
procedure InitSoundEvents; |
procedure ThreadCallback; |
procedure SetFilename(const Value : TFilename); |
procedure SetLoop(const Value : Boolean); |
procedure SetOptions(const Value : TModOptions); |
procedure Notification(AComponent: TComponent; Operation: TOperation); override; |
procedure DoStop; |
procedure DoStart; |
function CreateEventList : TList; |
function CreateNotifyList : TList; |
function CreateSoundBuffer : TDirectSoundBuffer; |
function CreateSoundNotify : IDirectSoundNotify; |
procedure ClearSoundNotify; |
procedure CreateEventThread; |
procedure ClearSoundBuffer; |
procedure StartThread; |
procedure StopThread; |
property BufferDesc : TDSBufferDesc read FBufferDesc write FBufferDesc; |
property WaveFormat : TWaveFormatEx read FWaveFormat write FWaveFormat; |
property SoundBuffer : TDirectSoundBuffer read FSoundBuffer write FSoundBuffer; |
property SoundNotify : IDirectSoundNotify read FSoundNotify write FSoundNotify; |
property Events : TList read FEvents write FEvents; |
property Notify : TList read FNotify write FNotify; |
public |
{ Public declarations } |
constructor Create( AOwner : TComponent); override; |
destructor Destroy; override; |
procedure Initialize(Stream:TMemoryStream); |
procedure Finalize; |
procedure Play(Loop : Boolean); |
procedure Stop; |
procedure Reset; |
property Position : Integer read GetPosition; |
property Playing : Boolean read FPlaying; |
published |
{ Published declarations } |
property Filename : TFilename read FFilename write SetFilename; |
property DXSound : TDXSound read FDXSound write FDXSound; |
property Looping : Boolean read FLoop write SetLoop default False; |
property Options : TModOptions read FOptions write SetOptions; |
property OnStart : TNotifyEvent read FOnStart write FOnStart; |
property OnStop : TNotifyEvent read FOnStop write FOnStop; |
end; |
implementation |
// If you are having problems compiling the package edit this file. |
// Comment out this include Statement. You should only need to do this |
// if you are NOT using the latest version of DelphiX (991024) |
// Comment this Define out if you are using DelphiX992404 or earlier |
{$DEFINE VERSION991024} |
const |
EVENTCOUNT:Integer = 2; |
type |
{Music Event Callback thread} |
TSXEventThread = class(TThread) |
private |
FEventCallback:TThreadMethod; |
public |
procedure Execute; override; |
property EventCallback : TThreadMethod read FEventCallback write FEventCallback; |
end; |
var |
EventThread : TSXEventThread; |
CurrentEvent : Integer; |
{ TSXEventThread } |
procedure TSXEventThread.Execute; |
begin |
if not Assigned(EventCallback) then Terminate; |
while not Terminated do |
begin |
EventCallback; |
end; |
end; |
{ TSXModPlayer } |
constructor TSXModPlayer.Create(AOwner : TComponent); |
begin |
inherited Create(AOwner); |
if MppSdkLibLoaded then |
ModMixer.SetMixerOptions(0); |
Events := CreateEventList; |
Notify := CreateNotifyList; |
end; |
destructor TSXModPlayer.Destroy; |
begin |
Finalize; |
{} |
Notify.Free; |
Events.Free; |
inherited Destroy; |
end; |
procedure TSXModPlayer.Initialize(Stream:TMemoryStream); |
var Data:Pointer; |
Size:Integer; |
FreeStream:Boolean; |
begin |
try |
if MppSdkLibLoaded then |
begin |
if SoundBuffer = nil then InitSoundEvents; |
FreeStream := False; |
if Stream = nil then |
begin |
Stream := TMemoryStream.Create; |
Stream.LoadFromFile(Filename); |
FreeStream := True; |
end; |
Data := Stream.Memory; |
Size := Stream.Size; |
ModMixer.FreeSong; |
ModMixer.LoadSong(Data,Size); |
if FreeStream then Stream.Free; |
end; |
except |
end; |
end; |
procedure TSXModPlayer.Finalize; |
begin |
Stop; |
if Assigned(EventThread) then |
begin |
EventThread.Terminate; |
EventThread.Free; |
EventThread := nil; |
end; |
ClearSoundNotify; |
if Assigned(SoundBuffer) then |
begin |
try |
if Playing and (SoundBuffer.IDSBuffer <> nil) then |
SoundBuffer.IBuffer.Stop; |
finally |
SoundBuffer := nil; |
end; |
end; |
end; |
procedure TSXModPlayer.InitSoundEvents; |
// DelphiX Version 991024 Edit Version.inc to change declarations |
{$IFDEF VERSION991024} |
var SizeWritten: Cardinal; |
{$ELSE} |
// DelphiX Version 992404 and earlier |
var SizeWritten : Integer; |
{$ENDIF} |
begin |
if MppSdkLibLoaded and Assigned(DXSound) then |
begin |
DXSound.Primary.IBuffer.GetFormat(@FWaveFormat,Sizeof(WaveFormat),@SizeWritten); |
ModMixer.SetWaveFormat(WaveFormat.nSamplesPerSec,WaveFormat.nChannels,WaveFormat.wBitsPerSample); |
SoundBuffer := CreateSoundBuffer; |
SoundNotify := CreateSoundNotify; |
if (SoundBuffer <> nil) and (SoundNotify <> nil) then |
CreateEventThread; |
end; |
end; |
procedure TSXModPlayer.ThreadCallback; |
var Msg : TMsg; |
procedure ReadData(Event:Integer); |
var W1:pointer; |
// DelphiX Version 991024 Edit Version.inc to change declarations |
{$IFDEF VERSION991024} |
S1, S2 : Cardinal; |
{$ELSE} |
// DelphiX Version 992404 and earlier |
S1,S2:Integer; |
{$ENDIF} |
NumWrite:Longint; |
Pos:Integer; |
Written1:Integer; |
begin |
if Event = 0 then |
Pos := TDSBPositionNotify(Notify[EVENTCOUNT -1]^).dwOffset |
else |
Pos := TDSBPositionNotify(Notify[Event-1]^).dwOffset; |
NumWrite := TDSBPositionNotify(Notify[Event]^).dwOffset - Pos; |
if (NumWrite < 0) then |
inc(NumWrite,BufferDesc.dwBufferBytes); |
if SoundBuffer.IBuffer.Lock(Pos,NumWrite,w1,{$IFDEF UNICODE}@{$ENDIF}s1,Pointer(nil^),{$IFDEF UNICODE}@{$ENDIF}s2,0) = 0 then |
begin |
Written1 := ModMixer.Render(W1,S1); |
SoundBuffer.IBuffer.Unlock(w1,Written1, nil,0); |
if (Written1 = 0) then |
Stop; |
end; |
end; |
begin |
CurrentEvent := MsgWaitForMultipleObjects(EVENTCOUNT,Events.List{$IFNDEF UNICODE}^{$ENDIF}[0], False, INFINITE, QS_ALLINPUT); |
dec(CurrentEvent,WAIT_OBJECT_0); |
if CurrentEvent >= EVENTCOUNT then |
begin |
while (PeekMessage(Msg, 0, 0,0, PM_REMOVE)) do |
begin |
if Msg.Message = WM_QUIT then |
Stop |
else |
begin |
TranslateMessage(Msg); |
DispatchMessage(Msg); |
end; |
end; |
end |
else |
begin |
ReadData(CurrentEvent); |
end; |
end; |
function TSXModPlayer.CreateEventList : TList; |
begin |
Result := TList.Create; |
Result.Capacity := EVENTCOUNT; |
end; |
function TSXModPlayer.CreateNotifyList : TList; |
begin |
Result := TList.Create; |
Result.Capacity := EVENTCOUNT; |
end; |
function TSXModPlayer.CreateSoundBuffer : TDirectSoundBuffer; |
{$IFDEF UNICODE} |
const DSBCAPS_CTRLDEFAULT = DSBCAPS_CTRLPAN or DSBCAPS_CTRLVOLUME or DSBCAPS_CTRLFREQUENCY; |
{$ENDIF} |
begin |
Result := TDirectSoundBuffer.Create(DXSound.DSound); |
ZeroMemory(@BufferDesc,Sizeof(TDSBufferDesc)); |
FBufferDesc.dwSize := Sizeof(TDSBufferDesc); |
FBufferDesc.dwFlags := DSBCAPS_CTRLDEFAULT or DSBCAPS_STATIC or |
DSBCAPS_GETCURRENTPOSITION2 or DSBCAPS_CTRLPOSITIONNOTIFY; |
FBufferDesc.dwBufferBytes := WaveFormat.nAvgBytesPerSec * 2; |
FBufferDesc.lpwfxFormat := @WaveFormat; |
Result.CreateBuffer(BufferDesc); |
end; |
function TSXModPlayer.CreateSoundNotify : IDirectSoundNotify; |
type TNotifyArray = Array[0..99] of TDSBPositionNotify; |
var PDSNotify : PDSBPositionNotify; |
index : Integer; Offset: Integer; |
PNotify: ^TNotifyArray; |
begin |
Result := nil; |
if SoundBuffer.IBuffer.QueryInterface(IID_IDirectSoundNotify,Result) = 0 then |
begin |
{setup notifications here} |
Offset := 0; |
GetMem(PNotify,EVENTCOUNT * Sizeof(TDSBPositionNotify)); |
for Index := 1 to EVENTCOUNT do |
begin |
New(PDSNotify); |
PDSNotify^.dwOffset := OffSet; |
PDSNotify^.hEventNotify := CreateEvent(nil,False,False,nil); |
Notify.Add(PDSNotify); |
Events.Add(Pointer(PDSNotify^.hEventNotify)); |
PNotify[Index-1] := PDSNotify^; |
inc(Offset,WaveFormat.nAvgBytesPerSec div EVENTCOUNT); |
end; |
if Result.SetNotificationPositions(EVENTCOUNT,{$IFDEF UNICODE}@{$ENDIF}PNotify[0]) <> 0 then |
ShowMessage('Notification Falied'); |
FreeMem(PNotify,EVENTCOUNT * Sizeof(TDSBPositionNotify)); |
end; |
end; |
procedure TSXModPlayer.ClearSoundNotify; |
var PDSNotify : PDSBPositionNotify; |
Index : Integer; |
begin |
for Index := Notify.Count -1 downto 0 do |
begin |
PDSNotify := Notify[Index]; |
Notify.Delete(Index); |
Events.Delete(Index); |
CloseHandle(PDSNotify^.hEventNotify); |
end; |
SoundNotify := nil; |
end; |
procedure TSXModPlayer.CreateEventThread; |
begin |
if not Assigned(EventThread) then |
begin |
EventThread := TSXEventThread.Create(True); |
EventThread.Priority := tpNormal; |
EventThread.EventCallback := ThreadCallback; |
end; |
end; |
procedure TSXModPlayer.ClearSoundBuffer; |
var w1,w2:pointer; |
// DelphiX Version 991024 Edit Version.inc to change declarations |
{$IFDEF VERSION991024} |
S1, S2 : Cardinal; |
{$ELSE} |
// DelphiX Version 992404 and earlier |
S1,S2:Integer; |
{$ENDIF} |
Data:Word; |
begin |
Data := GetSilenceData; |
if SoundBuffer.IBuffer.Lock(0,0,w1,{$IFDEF UNICODE}@{$ENDIF}s1,w2,{$IFDEF UNICODE}@{$ENDIF}s2,DSBLOCK_ENTIREBUFFER) = 0 then |
begin |
FillMemory(W1,S1,Data); |
if W2 <> nil then |
FillMemory(W2,S2,Data); |
SoundBuffer.IBuffer.Unlock(W1,S1,W2,S2); |
end; |
end; |
procedure TSXModPlayer.StartThread; |
begin |
if Assigned(EventThread) then EventThread.Resume; |
end; |
procedure TSXModPlayer.StopThread; |
begin |
if Assigned(EventThread) then EventThread.Suspend; |
end; |
{} |
procedure TSXModPlayer.Play(Loop : Boolean); |
begin |
if MppSdkLibLoaded then |
begin |
if Assigned(SoundBuffer) and Assigned(EventThread) then |
begin |
SetLoop(Loop); |
ClearSoundBuffer; |
StartThread; |
FPlaying := True; |
DoStart; |
SoundBuffer.IBuffer.Play(0,0,DSBPLAY_LOOPING); |
end; |
end; |
end; |
procedure TSXModPlayer.Stop; |
begin |
if MppSdkLibLoaded then |
begin |
if Assigned(SoundBuffer) and Assigned(EventThread) then |
begin |
try |
if Playing and (SoundBuffer.IDSBuffer <> nil) then |
begin |
FPlaying := False; |
SoundBuffer.IBuffer.Stop; |
DoStop; |
end; |
finally |
StopThread; |
end; |
end; |
end; |
end; |
procedure TSXModPlayer.Reset; |
begin |
if MppSdkLibLoaded then |
ModMixer.SetCurrentOrder(0); |
end; |
{Property Accessors} |
function TSXModPlayer.GetPosition : Integer; |
begin |
Result := 0; |
end; |
procedure TSXModPlayer.SetFilename(const Value : TFilename); |
begin |
if FFilename <> Value then |
begin |
FFilename := Value; |
end; |
end; |
procedure TSXModPlayer.SetLoop( const Value : Boolean); |
var Flags : DWord; |
begin |
if FLoop <> Value then |
begin |
FLoop := Value; |
if MppSdkLibLoaded then |
begin |
Flags := ModMixer.GetMixerOptions; |
case Value of |
True:Flags := Flags or MPPMIX_LOOP; |
False:Flags := Flags and (not MPPMIX_LOOP); |
end; |
ModMixer.SetMixerOptions(Flags); |
end; |
end; |
end; |
procedure TSXModPlayer.SetOptions( const Value : TModOptions ); |
const OptionArray: array[Boolean,TModOption] of Integer = ( |
(0,0,0,0,0,0,0), |
(MPPMIX_NORESAMPLING, MPPMIX_BASSEXPANSION, MPPMIX_SURROUND, |
MPPMIX_REVERB, MPPMIX_HIGHQUALITY, MPPMIX_GAINCONTROL, |
MPPMIX_NOISEREDUCTION) |
); |
var Flags : DWord; |
begin |
if FOptions <> Value then |
begin |
FOptions := Value; |
if MppSdkLibLoaded then |
begin |
Flags := 0; |
Flags := Flags or OptionArray[NoResampling in Value,NoResampling]; |
Flags := Flags or OptionArray[BassExpansion in Value,BassExpansion]; |
Flags := Flags or OptionArray[Surround in Value,Surround]; |
Flags := Flags or OptionArray[Reverb in Value,Reverb]; |
Flags := Flags or OptionArray[HighQuality in Value,HighQuality]; |
Flags := Flags or OptionArray[GainControl in Value,GainControl]; |
Flags := Flags or OptionArray[NoiseReduction in Value,NoiseReduction]; |
ModMixer.SetMixerOptions(Flags); |
SetLoop(Looping); |
end; |
end; |
end; |
procedure TSXModPlayer.Notification(AComponent: TComponent; Operation: TOperation); |
begin |
inherited Notification( AComponent, Operation); |
if (Operation = opRemove) and (AComponent = DXSound) then |
DXSound := nil; |
end; |
procedure TSXModPlayer.DoStop; |
begin |
if Assigned(FOnStop) then |
FOnStop(Self); |
end; |
procedure TSXModPlayer.DoStart; |
begin |
if Assigned(FOnStart) then |
FOnStart(Self); |
end; |
function TSXModPlayer.GetSilenceData:integer; |
const SilenceData:array[1..2] of integer = ($80,$0); |
begin |
Result := SilenceData[WaveFormat.wBitsPerSample div 8]; |
end; |
end. |
/VCL_DELPHIX_D6/SXMedia/SXMovie.pas |
---|
0,0 → 1,460 |
{ |
SXMedia Components - Beta 1 |
-------------------------------- |
Copyright 1999 Dean Ellis |
http://www.sillex.freeserve.co.uk |
This unit is part of the SXMedia Component Set. This code is |
supplied as is with no guarantees and must be used at your own |
risk. |
No modifications to this code must be made without the express |
permission of the author. Please report any problems to |
support@sillex.freeserve.co.uk |
You may use these components to create any freeware/shareware |
applications that you wish. If the components are to be used in |
a commercail product then credit for developement of these components |
should be given. |
Credits : |
Developer : Dean Ellis |
Testers : Dominique Louis |
Ivan Blecic |
} |
unit SXMovie; |
{$INCLUDE DelphiXcfg.inc} |
interface |
uses |
Windows, Classes, SysUtils, ActiveX, Math, Dialogs, |
DXSounds, DXDraws, |
{$IFDEF StandardDX} |
DirectDraw, DirectSound, DirectShow9, |
{$IFDEF DX7} |
{$IFDEF D3DRM} |
Direct3DRM, |
{$ENDIF} |
Direct3D; |
{$ENDIF} |
{$IFDEF DX9} |
Direct3D9, Direct3D, D3DX9, {Direct3D8,} DX7toDX8; |
{$ENDIF} |
{$ELSE} |
DShow, DirectX; |
{$ENDIF} |
type |
TMovieOptions = (VideoAndSound, VideoOnly); |
TDisplay = (FullScreen, WideScreen, OriginalSize); |
TScreenRect = class(TPersistent) |
private |
FLeft: integer; |
FRight: integer; |
FTop: integer; |
FBottom: integer; |
procedure SetLeft(Value: integer); |
procedure SetRight(Value: integer); |
procedure SetTop(Value: integer); |
procedure SetBottom(Value: integer); |
protected |
public |
procedure Assign(Value: TScreenRect); |
published |
property Left: integer read FLeft write SetLeft; |
property Right: integer read FRight write SetRight; |
property Top: integer read FTop write SetTop; |
property Bottom: integer read FBottom write SetBottom; |
end; |
TSXMovie = class; |
TMovieThread = class(TThread) |
private |
{ Private declarations } |
FSXMovie: TSXMovie; |
protected |
procedure Execute; override; |
public |
property SXMovie: TSXMovie read FSXMovie write FSXMovie; |
end; |
TSXMovie = class(TComponent) |
private |
FMovieThread: TMovieThread; |
FDXDraw: TDXDraw; |
FDXSound: TDXSound; |
FMMStream: IMultiMediaStream; |
FPrimaryVidStream: IMediaStream; |
FDDStream: IDirectDrawMediaStream; |
FSample: IDirectDrawStreamSample; |
FSurface: IDirectDrawSurface; |
FDXSurface: TDirectDrawSurface; |
FRect: TRect; |
FDestRect: TRect; |
FScreenRect: TScreenRect; |
FFilename: TFilename; |
FPlaying: Boolean; |
FDoFlip: Boolean; |
{Event} |
FOnMovieEnd: TNotifyEvent; |
FOnBeforeRender: TNotifyEvent; |
FOnAfterRender: TNotifyEvent; |
procedure SetFilename(Value: TFilename); |
procedure SetScreenRect(Value: TScreenRect); |
procedure DoMovieEnd; |
procedure DoBeforeRender; |
procedure DoAfterRender; |
protected |
procedure Notification(AComponent: TComponent; Operation: TOperation); override; |
procedure SetMovieStateRun; |
procedure SetMovieStateStop; |
procedure CreateMediaStream; virtual; |
procedure SetupMediaSample; virtual; |
public |
constructor Create(AOwner: TComponent); override; |
destructor Destroy; override; |
procedure UpDate; virtual; |
// function SetDisplay(Value:TDisplay):Boolean; |
procedure DisplayRect(Top, Left, Right, Bottom: integer); |
procedure Play; |
procedure Stop; |
{} |
published |
property DXDraw: TDXDraw read FDXDraw write FDXDraw; |
property DXSound: TDXSound read FDXSound write FDXSound; |
property Filename: TFilename read FFilename write SetFilename; |
property Playing: Boolean read FPlaying; |
property DoFlip: Boolean read FDoFlip write FDoFlip; |
property DestinationRectangle: TScreenRect read FScreenRect write SetScreenRect; |
property OnMovieEnd: TNotifyEvent read FOnMovieEnd write FOnMovieEnd; |
property OnBeforeRender: TNotifyEvent read FOnBeforeRender write FOnBeforeRender; |
property OnAfterRender: TNotifyEvent read FOnAfterRender write FOnAfterRender; |
end; |
implementation |
uses Graphics; |
procedure TScreenRect.SetLeft(Value: integer); |
begin |
FLeft := Value; |
end; |
procedure TScreenRect.SetRight(Value: integer); |
begin |
FRight := Value; |
end; |
procedure TScreenRect.SetTop(Value: integer); |
begin |
FTop := Value; |
end; |
procedure TScreenRect.SetBottom(Value: integer); |
begin |
FBottom := Value; |
end; |
procedure TScreenRect.Assign(Value: TScreenRect); |
begin |
Left := Value.Left; |
Right := Value.Right; |
Top := Value.Top; |
Bottom := Value.Bottom; |
end; |
{ Important: Methods and properties of objects in VCL can only be used in a |
method called using Synchronize, for example, |
Synchronize(UpdateCaption); |
and UpdateCaption could look like, |
procedure TMovieThread.UpdateCaption; |
begin |
Form1.Caption := 'Updated in a thread'; |
end; } |
{ TMovieThread } |
procedure TMovieThread.Execute; |
begin |
{ Place thread code here } |
if Assigned(SXMovie) then |
SXMovie.SetMovieStateRun; |
while (not Terminated) and Assigned(SXMovie) do |
begin |
Synchronize(SXMovie.UpDate) |
end; |
if Assigned(SXMovie) then |
SXMovie.SetMovieStateStop; |
end; |
{SXMovie} |
procedure TSXMovie.SetFilename(Value: TFilename); |
begin |
if Value <> '' then |
FFilename := Value; |
end; |
procedure TSXMovie.SetScreenRect(Value: TScreenRect); |
begin |
FScreenRect.Assign(Value); |
end; |
procedure TSXMovie.DoMovieEnd; |
begin |
if Assigned(FOnMovieEnd) then FOnMovieEnd(Self); |
end; |
procedure TSXMovie.DoBeforeRender; |
begin |
if Assigned(FOnBeforeRender) then FOnBeforeRender(Self); |
end; |
procedure TSXMovie.DoAfterRender; |
begin |
if Assigned(FOnAfterRender) then FOnAfterRender(Self); |
end; |
procedure TSXMovie.Notification(AComponent: TComponent; Operation: TOperation); |
begin |
if Operation = opRemove then |
begin |
if AComponent is TDXDraw then FDXDraw := nil; |
if AComponent is TDXSound then FDXSound := nil; |
end; |
inherited; |
end; |
procedure TSXMovie.SetMovieStateRun; |
begin |
try |
if FMMStream.SetState(STREAMSTATE_RUN) <> S_OK then |
Exception.Create('Set Movie State Run Exception'); |
except |
end; |
end; |
procedure TSXMovie.SetMovieStateStop; |
begin |
try |
FMMStream.SetState(STREAMSTATE_STOP); |
finally |
FPlaying := False; |
end; |
end; |
procedure TSXMovie.CreateMediaStream; |
var |
wPath:{$IFDEF UNICODE}array of Char{$ELSE}array[0..MAX_PATH] of WChar{$ELSE}{$ENDIF}; |
AMStream:IAMMultiMediaStream; |
Media:IMediaStream; |
begin |
Media := nil; |
AMStream := nil; |
try |
CoCreateinstance(CLSID_AMMULTIMEDIASTREAM,nil,CLSCTX_INPROC_SERVER,IID_IAMMULTIMEDIASTREAM,AMStream); |
{$IFDEF UNICODE} |
SetLength(wPath, Length(Filename) + 1); |
StrPCopy(@wPath, Filename); |
{$ELSE} |
MultiByteToWideChar(CP_ACP,0,PAnsiChar(Filename),-1,wPath,Sizeof(wPAth) div sizeof(wPath[0])); |
{$ENDIF} |
AMStream.Initialize(STREAMTYPE_READ,AMMSF_NOGRAPHTHREAD,nil); |
if (DXSound <> nil) and (DXSound.DSound <> nil) and (DXSound.DSound.ISound <> nil) then |
AMStream.AddMediaStream(DXSound.DSound.ISound,{$IFDEF UNICODE}@{$ENDIF}MSPID_PrimaryAudio,AMMSF_ADDDEFAULTRENDERER,IMediaStream(nil^)); |
AMStream.AddMediaStream(DXDraw.DDraw.IDraw,{$IFDEF UNICODE}@{$ENDIF}MSPID_PrimaryVideo,0,Media); |
AMStream.OpenFile({$IFDEF UNICODE}@{$ENDIF}wPAth,0); |
FMMStream := AMStream; |
except |
FMMStream := nil; |
end; |
end; |
procedure TSXMovie.SetupMediaSample; |
begin |
try |
FSample := nil; |
FDDStream := nil; |
FPrimaryVidStream := nil; |
if FMMStream.GetMediaStream(MSPID_PrimaryVideo, FPrimaryVidStream) <> S_OK then Exit; |
if FPrimaryVidStream.QueryInterface(IID_IDirectDrawMediaStream, FDDStream) <> S_OK then Exit; |
if FDDStream.CreateSample(nil, PRect(nil)^, 0, FSample) <> S_OK then Exit; |
FDXSurface := TDirectDrawSurface.Create(FDXDraw.DDraw); |
if FSample.GetSurface(FSurface, FRect) <> S_OK then Exit; |
FDXSurface.IDDSurface := FSurface; |
except |
end; |
end; |
procedure TSXMovie.UpDate; |
function AspectRatio(SourceRect: TRect; var DestRect: TRect): Boolean; |
var |
SourceWidth, SourceHeight, DestWidth, DestHeight: Integer; |
SourceRatio, DestRatio: Double; |
begin |
Result := False; |
SourceWidth := SourceRect.Right - SourceRect.Left; |
SourceHeight := SourceRect.Bottom - SourceRect.Top; |
SourceRatio := SourceWidth/SourceHeight; |
DestWidth := DestRect.Right - DestRect.Left; |
DestHeight := DestRect.Bottom - DestRect.Top; |
DestRatio := DestWidth/DestHeight; |
if SourceRatio <> DestRatio then |
begin |
if DestWidth > DestHeight then |
DestRect.Bottom := DestRect.Top + Round(DestWidth / SourceRatio) |
else |
DestRect.Right := DestRect.Left + Round(SourceRatio * DestHeight); |
Result := True; |
end; |
end; |
var |
R: TRect; |
Q: HResult; |
begin |
try |
Q := FSample.Update(0, 0, nil, 0); |
case Q of |
HResult(MS_S_PENDING):; |
HResult(MS_S_NOUPDATE):; |
HResult(MS_S_ENDOFSTREAM):; |
end; |
if Q <> S_OK then |
begin |
FMovieThread.Terminate; |
SetMovieStateStop; |
FPlaying := False; |
DoMovieEnd; |
Exit; |
end; |
if (FSurface <> nil) and DXDraw.CanDraw then |
begin |
DoBeforeRender; |
R := FDestRect; |
if AspectRatio(FRect, R) then |
FDestRect := R; |
DXDraw.Surface.StretchDraw(FDestRect, FRect, FDXSurface, False); |
with DXDraw.Surface.Canvas do |
begin |
Brush.Style := bsClear; |
Font.Color := clWhite; |
Font.Size := 8; |
Textout(5, 5, 'SilleX Media - Beta 1'); |
Release; |
end; |
DoAfterRender; |
if DoFlip then |
DXDraw.Flip; |
end; |
except |
on E: Exception do |
ShowMessage(E.Message); |
end; |
end; |
procedure TSXMovie.DisplayRect(Top, Left, Right, Bottom: integer); |
begin |
if not (csDesigning in ComponentState) then |
begin |
FScreenRect.Top := Top; |
FSCreenRect.Left := Left; |
FScreenRect.Right := Right; |
FScreenRect.Bottom := Bottom; |
end; |
end; |
procedure TSXMovie.Play; |
begin |
if not (csDesigning in ComponentState) then |
begin |
FDestRect.Left := FScreenRect.Left; |
FDestRect.Right := FScreenRect.Right; |
FDestRect.Top := FScreenRect.Top; |
FDestRect.Bottom := FScreenRect.Bottom; |
FPlaying := True; |
CreateMediaStream; |
SetupMediaSample; |
if FSample <> nil then |
begin |
FMovieThread := TMovieThread.Create(True); |
if Assigned(FMovieThread) then |
begin |
FMovieThread.FreeOnTerminate := False; |
FMovieThread.SXMovie := Self; |
FMovieThread.Resume; |
end; |
end; |
end; |
end; |
procedure TSXMovie.Stop; |
begin |
if not (csDesigning in ComponentState) then |
begin |
FPlaying := False; |
if Assigned(FMovieThread) then |
begin |
if not FMovieThread.Terminated then |
begin |
FMovieThread.Terminate; |
DoMovieEnd; |
end; |
FMovieThread.Free; |
FMovieThread := nil; |
end; |
if FDXSurface <> nil then |
begin |
FDXSurface.Free; |
FSurface := nil; |
end; |
end; |
end; |
constructor TSXMovie.Create(AOwner: TComponent); |
begin |
inherited Create(AOwner); |
FScreenRect := TScreenRect.Create; |
CoInitialize(nil); |
end; |
destructor TSXMovie.Destroy; |
begin |
if not (csDesigning in ComponentState) then |
begin |
FPlaying := False; |
if Assigned(FMovieThread) then |
begin |
if not FMovieThread.Terminated then |
FMovieThread.Terminate; |
FMovieThread.Free; |
FMovieThread := nil; |
end; |
if Assigned(FSample) then |
FSample := nil; |
if Assigned(FDDStream) then |
FDDStream := nil; |
if Assigned(FPrimaryVidStream) then |
FPrimaryVidStream := nil; |
if Assigned(FMMStream) then |
FMMStream := nil; |
if Assigned(FSurface) then |
FSurface := nil; |
end; |
FScreenRect.Free; |
CoUnInitialize; |
inherited; |
end; |
end. |
/VCL_DELPHIX_D6/SXMedia/SXReg.dcr |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/SXMedia/SXReg.pas |
---|
0,0 → 1,53 |
{ |
SXMedia Components - Beta 1 |
-------------------------------- |
Copyright 1999 Dean Ellis |
http://www.sillex.freeserve.co.uk |
This unit is part of the SXMedia Component Set. This code is |
supplied as is with no guarantees and must be used at your own |
risk. |
No modifications to this code must be made without the express |
permission of the author. Please report any problems to |
support@sillex.freeserve.co.uk |
You may use these components to create any freeware/shareware |
applications that you wish. If the components are to be used in |
a commercail product then credit for developement of these components |
should be given. |
Credits : |
Developer : Dean Ellis |
Testers : Dominique Louis |
Ivan Blecic |
} |
unit SXReg; |
{$INCLUDE DelphiXcfg.inc} |
interface |
uses Windows, Classes, SysUtils, SXEditor, SXMovie, SXEngine, SXModPlayer, |
{$IfNDef VER6UP} DsgnIntf {$Else} Designintf, DesignEditors {$EndIf}; |
procedure Register; |
implementation |
{$R SXReg.dcr} |
procedure Register; |
begin |
RegisterPropertyEditor(TypeInfo(TFilename), nil, 'Filename', TFilenameProperty); |
RegisterComponentEditor(TSXMovie,TSXComponentEditor); |
RegisterComponentEditor(TSXEngine,TSXComponentEditor); |
RegisterComponentEditor(TSXModPlayer,TSXComponentEditor); |
RegisterComponents('SX Media',[TSXMovie, TSXEngine, TSXModPlayer]); |
RegisterClass(TScreenRect); |
end; |
end. |
/VCL_DELPHIX_D6/SXMedia/SxSample/MPPSDK.DLL |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/SXMedia/SxSample/SXMedia.dpr |
---|
0,0 → 1,14 |
program SXMedia; |
uses |
Forms, |
main in 'main.pas' {FrmMain}; |
{$R *.RES} |
begin |
Application.Initialize; |
Application.Title := 'SXMedia - Example Project'; |
Application.CreateForm(TFrmMain, FrmMain); |
Application.Run; |
end. |
/VCL_DELPHIX_D6/SXMedia/SxSample/SXMedia.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/SXMedia/SxSample/main.dfm |
---|
0,0 → 1,765 |
object FrmMain: TFrmMain |
Left = 97 |
Top = 154 |
BorderStyle = bsToolWindow |
Caption = 'SX Media - Example Project' |
ClientHeight = 329 |
ClientWidth = 536 |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
Menu = MainMenu1 |
OldCreateOrder = True |
OnKeyDown = DXDraw1KeyDown |
PixelsPerInch = 96 |
TextHeight = 13 |
object DXDraw1: TDXDraw |
Left = 0 |
Top = 0 |
Width = 536 |
Height = 329 |
AutoInitialize = True |
AutoSize = True |
Color = clBtnFace |
Display.BitCount = 16 |
Display.FixedBitCount = True |
Display.FixedRatio = True |
Display.FixedSize = False |
Options = [doAllowReboot, doWaitVBlank, doCenter, doDirectX7Mode, doHardware, doSelectDriver] |
SurfaceHeight = 329 |
SurfaceWidth = 536 |
Align = alClient |
TabOrder = 0 |
end |
object MainMenu1: TMainMenu |
Left = 398 |
Top = 9 |
object FileMnu: TMenuItem |
Caption = '&File' |
object Exit1: TMenuItem |
Caption = 'E&xit' |
OnClick = Exit1Click |
end |
end |
object SXShowMnu: TMenuItem |
Caption = 'SXShow' |
object OpenFileItem: TMenuItem |
Caption = '&Open File' |
OnClick = OpenFileItemClick |
end |
object PlayItem: TMenuItem |
Caption = '&Play' |
OnClick = PlayItemClick |
end |
object StopItm: TMenuItem |
Caption = '&Stop' |
OnClick = PlayItemClick |
end |
end |
object SXEngineMnu: TMenuItem |
Caption = 'SXEngine' |
object StartItem: TMenuItem |
Caption = 'St&art' |
OnClick = StartItemClick |
end |
object StopItem: TMenuItem |
Caption = 'St&op' |
OnClick = StopItemClick |
end |
end |
object SXModPlayerMnu: TMenuItem |
Caption = 'SXModPlayer' |
object OpenFile1: TMenuItem |
Caption = 'O&pen File' |
OnClick = OpenFile1Click |
end |
object Start1: TMenuItem |
Caption = '&Start' |
OnClick = Start1Click |
end |
object Stop1: TMenuItem |
Caption = '&Stop' |
OnClick = Stop1Click |
end |
end |
end |
object OpenDlg: TOpenDialog |
Options = [ofHideReadOnly, ofPathMustExist, ofFileMustExist, ofNoLongNames] |
Title = 'SXMedia Open' |
Left = 364 |
Top = 8 |
end |
object SXModPlayer: TSXModPlayer |
DXSound = DXSound1 |
Options = [BassExpansion, Surround, Reverb, HighQuality, GainControl, NoiseReduction] |
Left = 470 |
Top = 8 |
end |
object SXEngine: TSXEngine |
ThreadPriority = tpIdle |
OnRender = SXEngineRender |
Left = 438 |
Top = 10 |
end |
object SXMovie: TSXMovie |
DXDraw = DXDraw1 |
DXSound = DXSound1 |
DoFlip = True |
DestinationRectangle.Left = 0 |
DestinationRectangle.Right = 200 |
DestinationRectangle.Top = 0 |
DestinationRectangle.Bottom = 200 |
Left = 470 |
Top = 48 |
end |
object DXSound1: TDXSound |
AutoInitialize = True |
Options = [soExclusive] |
Left = 330 |
Top = 12 |
end |
object DXImageList1: TDXImageList |
DXDraw = DXDraw1 |
Items = < |
item |
Name = 'logo_n.bmp' |
PatternHeight = 0 |
PatternWidth = 0 |
Picture.Data = { |
07544269746D61700A520000424D0A520000000000003608000028000000D200 |
00002D0000000100100003000000D44900000000000000000000000100000000 |
0000007C0000E00300001F000000000000000000800000800000008080008000 |
00008000800080800000C0C0C000C0DCC000F0CAA60018081000080000000800 |
0800080808001000080010080800100010001008100010101000180010001808 |
10001808180025001800210818001810100022091D0025102100181818002118 |
1800310427003110290039102D00211821002918210031182900262326003118 |
310039183100352632004A143B006B0B520066255600493A4600653358006E32 |
61006F4364008B176E00892E71008E3375009C3184007E4171008E4279009C39 |
840094468400A5007B00A5107E00A5398400A5398C00A0467F00A0468400A04A |
8800AD007F00AD108400A5428C00A54A9000C1009000B9229400D6009C00F534 |
9500565256005A5A5A00635A5E006363630075566D008452730088567B00A563 |
6B00A55A7300AD637300A5527B008C5A7B0094568400A1568800A0639400AD5A |
8400AD4A8C00AD528C00AD5A8C00AD4A9400AD529400AD5A9400AD529C00AD5A |
9C00E75A7300E75A7B00EF527B00EF5A7B00EF4A8400EC4F89009E7A6100B591 |
5C00B8C232007B71790087878700AF688A00B47B7E00CDAF4000C7CE2F00C0CA |
4500CE906000CB898000C0B65B00C4AB7600BDF70000C1F30400C6EF0800BDF7 |
0800C6F70800BDFF0000BDFF0800C6FF0000C0E41000C1DE1800BDF31000CED6 |
2100C0E91800BDE22100C4E12D00D600A500D608A500DE00A500DE08A500E700 |
A500DE00AD00EB00AD00EF00B500F700B500F708B500F700BD00FF00B500FF08 |
B500FF00BD00FF00C600E221B100F721A500F714B900FF10B100FB10BD00FF08 |
C600FC18C300EC29AF00EF2DB500E241B700F92DC700FF39CE00E246BD00FF46 |
D200A57B9C00AD639C00AD6B9C00AD739C00B55A9C00B5639C00B56B9C00B563 |
A500B56BA500B573A500BD7B9C00BD5AA500BD6BA500BD73A500BD6BAD00D673 |
9C00C66BAD00BD73AD00BD7BAD00C67BAD00D65AB500D663B500CE6BB500CE73 |
B500D66BB500D65ABD00DE52BD00EF52C600FF5AD600FF67DA009C8C9C009C94 |
9C00AD8CA900AD94AD009C9C9C00A59C9C00AD9CA500AD9CAD00B594AD00B59C |
AD00BD849C00C6849C00C68C9C00C6949C00C68CA500C694A500C684AD00C68C |
AD00C67BB500C684B500CE7BA500CE7BB500CE84BD00D68CC600E794CE00FF7B |
DE00FF84DE00FF84E700FF8CE700FF94E700B4B0B200C8B7C100D3CCD000E6B9 |
D600DED6DE00E7D6E700EFD6E700FF9CE700FFA5EF00F7ADE700FFADEF00FFBD |
EF00F7CEEF00FFCEF700DEDEDE00E7DEE700E7E7E700EFDEE700FFD6F700EFDE |
EF00EFE7EF00FBDEF300FFE7FF00EFEFEF00F7EFF700FFEFFF00F7F7F700FFF7 |
FF00FFFFFF00F0FBFF00A4A0A000808080000000FF0000FF000000FFFF00FF00 |
0000FF00FF00FFFF0000FFFFFF00FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FDE7BBD779C739C733967F75EB656734E1042EF3DEF3D |
AE398B2DAE398B2D8B2D8B2DE820E82084108410420800000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
000000000000000000002104420884108614E8204A298B2DAE391042B656B656 |
F75EB656F75E734E744EF75E3967BD777B6F9C739C73BD77DE7BFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FDE7BBD77BD779C739C735B6F9C73F75EB656B6561042AE398B2D4A29 |
4208E82042088410841000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000042088614E8206A298B2DEF3D744E734EB656F75E39677B6F9C73BD77 |
BD77DE7BFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
DE7BDE7B9C739C737B6F7B6FF75EB656744E10428B2DE820E82042088614430C |
240C440C0000240C25100208010002080208030845108614E820E820CC280D31 |
0D314E3550355035503950397139503950397139503971395039713950395039 |
7139503971395039713971395039713950397139713971395039713950397139 |
5039713950397139503971395039503950395039503971395039503971395039 |
5039503971395039713950397139503950395039503971395039503950395039 |
7139503950397139503971395039713950397139503971397139713971397139 |
5039713950397139503971397139503971395039713950395039713950395039 |
71395039503950354E350D310D31CC28E820E82086144514240C020400000000 |
00000000000000000000010002044208430C210484108410E8204A298B2D1042 |
F75EB656F75E39679C73BD77DE7BDE7BFF7FDE7BFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
DE7BDE7BBD773967F75EB656734EAE394A298410430C430C02080208030C0208 |
030C481848188C285034EF3411393445754DB751185A185A185A185A185A185A |
185A185A185A185A185A185A185A185A185A185A185A185A185A185AF859185A |
185A185A185AF755185AF859185AF755F859185AF755F859F755F859F755F859 |
F855F755F859F755F855F755F859F755F855F755F855F755F855F755F755F855 |
F755F755F855F755F755F755F755F755F755F855F755F755F855F755F855F755 |
F855F755F855F755F855F755F859F755F855F859F755F859F855F859F755F859 |
F859F755185AF859185AF755185A185AF755185A185A185A185AF859185A185A |
185A185A185A185A185A185A185A185A185A185A185A185A185A185A185AF859 |
F859B855764D1445B34050342C24481805100104000000000000000000000000 |
00002104430CE8206A291042734EF75E39677B6FBD77BD77DE7BDE7BFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7B |
DE7BFF7F7B6FF75EF75EEF3D6B2DE820430C240C0204030C040805102C245034 |
153C7B54FB587A59B959F859185A185A185A185A185A185A185A185A185A185A |
185A185A185A185A185A185A185A185A185AF859185AF755185AF859F859F755 |
185AF755F859F755F859F755F855F755F855F755F855F755F755F755F855F755 |
F755F755F755F755D755F755F755D755F755D755F755D755F755D755D755F755 |
D755D755F755D755D755F755D755D755F755D755D755F755D755F755D755D755 |
F755D755D755F755D755F755D755F755D755F755F755D755F755F755F755F755 |
F755F755F755F755F855F755F855F755F859F755F859F855F859F755F859185A |
F859185AF755185A185A185AF755185A185A185A185A185A185A185A185A185A |
185A185A185A185A185A185A185A185A185AF8597A59FB587B54354014382C24 |
4818010400000000000000000000420800008614AE39734EB65639673967BD77 |
BD77DE7BDE7BFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7B |
FF7F7B6F3967F75E1042E8204208430C240C020405104818143817441E58BD58 |
FB58B959F859185A185A185A185A185A185A185A185A185A185A185A185A185A |
F859185A185A185AF859185AF755185AF859F755F859185AF755F859F755F855 |
F755F859F755F755F755F855F755F755D755F755D755F755D755F755D755D755 |
D755D755D755D755D755D751D755D755D755D755D755D751D755D755D755D751 |
D755D755D755D651D755D755D751D755D755D751D755D755D751D755D755D755 |
D651D755D755D755D755D755D755D755D755D755D755D751D755D755D755D755 |
D755D755D755D755D755F755D755F755D755F755D755F755F755F755F755F755 |
F855F755F855F755F859F755F859F855F859185AF859185AF755185A185A185A |
F859185A185A185A185A185A185A185A185A185A185A185A185A185A185A185A |
D9597A59BD585E581A50153C2C24261400000000020400000000210486148B2D |
1042F75E39677B6FBD77DE7BFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7BDE7B |
BD779C733967734E4A2900000000000002042C2414381B501F5C5E58FB587A59 |
185A185A185A185A185A185A185A185A185A185A185A185A185A185A185A185A |
185AF859185AF859F859F755F859F755F859F755F755F855F755F755D755F755 |
D755F755D755D755F755D755D755D755D755D755D755D755D755D755D755D751 |
D755D755D651D755B651D751B651B755D755B651B755B751B651B755B651B755 |
B651B755B651B751B651B755B651B751B651B751B751B651B751B751B651B751 |
B651B751B751B651D751B751D651B751B751D751B751D651B751D755B651D751 |
D755D751D755D751D755D755D755D755D755D755D751D755D755D755D755D755 |
D755D755F755D755F755D755F755F755F755F755F855F755F855F755F859F855 |
F859F755185AF8591856185A185A185AF859185A185A185A185A185A185A185A |
185A185A185A185A185A185AB9591B5D7B541E5C1E58153C2C24051000000000 |
01000000420886148B2DB65639677B6F9C73DE7BDE7BFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7BBD77 |
BD773967F75EEF3D84100000000004082C241A4C1E5C1F5C3E5CFB58B959F859 |
185A185A185A185A185A185A185A185A185A185A185A185AF859185AF755185A |
F755F859F755F859F755F855B83A372337233723372337233723372337233723 |
372337233723372337233723B755D755D755D651D755D751D755B651D751B751 |
D751B651B751B751B751B651B83A372337233723161737233723161737233723 |
16173723372316173723372337231617B83A9651B651B651B651B651B651B651 |
B651B751B651B651B651B751B651B651B651B651B651B651B651B651B751B651 |
B751B651B751B651B751B751B651B751B751D651B751D751B651D755D751D755 |
D751D755D755D755D755D751D755D755D755D755D755D755F755D755F755F755 |
F755F755F755F855F755F859F755F859F859F755185AF8591856185A185AF859 |
185A185A185A185A185A185A185A185A185A185A185AF8595B5D5E581E5C1F5C |
1B5414384818000000000104430886148B2D734EB6563967BD77DE7BFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7B |
DE7B5B6F744EAE392204010402042C241A4C1F5C1F5C1E5CBD587A59185A185A |
185A185A185A185A185A185A185A185AF859185A185A185AF755F8591856F859 |
F755F859F755F855F755F755F755F755D72AD703F703F703F703F703F703F703 |
F703F803F703F703F703F703F703D707D751B651B751B751B751B651B751B651 |
B751B651B651B651B651B651B651B6513817F703F703F703F703F703F703F703 |
F703F803F703F703F703F703F703F703D703F703D72A964D9651965196519651 |
965196519651964D9651964D96519651964D9651964D9651B65196519651B64D |
9651B6519651B6519651B651B651B651B651B651B651B751B651B651B751B651 |
B751B751B651B751B751D651B751D755D751D755D755D751D755D755D755D755 |
D755D751D755D755F755D755F755F755F755F755F855F755F859F755F859F755 |
F859185A185A185A185A185AF859185A185A185A185A185A185A185A185A185A |
B959FB581E5C1F5C1E581D5814380510040800000000E8204A291042F75E7B6F |
BD77DE7BFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7B |
BD777C737B6FAE39841001044818153C1E5C1F5C1F5C5E58FB58D959185A185A |
185A185A185A185A185A185A185AF859185AF755185AF859F755F859F755F859 |
F755F755F855F755F755D755F755D755D755D755384ED72AD72AD72A970BF703 |
F703F703F703F703F703970FD72A362EB83A362ED751B651B651B651B651B651 |
B651B6519651B6519651964D96519651964D9651F63D362EB83A362E1617F703 |
F803F703F703F703F703F703F703D703D7071617D72A362EF63D964D964D954D |
964D964D954D964D964D954D9651964D964D954D9651964D9651964D964D9651 |
964D9651964D9651964D9651965196519651964D96519651964DB6519651B651 |
9651B651B651B651B651B651B651B751B651B751B651B751B751B651D751B751 |
D755D651D755D755D755D755D751D755D755D755D755F755D755F755F755F755 |
F855F755F855F755F859F755F859F755185A185A185AF859185A185A185A185A |
185A185A185A185AF8597A599D541F5C1F5C1E581A4C2C240204000002084208 |
8614734EF75E7B6FBD77FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
DE7B7C733967734E430800002C241A4C1F5C1F583F547C39183E3852185A185A |
185A185A185A185A185A185AF859185AF755185AF859F755F859F755F855F755 |
F755F755F755D755D755F755D755D755D755D751D755D755D751D755D751B755 |
D651183E970FF703F703F703F703D72A9651B6519651B651B65196519651B64D |
965196519651964D96519651964D9651964D964D9651964D964D754D964D964D |
9541F703F703F703F703F703F703F703D703D72A7549764D754D764D754D764D |
754D764D754D764D754D764D754D764D754D764D754D964D754D764D954D764D |
764D954D764D964D764D954D964D964D964D954D964D964D9651964D9651954D |
96519651964D96519651964D96519651B64D9651B651B651B651B651B651B651 |
B751B651B751B751B651B751D751D651D755B755D751D755D755D755D751D755 |
D755D755F755F755F755F755F855F755F855F859F755F859F755185A185AF859 |
185A185A185A185AF755185A185A185A185A183E183E7E501F581E5C1D585034 |
040801004308E8208B2D744E39679C73DE7BDE7BFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FBD773967B656AE3900002C241A4C1F5C1F5C7E50392E3723384E185A185A |
185A185A185A185A185AF859185AF755185AF859F755F859F755F855F755F755 |
F755D755F755D755D755D755D755D755D751D755D755D751B755D651B751B751 |
B651B751B651B751B6513723D703F703F703F703D72A964D9651964D96519651 |
964D9651964D964D954D764D964D954D764D964D754D964D754D764D754D954D |
764D9541970BF703F703F703F803F703F703D707F63D7549754D754D754D754D |
754D754D754D7549754D754D754D754D754D754D7549754D754D7549754D754D |
7549754D754D754D754D754D754D754D754D754D764D754D764D754D964D764D |
954D764D964D954D964D964D964D9651954D96519651964D96519651964D9651 |
B6519651B651B651B651B651B651B751B651B751B751B651D751B751D755D651 |
D755D755D751D755D755D755D755F755D755F755F755F755F855F755F859F755 |
F859F755185A185AF859185A185A185A185A185A185A185A1856D72AB91E7C39 |
1F5C1F601E5850340510020486144A29EF3DB6567B6FDE7BDE7BFF7FFF7FFF7F |
FF7FFF7FBD775B6F55564A29051017441F5C1F5CDE48B91ED707B83AF859185A |
185A185A185A185AF859185AF755185AF859F755F855F755F855F755F755F755 |
D755F755D755D755D755D755D755D751D755D751B755D651B751B651B751B651 |
B751B651B651B651B6519651B6519651D72AD703F703F703F703D72A964D964D |
954D764D964D954D764D964D754D964D754D764D754D754D754D754D754D754D |
754D75499541D707D703F803F703F703F703F703770B954175495549554D5549 |
554955495549554955495549554D75495549554955495549554D55495549554D |
55495549754D5549554D7549554D7549554D754D7549754D754D754D754D754D |
7549754D754D754D754D764D754D764D964D754D964D964D954D964D964D9651 |
964D96519651964D96519651964DB6519651B651B651B651B651B751B651B751 |
B651B751D751D755D651B755D751D755D755D755D755D751D755F755F755D755 |
F755F855F755F859F755F859F755185AF859185A185A185A185A185A185A185A |
38527817770B7C351F581F601B502C240510030CE820AE39B65639679C73DE7B |
FF7FFF7FFF7FBE7B5B6F5556124150341F581F5C7E50B91EF80378171856185A |
185A185A185A185AF859F755185AF859F755F859F755F859F755F755F755D755 |
F755D755D755D755D755D755D751D755D751B755D651B751B651B751B651B751 |
B651B651B651B65196519651B64D9651964D9651964DF63DD703F703F703F703 |
1617964D754D964D754D764D754D754D754D754D754D7549754D754D5549754D |
554975495549F63DD707D703F703F703F703F703F703970F7545554955495549 |
5549554955495549554955495549554955493549554955495549554955495549 |
5549554955495549554955495549554955495549554955495549554955495549 |
554D7549554D754D7549754D7549754D754D754D754D754D754D764D754D764D |
954D764D964D954D964D964D9651964D96519651964D96519651B6519651B651 |
B651B651B751B651B751B651B751B651D755D751B755D751D755D755D755D755 |
D755F755D755F755F755F855F755F755F859F755F859185AF755185A185AF755 |
185A185A185A185AD72AD703770B5D391E581F5C153C261404088614AE39744E |
39679C73BD77FF7FFF7FDE7BD85E334135401E581E5C392ED703F703D72A185A |
185A185AF859185A185AF755F859185AF755F859F755F755F755F755D755F755 |
D755D755D755D755D755D751D755D751B755D651B751B651B751B651B751B651 |
B651B651B65196519651964D9651964D9651964D9651954D764D954DF63D970F |
F703F703F703970F9541754D754D7549754D7549754D554D5549554D55495549 |
55495549554D5549F63DD703F703F703F703F703F703D7031617754134453549 |
3445354934453549344534453445344534453445344534453445344534453445 |
3445344534453445354934453549344555493445554935495549554955495549 |
5549554955495549554955495549554D55497549554D754D7549554D754D754D |
7549754D754D764D754D764D754D964D954D764D964D954D9651964D9651964D |
965196519651B651B651B651B651B651B751B651B751B651D751D755B651D755 |
D751D755D755D755D751D755F755D755F755F855F755F855F755F859F755185A |
F859185AF859185A185A185A185AB83AD707F703B91E7E501E581C5448180408 |
E820AE39744EF75E7B6FFF7FDE7B3967EF3417445E587E50590FF703F703D72A |
185A185A185A185A185AF859F755185AF755F859F755F755F755F855F755D755 |
F755D755D755D755D755D751D755D751B755D651B751B651B751B651B751B651 |
B651B6519651964D96519651964D9651964D9651954D764D964D754D964D754D |
764D95413817F703F703F703970B954175455549554D55495549554955495549 |
55495549554955493445362ED703F703F703F703F703F703F703161734453445 |
3445344534453445344534453445144534453445344534453445144534453445 |
3445344514453445344534453445344534453445344534453445344534453445 |
3445354934453549344555495549344555495549554955495549554955497549 |
554D7549554D754D754D7549754D754D764D754D764D754D964D754D964D954D |
9651964D9651964D9651964D9651B651964DB651B651B751B651B751B651B751 |
D651B755D751D755D651D755D755D755D755D755F755D755F755F755F755F859 |
F755F855F755185A185AF755185A185A185A185A584ED703F703D7037C351F5C |
1E5C2C2426148614AE39B656F75EFF7FDE7B4E351A501E583D41D703F703F703 |
D72A185A185A185AF859185AF755185AF755F859F755F755F755F855D755F755 |
D755D755D755D755D751D755D751B755D651B751B651D651B751B651B651B651 |
B6519651964D96519651964D9651964D9651754D964D964D764D954D764D764D |
754D764D754D754D75491617F703F703F703D707F63D55495549554955493445 |
554955493445354934453445362ED703F703F703F703F703F703F703B91E3341 |
1445144534451445144534451445334114451445144514451445144514453341 |
1445144514451445344514451445144514451445144514453445144534451445 |
3445344534453445344534453445344534453549344535493549554935493445 |
55493549554955495549554955495549754D7549754D7549754D764D754D764D |
964D764D964D964D964D964D9651964D9651965196519651B6519651B6519651 |
B651B751B651B751D651B755D751B755D751D755D751D755D755D755F755D755 |
F855F755F755F859F755F859F755185AF859185AF755185A185A584EF703F703 |
F703392E1F581E5C2C242614E8201042F75EFF7FB6561A4C1E5C3D41D703F703 |
F7037817185A185AF755185A185AF755F859F755F859F755F755F855F755D755 |
F755D755D755D755D755D751D755D751B755D651B751B6515341EF340D31EF34 |
0D31EF340D310D31EF340D310D31EF340D310D310D31EF34CD2C0D310D31CD2C |
0D31CD2C0D31CD2C0D3134457549554D362EF703F703F703D703362E55495549 |
3445554934453445344534453445362EF703F703F703F803F703F703F703362E |
134114451139CD2C8C288C28CD2C8C288C28B0341445144514451445D3401445 |
1445D1388C288C28CC288C288C288C2811391445144514451445144514451445 |
14451445144533411445344514453445CD2C8C2833413445EF34CD2CEF34CD2C |
EF34EF34EF34EF34CD2CEF34EF34EF34EF34EF3455491241EF34EF34EF34EF34 |
EF34EF34EF34EF34EF34EF34EF34EF34EF347549965153415035EF3450355341 |
B65150397549B651B651B751B651B751B651D755D6515039503950395241D755 |
F755D755F755F755F855D755F859F755F855F755185AF859185A185AF755185A |
B83AF703F703F703B91E1F5C1C542C24440C6A291042FF7F35491F5CDE48D703 |
F703F703D703584E185AF859185A185AF755185AF755F859F755F755F755F755 |
D755F755D755D755D755D751D755D751B755D651B751D751B651B751E8200000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000240C554955495549F63DD703F703F703D703 |
362E3445344535453445344534451445B91ED703F703F703F703F703F703D703 |
362ED3401445144501040000000000000000000000008C28D340D340D340D340 |
D340D440D34000000000000000000000000000008C28D440D3401445D3401445 |
1445D34014451445144514451445144513414818000000001139D34000000000 |
00000000251046144614461448188614461446144818E8203549CC2800000000 |
00000104461486144614461486140308000000000000E820764D861400000000 |
00000D31964DCC2801045039B651B751B651B751B651D751B755000000000000 |
0000954DD751D755F755D755F755F755D755F859F755F859F755185AF859F755 |
185A185A18567817F703F703F703392E1F5C1A4C0408420810427D771E581F5C |
590FF703F703F7033723185A185A185AF859F755F859F755F859F755F855F755 |
F855D755F755D755D755D755D755D751D755B751D755B651B751B651B651B751 |
E820000000000000000000000000010475499349554953417549534175495341 |
3341EF3400000000000000000000000000000104554955495549344595419707 |
F703F703F7031617344534453445144534451617D703F703F703F703F703F703 |
D703F32DD4401445D340D44400000000000000000000000000004818D444D340 |
D340B340D340B340B34000000000000000000000000000008C28D340D340D340 |
D340D340D340D440D340D4401445D3401445D138240C00000104CD2C14451241 |
000000000000000034453445344534453445344535495549344555495549CC28 |
00000000000046147549554D7549754D754D8C28000000000000E820764D4614 |
000000000000CD2C9651B64DEF340104CC28B651B651B651B751B651B7510000 |
0000000000009349D755D755D755D755D755F855F755F855F859F755F859F755 |
F859185A1856F859185A584EF703F703F703F703DE481E582C2400006A291F6E |
1F5C7C35F803F703F703F703584E1856185AF859F755185AF755F859F755F755 |
F755F755D755F755D755D755D755D751D755D751B651D755B651B751B651B751 |
B651B751E82000000000000000000000000022049651754D964D954D764D754D |
754D754D754D754D481800000000000000000000000001045549554934455549 |
344575411617F703F703F70316175341144533411617F703F703F703F703F703 |
F703D70794311445D340D440D340D34000000000000000000000000000004818 |
D340B340B340B340B340B340D13800000000000000000000000000008C28B340 |
B340D340B340D340D340D340D340D340D340D340CD2C01040000030CD1381445 |
1445D13800000000000000008C28CC288C288C28CC2813413445344555493445 |
55498C2800000000000046145549754D5549754D7549E8200000000000004818 |
964D86140000000000000D31964D9651964D53414208240C440C440C86144614 |
861400000000000000009349D755D751D755F755D755F755D755F755F755F755 |
F855F755185AF859F755185A185A185A970FF703F703F70338171F5C1A500000 |
8410DF641F5C3817D703F703F703D707185A185AF755185AF859F755F859F755 |
F855F755F855D755F755D755D755D755D755D751D755D751B755D651B751B651 |
B651B751B651B651CC28440C430C240C430C240C240C4614954D964D754D764D |
764D754D764D754D554911394510000000000000000000000000020455495549 |
344555493445344535451617D703F703F703770B74351617F703F703F703F703 |
F703F70397077435D340D340D340D340D340D340000000000000000000000000 |
00004818B340B340D138B340B340B340B0340000000000000000000000000000 |
8C28B340B340B340B340B340D340B340D340D340D3408C28000000004614D340 |
1445D34014451139000000000000000025104510251045104510134134453549 |
344555493445CC2800000000000046145549754D5549754D554D8C2800000000 |
0000E820764D4614000000000000CD2C964D9651964DB651954D861400000000 |
CC28B651B75100000000000000009349D755D751D755D755D755F755D755F855 |
F755F859F755F859F755185AF755185AF859185A3723F703F703F803D7037E50 |
1F5C040800005F5C1F5CD703F703F703F7037817185AF859185A185AF755185A |
F755F859F755F755F755F755D755D755D755D755D755D751D755B751D651B755 |
B751B651B751B651B651B65196519651964D9651964D9651964D954D964D754D |
964D754D5241CD2CE820240C0000000000000000000002088614CC2811393445 |
55493445354934453445354934453445362EF703F703F703F703F703F703F703 |
F803F703D703770B5439D340D340D440D340D340D340B3400000000000000000 |
0000000000004818B340B340B340B340D138B340503400000000000000000000 |
000000008C28B340B340B340D138B340B340B340D340D1382614000000008C28 |
D340D3401445D3401445D1380000000000000000144514453445144534451445 |
34453445344535493445CC28000000000000451455495549554955497549E820 |
0000000000004818954D46140000000000000D31954D9651964D96519651B651 |
CC28000000008614954D00000000000000009349D755D751D755D755F755D755 |
F755D755F855F755F859F755F859F755185A185AF859185AD72AF703F703F703 |
F7037C391F5C481800003E5C1F5CF803F703F703F8037817F859185A185AF755 |
F859F755185AF755F859F755F859D755D755F755D755D755D755D751D755B651 |
D755B751B651B751B651B651B751B6519651B651964D96519651964D96517549 |
EF34CC2845100104000000000000000001004514CC28EF343341554955495549 |
554955493445554934453549344534453445344534459535D703F703F703F803 |
F703F703F703F703770B133DD340D340D340D340D340D340B340D34000000000 |
000000000000000000004818B340D138B3405034B3405034D138000000000000 |
00000000000000008C28D138B340B340B340B340B340B340B034020400000104 |
B034D340D3401445D3401445D340D3400000000000000000CC28CD2C8C28CD2C |
CD2CCD2CCD2CCD2CCD2CCD2C3549CC28000000000000240CCC28CC28CC28CC28 |
CC280000000000000000E820764D4614000000000000CD2C964D9651964D9651 |
B651964DB651503901040000020800000000000000009349D755D751D755D755 |
D751F755D755F855F755D755F855F755F8591856F859F755185A185AB83AF703 |
F703F703F7037C351F5C481802085F5C1F5C9707F703F703F703970F185A185A |
185AF755185AF859F755F755F855F755F755D755F755D755D755D755D755D751 |
D755B751D755B651B751D651B751B651B651B751B6519651964D5241CC288614 |
030C00000000000000000000240CE820CD2C3341754D7549554D55495549554D |
5549554955493445554934455549344534453445344534451445F32DB803F703 |
F703F703F703F703F7031617133DD444D3401445D340D444D340D340D340B340 |
00000000000000000000000000004818B340B340D138B340D138B3408C280000 |
0000000000000000000000008C28B340B340D138B340B340B3408C2800000000 |
240CD138D444D340D340D3401445D3401445D340CD2C8C288C28CC288C288C28 |
CC288C28CC288C28CC28CC28CD2CCD2C35491139CD2CCC28CD2CCC28CD2CCC28 |
CD2CCD2CCD2CCD2CCD2CCD2C0D313341954D33410D31CD2C0D3152419651964D |
9651964D9651B6519651B65175490D310D310D31EF340D315035B755D651D755 |
D755D755F755D755F755D755F755F859F755F859F755F859F755185A185AF755 |
D72AF703F803F703F7033D411F5C2614E8207F691F5C392EF803F703F703D703 |
1856185AF859185AF755F859F755F859F755F755F855D755F755D755D755D755 |
D751D755D755D751B651D751B651B755B651B751B6519651EF34440C00000000 |
00000000000000008614CD2C5039554D964D754D754D764D7549754912410D31 |
EF34CD2CEF34CD2CEF34EF3434455549344535493445344534453445362ED703 |
F703F703F703F703F703F703D70394311445D3401445D340D340D340D340D340 |
D340D34000000000000000000000000000004818B340B340B340B340B3404818 |
000000000000000000000000000000008C28B340B340B340D340B34048180000 |
00004818D340D340D340D440D3401445D3401445D34014451445334114451445 |
1445344514453445344534453549344534455549344555493445554955495549 |
5549554D7549554D7549754D754D7549764D954D764D954D764D9651754D964D |
9651964D96519651B64D9651B751B651B651B751B651D755B651D751B755D751 |
D755D755D751D755D755D755F855F755F855F755F755F859F755185AF8591856 |
F859185A3723F703F703F703D7031F581E5C0204AE39BF761F5CDE48D703F803 |
F703F703B83A185A185AF859F755185AF755F859F755F859F755F755D755F755 |
D755D755D755D755D751D755B751D755B651D751B651B651B751B651E8200000 |
0000000000000000000002049651954D764D964D754D754D764D754D764D754D |
8C2800000000000000000000000001045549554934453549554934453445362E |
F703F703F703F803F703F703F703F703F703D703362ED34014451341D444D340 |
1445D340D444D34000000000000000000000000000004818D444D340B340D138 |
26140000000000000000000000000000000000008C28B340D340B340D138240C |
000000008C28D340D444D3401445D3401445D444134114451445144514451445 |
1445344514453445344534453445344534453549554934455549554955495549 |
5549554D5549754D5549754D7549754D754D764D754D764D954D764D954D964D |
9651964D9651964D9651B64D9651B6519651B651B751B651B751B651D755B751 |
D755D651D755D751D755F755D755F755F755D755F755F755F859F755F859185A |
F755185AF8593852D707F703F703F803392E1F58153CE820534EFF7FBE601F5C |
392EF803F703F7037817185AF755185A185AF755F8591856F755F755F755F755 |
F855D755F755D755D755D755D751D755D755B651D751B755B651B751B651B651 |
E82000000000000000000000000000005241964D954D9651954D764D954D754D |
754D754DE8200000000000000000000000000104554955495549554934453549 |
362EF703F703F703F703F703F703D803362ED707F703F703D703362E13411445 |
13411445D3401445D340144500000000000000000000000000004818D340D340 |
B0340208000001048C2800000000000000000000000000008C28D340D440CD2C |
020400000208B034D3401445D3401445D3401445144513411445144514451445 |
1445344514453445344534453445344534453549554934455549344555495549 |
554955495549754D5549754D5549754D754D754D764D754D964D754D964D754D |
9651964D9651964D9651964DB6519651B751B651B651B751B651B751B651D751 |
B755D651D755D751D755D755D755D755F855F755D755F755F859F755F859F755 |
185AF755185A185A185AB83AF703F703F70397073F541F5C8C28F44DB656FF7F |
FF761F5C1F583817D703F703F703B83A185A185AF859F755185AF755F859F755 |
F859F755F755F755D755F755D755D755D755D751D755D751D755B651D751B651 |
B751B651CC2800000000000000000000000000000000240C4510451045104510 |
4510451445104510010400000000000000000000000001045549554955495549 |
55491617D703F703F703F803F703F703D703F32D35497541770BF703F703F703 |
161713411445144514451445134114450000000000000000000000000000240C |
4818461400000000240CD340D3400000000000000000000000000000240C4818 |
4614000000004510D34013411445144513411445144514451445144514451445 |
3445344534453445344534453445344535495549344555493445554955495549 |
5549554D5549754D5549754D5549754D754D7549764D754D964D754D964D754D |
964D9651954D9651964D9651964DB6519651B651B651B651B751B651B751B651 |
D755B651D755D751D755D755D751D755F755D755F755D755F755F859F755F855 |
F859F755185A185AF755185A3852D707F703F703D703DE481E5C343C93493967 |
7C73FF7FFF7F1F6E1F5C3F543817D703F803D707584E185A185AF859185AF755 |
F859185AF755F855F755F859F755D755F855D755D755D755D751D755D755D751 |
B651D755B751B6519349E8204510451045144510451045144510451045104514 |
45104510451045104510451045104510451045104510451045104614754D7549 |
554975491617F703F703F703F703F703F703D707953555493445344555451617 |
F703F703F703770B534133413445144514451445CD2C25102510440C2510240C |
2510240C2510440C25108C281341144513418C282510440C2510440C2510440C |
2510240C251045108C2814451445144514451445144514453445144534453445 |
3445344534453445344534453549344555493445554934455549554955495549 |
55495549754D5549754D5549754D7549754D754D764D754D964D754D964D754D |
964D9651964D9651964D9651964DB6519651B651B651B751B651B751B651B751 |
D651B755D751D755D751D755D751D755D755F755D755F755F755F855F755F859 |
F755F859185AF755185AF859185A18563723F703F703D7033D411E581A4C7549 |
D85E5B6FDE7BFF7FFF7FFF7F9F691F5C1F58B91EF703F703970F3856185A185A |
185AF755185AF755F859F755F859F755F755F755F755D755F755D755D755D755 |
D755D751D755D751B651D755B651B751B651B651B751B651B6519651B751964D |
B651964D9651964D9651964D954D964D754D964D754D764D754D754D764D754D |
754D554975493817F703F703F703F703F703F703D70795355549554934455549 |
344555491617F703F703F7039707953534453445344534453445144534451445 |
3445144514453445144514451445144514451445144514451445144514451445 |
1445144514453445144534451445344534453445144534453445344534453445 |
344534453549344534453549344555493445554955495549554955495549554D |
5549754D5549754D5549754D7549754D764D754D764D754D964D754D964D754D |
964D9651954D9651964D9651964DB6519651B651B751B651B751B651B651B751 |
D651B755D751B755D651D755D755D755D755F755D755F755F755F755F859F755 |
F855185AF755185AF755185A185A185A185AD72AF703F7039707DE481E5C1A50 |
0D31D85E9D77BE7BDE7BFF7FFF7FFF7FFF7FFF6D1F5C1F5C7C35D703F703970F |
3852185A185A185A185A185AF755185AF755F859F755F859F755F755F755D755 |
F755D755D755D755D751D755D755D751B755D651B751D755B651B751B651B651 |
B651B65196519651B64D9651964D9651964D964D9651954D764D954D764D754D |
964D754D954D9541970FD703F703F803F703F703F703970B9541554955495549 |
55495549554955495549362EF703F703F703D703362E34453445344534453445 |
3549344534453445344534453445344534453445344534453445344534453445 |
3445344534453445344534453445344534453445344534453549344534453549 |
344555493445554934455549554955495549554955495549554D5549554D7549 |
5549754D5549754D7549754D754D754D754D764D954D764D954D764D954D9651 |
964D9651964D9651964D9651B64D9651B6519651B651B651B751B651B751B651 |
D751B755D651D755D751D755D751D755D755F755D755F755D755F755F855F755 |
F859F755185AF859F755185AF859185A185A185AD72AF703F703B91E3F541F5C |
1A4C0D315B6FBD77DF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F9F763E5C1F5C7E50 |
B91EF703970B584E185A185A185AF755185A185AF755185AF755F859F755F859 |
F755F755F755D755D755F755D755D755D755D751D755D751D755B651B751D651 |
B755B651B751B651B651B751B6519651B6519651964D9651964D9651964D9651 |
954D964D954D764D9541970BF703F703F703F703F703F703970F95417549554D |
75495549554D5549554955495549554D362ED703F703F703D703B91E34455549 |
5549554934455549344555493445354934455549344535493445354934453445 |
3549344555493445354934455549344535493445554934455549554934455549 |
55495549554955495549554955495549554955495549554D75495549754D5549 |
754D7549754D764D754D754D764D754D964D754D964D754D964D9651954D964D |
9651964D9651964D9651964DB6519651B651B651B751B651B751B651B751D651 |
B751D755B651D755D751D755D755D755D755F755D755F755F755F755F859F755 |
F859F755185AF755185AF755185A185A185A185A18563723F80397077C391F5C |
1F601438AE39BD77FF7FDE7BFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F7E77 |
DF641F5C1F5C3D413817D703B83A185A185A185A185AF859185AF755185AF755 |
F859F755F755F859F755F855F755F755D755F755D755D755D755D755D751D755 |
D751D755B651B751D651B755B651B751B651B651B651B751B65196519651B64D |
9651964D9651964D9651F63DD707F703F703F703F703F703D703970F9541754D |
764D754D754D754D754D7549754D7549554D75495549F63DD707F703F703F703 |
1617754555495549554955495549554955495549554955495549554955495549 |
5549554955495549554955495549554955495549554955495549554955495549 |
5549554D554955495549754D55495549754D5549754D7549754D754D7549754D |
764D754D754D764D754D754D964D754D964D764D954D964D9651964D9651964D |
9651964D9651964DB6519651B651B751B651B651B751B651B751B651B751D651 |
B755D651D755D751D755D755D755D755F755D755F755D755F755F855F755F859 |
F755F859F755185AF755185AF859185A185A185A185A584E970FB803392E1F58 |
1F5C1D588C28B656FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7F7F725F5C1F5C1F5C3D41381738175852185A185A185A185AF859 |
185AF8591856185AF859F755F859F755F755F859F755F755F755D755D755F755 |
D755D755D755D751D755D751D755B651D751B651B751B651B751B651B651B751 |
B651B6519651B7519651964DF63DD703F703F703F803F703F703F70378177549 |
964D954D764D954D764D754D954D764D754D754D754D754D764D754D9541770B |
F703F703F703770B95417549754D5549754D5549754D55495549754D55495549 |
754D55495549754D5549554D75495549554D75495549754D55497549554D7549 |
754D7549554D7549754D7549754D754D7549754D764D754D754D754D764D754D |
754D764D954D764D954D764D954D964D9651954D9651964D9651964D9651964D |
9651964DB6519651B651B651B651B751B651B651B751B651B751D651B755D651 |
D755D751D755D751D755D755D755D755F755D755F755F855F755F755F859F755 |
F859F755185AF755185AF859185A185A185A185AF859185AD72A970F392E1F58 |
1F5C1F5C1438EF3DBD77FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FDF7F1F6E3E5C1F5C1F5CDE48392ED72A1856185A |
185A185A185A185AF859185AF755185A185AF755F859F755F859F755F755F855 |
F755F755D755F755D755D755D755D755D755D751D755D751D755B751D651B755 |
B651B751D651B751B651B651B651B83AD703D703F703F703F703F703F7033817 |
B64D9651964D9651964D9651954D964D9651764D954D764D954D764D754D964D |
754D964D970FD703F703F703D707F63D7549754D764D7549754D764D754D754D |
764D754D754D754D754D754D754D7549754D754D754D764D754D754D754D754D |
754D764D754D754D754D764D754D754D764D754D754D964D754D964D754D964D |
754D964D964D9651954D9651964D9651964D9651964D9651964DB6519651B651 |
9651B651B651B651B651B751B651B751B651B751B651D751B755D651D755D751 |
D755D751D755D755D755D755F755D755F755F755F755F755F859F755F859F755 |
185AF755185AF8591856F859185A185A185A185A185A185AB83AB91E7C391F58 |
1F5C1E5C153C71397B6FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FBF7F3F725F5C1F5C1F5C3F54 |
3D41DA4D1856185A185A185A185A185A185AF859185AF755185AF755185AF755 |
185AF755F859F755F855F755F755F755D755D755F755D755D755D755D755D751 |
D755D751D755D651B755B651B651B755D72AD703F703F703F703F703F803F703 |
1617B651B651964DB6519651964D9651964D9651964D9651964D9651964D9651 |
964D9651954D964D964D970FD703F703F703D703D72A754D9651754D964D754D |
964D754D764D954D764D754D964D754D764D954D764D754D964D754D964D754D |
964D754D964D754D964D954D764D954D964D9651964D954D9651964D9651964D |
964D9651964D9651964D9651964D9651964DB6519651B651B6519651B651B651 |
B651B651B751B651B751B651B751B651D755B651D755D651D755D751D755D751 |
D755D755D755D755D755F755D755F755F755F755F855F755F859F755185AF755 |
185AF755185AF859185A185A185A185A185A185A185A185AF9517C399D541F58 |
1F5C1E58343C52417B6FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FBF76 |
1F651F5C1F5C1F5C3E5CFB58F859185A185A185A185A185A185A185AF859185A |
F859185AF755185AF755F859F755F859F755F859F755F755F855F755D755F755 |
D755D755D755F755D755D755D751F74DB83A970FD703F703F803F703F703F703 |
F703F703D72AB651B751B6519651B651B651B751B651B6519651B651B6519651 |
9651B64D96519651964D9651964D3723D703F703F803F703F703970F362EB64D |
964D964D954D9651964D964D9651964D9651964D964D9651964D9651964D964D |
9651964D964D9651964D9651964D9651964D9651964D9651964D9651964D9651 |
964D9651B6519651B6519651B651B651B651B751B651B651B651B751B651B751 |
B651B751B651B751D651B755D651B751D755D751D755D751D755D751D755D755 |
D755D755F755D755F755F755F755F755F859F755F859F755F859F755185AF859 |
F755185A185AF859185A185A185A185A185A185A185AF8597A595E581E5C1F5C |
1F5C1A50B340334E9C73FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7F9F7F5F72DF641F5C1F5C1F5CBD587A59185A185A185A185A185A |
185A185A185A185AF859185AF859185AF755185AF755185AF755185AF755F755 |
F859F755F755F755F755F755183ED707D703F703F703F703F703F703F703F703 |
F803F703F703F703F703D703D707D7077817B651B751B651B751B651B651B751 |
B651B651B651B651B651970FD707D707D703F703F703F703F703F703F703F703 |
F703F703D703D707D72A964D96519651B64D96519651B64D96519651B651964D |
9651B6519651964DB6519651B6519651B64D9651B651B651B6519651B651B651 |
B651B751B651B651B651B751B651B651B751B651B651B751B651B751D651B751 |
D755B651D751D755D751D755D751D755D751D755D755D755D755D755F755D755 |
F755F755F755F755F755F855F755F859F755F859F755185AF755185AF859185A |
F755185A185A185A185A185A185A185A185A185A185AB959FB583E5C1E5C1F5C |
1B50343C9349F75EFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F9F7F5F721F653E5C1F5C3E5CBD589A59 |
F859185A185A185A185A185A185A185A185A185A185AF859185AF755185AF859 |
F755185AF859F755185AF755F859F755B83AF703F703F703F703F703F703F703 |
F703F703F703F703F803F703F703F703F703F703970FD751D755D751D751D651 |
B755D751B651B751D755B651B751D707F703F703F703F703F703F703F703F703 |
F703F703F703F703F703F703D72AB651B651B651B751B651B651B651B751B651 |
B651B651B651B751B651B651B751B651B651B751B651B751B651B751B651B651 |
B751B651B751B651B751D651B755B651D751D755B651D751D755D751D755D751 |
D755D755D755D755D755D755D755D755D755D755F755D755F755F755F755F755 |
F859F755F859F755F859F755F859F755185AF755185AF8591856185AF859185A |
185A185A185A185A185A185A185A185A185A185AB9591B5D5E581E5C1F5C1A4C |
343C9349F75EDE7BFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDF7FFF76FF6D |
1F651F5C3E5CBD585B5DF859185AF859185A185A185A185A185A185A185A185A |
185A185AF859185AF755185AF859F755185AF7551856174E3852384E174E3852 |
174E384E174E384E174E174E174E174E174E174E174E174E174ED755D755D755 |
D755D755D755D751D755D755D751D755D755F74D174E174EF74D174EF74D174E |
F74D174EF74DF74D174EF74DF74DF74DF74DB651D751B751D651B755D651B751 |
D751B651D755B751D751B651D751B755D751B651D755D751D755B651D751D755 |
D651D751D755D751D755D751D755D755D751D755D755D751D755D755D755D755 |
D755D755D755F755D755F755D755F755F755F755F859F755F755F859F755F859 |
F755F855F755185AF755185AF859F755185A185AF859185AF859185A185A185A |
185AF755185A185A185A185A185A185AF8597A5DFB583E5C1E5C1A4C343C3445 |
534E3967FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FDF7F3F7B5F727F69BE605F5CFB585B5DB9591856185A185A185A |
185A185A185A185A185A185A185A185A185A185AF859185AF859185AF755185A |
F755185AF755185AF755F859F755185AF755F755F859F755F755F855F755F755 |
F755D755F755F755F755D755F755D755F755D755F755D755D755D755D755D755 |
D755D755D755D755D755D755D755D751D755D755D755D755D751D755D755D755 |
D751D755D755D755D751D755D755D755D755D751D755D755D755D751D755D755 |
D755D755D755D755D755D755D755D755D755F755D755D755F755D755F755F755 |
F755F755F755F755F755F855F755F755F755F859F755F855F755185AF755185A |
F755185AF755185AF859185AF8591856F859185A185A185A185A185A185A185A |
185A185A185A185A185A185AF8597A59FB585E581A50153CD444754975523967 |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDF7F3F7BBE72FF6D7F695D61 |
FB587A599A59F859185A185A185A185A185A185A185A185A185A185A185A185A |
185A185A185AF859185AF859185AF755185AF859F755185AF859F755185AF755 |
F859F755185AF755F859F755F859F755F755F859F755F755F755F855F755F755 |
F855F755F755F755F755D755F755D755F755D755F755D755F755D755F755D755 |
F755D755F755D755F755D755F755D755F755D755F755D755F755D755F755D755 |
F755000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000} |
SystemMemory = False |
Transparent = True |
TransparentColor = clBlack |
end> |
Left = 424 |
Top = 42 |
end |
end |
/VCL_DELPHIX_D6/SXMedia/SxSample/main.pas |
---|
0,0 → 1,211 |
{ |
SXMedia Components - Beta 1 |
-------------------------------- |
Copyright 1999 Dean Ellis |
http://www.sillex.freeserve.co.uk |
This unit is part of the SXMedia Component Set. This code is |
supplied as is with no guarantees and must be used at your own |
risk. |
No modifications to this code must be made without the express |
permission of the author. Please report any problems to |
support@sillex.freeserve.co.uk |
You may use these components to create any freeware/shareware |
applications that you wish. If the components are to be used in |
a commercail product then credit for developement of these components |
should be given. |
Credits : |
Developer : Dean Ellis |
} |
unit main; |
interface |
uses |
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, |
SXMovie, SXModPlayer, SXEngine, Menus, DXSounds, DXDraws, MMSystem, DIB; |
type |
TFrmMain = class(TForm) |
MainMenu1: TMainMenu; |
FileMnu: TMenuItem; |
SXShowMnu: TMenuItem; |
SXEngineMnu: TMenuItem; |
SXModPlayerMnu: TMenuItem; |
Exit1: TMenuItem; |
OpenFileItem: TMenuItem; |
PlayItem: TMenuItem; |
StopItm: TMenuItem; |
StartItem: TMenuItem; |
StopItem: TMenuItem; |
OpenFile1: TMenuItem; |
Start1: TMenuItem; |
Stop1: TMenuItem; |
OpenDlg: TOpenDialog; |
SXModPlayer: TSXModPlayer; |
SXEngine: TSXEngine; |
SXMovie: TSXMovie; |
DXSound1: TDXSound; |
DXDraw1: TDXDraw; |
DXImageList1: TDXImageList; |
procedure Exit1Click(Sender: TObject); |
procedure DXDraw1Finalize(Sender: TObject); |
procedure OpenFileItemClick(Sender: TObject); |
procedure OpenFile1Click(Sender: TObject); |
procedure PlayItemClick(Sender: TObject); |
procedure Start1Click(Sender: TObject); |
procedure Stop1Click(Sender: TObject); |
procedure DXSound1Initialize(Sender: TObject); |
procedure SXEngineRender(Sender: TObject); |
procedure StartItemClick(Sender: TObject); |
procedure StopItemClick(Sender: TObject); |
procedure DXDraw1KeyDown(Sender: TObject; var Key: Word; |
Shift: TShiftState); |
private |
{ Private declarations } |
public |
{ Public declarations } |
end; |
var |
FrmMain: TFrmMain; |
implementation |
{$R *.DFM} |
procedure FreeObj(var Obj); |
begin |
if TObject(Obj) <> nil then |
begin |
TObject(Obj).Free; |
TObject(Obj) := nil; |
end; |
end; |
procedure ClearSurfaces; |
begin |
FrmMain.DXDraw1.Surface.Fill(clBlack); |
FrmMain.DXDraw1.Primary.Fill(clBlack); |
end; |
procedure TFrmMain.Exit1Click(Sender: TObject); |
begin |
if SXMovie.Playing then SXMovie.Stop; |
Close; |
end; |
procedure TFrmMain.DXDraw1Finalize(Sender: TObject); |
begin |
if SXEngine.Enabled then SXEngine.Enabled := False; |
end; |
procedure TFrmMain.OpenFileItemClick(Sender: TObject); |
begin |
OpenDlg.Filter := 'All Media Files|*.avi;*.mpg;*.mov|' + |
'AVI (*.avi)|*.avi|MPG (*.mpg)|*.mpg|MOV (*.mov)|*.mov'; |
if OpenDlg.Execute then |
begin |
SXMovie.Filename := OpenDlg.FileName; |
end; |
end; |
procedure TFrmMain.OpenFile1Click(Sender: TObject); |
begin |
OpenDlg.Filter := 'All Media Files|*.mod;*.it;*.s3m;*.xm|' + |
'Mod (*.mod)|*.mod|Impulse Tracker (*.it)|*.it|Scream Tracker (*.s3m)|*.s3m|Fast Tracker (*.xm)|*.xm'; |
if OpenDlg.Execute then |
begin |
SXModPlayer.Filename := OpenDlg.FileName; |
DXSound1Initialize(Sender); |
SXModPlayer.Initialize(nil); |
end; |
end; |
procedure TFrmMain.PlayItemClick(Sender: TObject); |
begin |
if not SXMovie.Playing then |
begin |
if DXDraw1.CanDraw then |
ClearSurfaces; |
SXMovie.DisplayRect(80,60, 400, 300); |
SXMovie.Play |
end |
else |
SXMovie.Stop; |
end; |
procedure TFrmMain.Start1Click(Sender: TObject); |
begin |
SXModPlayer.Play(True); |
end; |
procedure TFrmMain.Stop1Click(Sender: TObject); |
begin |
SXModPlayer.Stop; |
end; |
procedure TFrmMain.DXSound1Initialize(Sender: TObject); |
var fmt:TWaveFormatEx; |
begin |
with Fmt do |
begin |
wFormatTag := WAVE_FORMAT_PCM; |
nSamplesPerSec := 44100; |
nChannels := 2; |
wBitsPerSample := 16; |
nBlockAlign := wBitsPerSample div 8 * nChannels; |
nAvgBytesPerSec := nSamplesPerSec * nBlockAlign; |
end; |
// must be in exclusive to set the format |
DXSound1.Options := DXSound1.Options + [soExclusive]; |
DXSound1.Primary.SetFormat(Fmt); |
end; |
procedure TFrmMain.SXEngineRender(Sender: TObject); |
var Angle: Integer; |
begin |
Angle := 0; |
if DXDraw1.CanDraw then |
begin |
DXDraw1.Surface.Fill(clBlack); |
with DXImageList1.Items[0] do |
DrawWaveX(DXDraw1.Surface,160,50,Width,Height, 0, 5, 80, Angle*4); |
with DXDraw1.Surface.Canvas do |
begin |
try |
Brush.Style := bsClear; |
Font.Color := clWhite; |
Font.Size := 8; |
Textout(5, 5, 'Frames Per Sec : ' + IntToStr(SXEngine.FramesPerSecond)); |
finally |
Release; |
end; |
end; |
DXDraw1.Flip; |
Inc(Angle); |
end; |
end; |
procedure TFrmMain.StartItemClick(Sender: TObject); |
begin |
if DXDraw1.CanDraw then ClearSurfaces; |
SXEngine.Enabled := True; |
end; |
procedure TFrmMain.StopItemClick(Sender: TObject); |
begin |
SXEngine.Enabled := False; |
end; |
procedure TFrmMain.DXDraw1KeyDown(Sender: TObject; var Key: Word; |
Shift: TShiftState); |
begin |
if Key = VK_ESCAPE then Close; |
end; |
end. |