home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
sibylft1.zip
/
DOC.DAT
/
DOC
/
SPCC
/
MMEDIA.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1997-04-07
|
24KB
|
558 lines
{╔══════════════════════════════════════════════════════════════════════════╗
║ ║
║ Sibyl Portable Component Classes ║
║ ║
║ Copyright (c) 1995,97 SpeedSoft Germany, All rights reserved. ║
║ ║
╚══════════════════════════════════════════════════════════════════════════╝}
UNIT MMedia;
INTERFACE
{$r MMedia}
{$i StdBmpId.Inc}
{$IFDEF OS2}
USES Os2Def,BseDos,PmWin,PmBitmap;
{$ENDIF}
{$IFDEF Win95}
USES WinDef,WinBase,WinUser,MMSystem;
{$ENDIF}
USES SysUtils,Messages,Classes,Forms,Graphics,StdCtrls,Dialogs,Buttons;
TYPE
{$M+}
TMCIStatus=(mciPaused,mciPlaying,mciRewind,mciStopped,mciRecording,
mciNothing,mciError);
TMCIDeviceMode=(dmNotReady,dmStopped,dmPlaying,dmSeeking,dmRecording,
dmPaused,dmOther,dmUnknown);
TMCINotifyEvents=(mciNotifySuperseded,mciNotifyAborted,mciNotifySuccess,
mciNotifyError,mciNotifyPositionChange,mciNotifyCuePoint);
TChannel=(chLeft,chRight,chBoth);
TTimeFormat=(tfMilliseconds,tfMMTime,tfMSF,tfTMSF,tfFrames,tfHMS,tfHMSF,tfBytes,tfSamples,
tfSMPTE24,tfSMPTE25,tfSMPTE30,tfSP,tfUnknown);
TTimeFormats=SET OF TTimeFormat;
{$M-}
TTimeInfo=RECORD
CASE Format:TTimeFormat OF
tfMilliSeconds:(MilliSeconds:LONGWORD);
tfMMTime:(MMTime:LONGWORD);
tfMSF:(msf_Minutes,msf_Seconds,msf_Frames,msf_Reserved:BYTE);
tfTMSF:(tmsf_Track,tmsf_Minutes,tmsf_Seconds,tmsf_Frames:BYTE);
tfFrames:(Frames:LONGWORD);
tfHMS:(hms_Hours,hms_Minutes,hms_Seconds,hms_reserved:BYTE);
tfHMSF:(hmsf_Hours,hmsf_Minutes,hmsf_Seconds,hmsf_Frames:BYTE);
tfBytes:(Bytes:LONGWORD);
tfSamples:(Samples:LONGWORD);
tfSMPTE24:(SMPTE24:LONGWORD);
tfSMPTE25:(SMPTE25:LONGWORD);
tfSMPTE30:(SMPTE30:LONGWORD);
tfSP:(SongPointer:LONGWORD);
tfUnknown:(Unknown:LONGWORD);
END;
{$M+}
TMCIPositionChanged=PROCEDURE(Sender:TObject;CONST NewPosition:TTimeInfo) OF OBJECT;
TMCICuePointReached=PROCEDURE(Sender:TObject;CONST NewPosition:TTimeInfo;CuePointId:LONGWORD) OF OBJECT;
{$M-}
TCueTypes=(cuOutput,cuInput);
TMCIDevice=CLASS(TComponent)
PRIVATE
FDeviceOpen:BOOLEAN;
FAliasName:PSTRING;
FDeviceName:PSTRING;
FStatus:TMCIStatus;
FNotifyStr:STRING[8];
FNotifyControl:TControl;
FFileLoaded:BOOLEAN;
FFileName:PString;
FFileNameRequired:BOOLEAN;
FLastMCIReturn:STRING;
FTimeFormatsAvailable:TTimeFormats;
FTimeFormat:TTimeFormat;
FDefaultTimeFormat:TTimeFormat;
FPositionAdvise:BOOLEAN;
FPositionAdviseUnits:TTimeInfo;
FCuePointCount:WORD;
FOnPlayingCompleted:TNotifyEvent;
FOnPlayingAborted:TNotifyEvent;
FOnPositionChanged:TMCIPositionChanged;
FOnCuePointReached:TMCICuePointReached;
PRIVATE
PROCEDURE ShowMCIError(Code:LONGWORD);
PROCEDURE SetDeviceName(NewName:STRING);
FUNCTION GetDeviceName:STRING;
PROCEDURE SetAliasName(NewName:STRING);
FUNCTION GetAliasName:STRING;
PROCEDURE SetTimeFormat(NewFormat:TTimeFormat);
FUNCTION TimeInfoStr(TimeInfo:TTimeInfo;SaveTime:TTimeFormat):STRING;
FUNCTION GetMCIStatusNumber(CONST option:STRING):LONGINT;
FUNCTION GetMCIStatusBoolean(CONST option:STRING):BOOLEAN;
FUNCTION GetMCICapBoolean(CONST Option:STRING):BOOLEAN;
FUNCTION GetMCICapLong(CONST Option:STRING):LONGWORD;
FUNCTION GetMCITimeInfo(CONST option:STRING):TTimeInfo;
FUNCTION GetChannels:LONGINT;
FUNCTION GetVolume(Channel:TChannel):LONGINT;
PROCEDURE SetVolume(Channel:TChannel;NewVolume:LONGINT);
FUNCTION GetCurrentTrack:LONGINT;
FUNCTION GetTrackLength(Track:LONGINT):TTimeInfo;
FUNCTION GetNumberOfTracks:LONGINT;
FUNCTION GetMediaPresent:BOOLEAN;
FUNCTION GetDeviceReady:BOOLEAN;
FUNCTION GetPosition:TTimeInfo;
FUNCTION GetMediaLength:TTimeInfo;
FUNCTION GetDeviceMode:TMCIDeviceMode;
FUNCTION GetDeviceId:LONGWORD;
PROCEDURE SetPositionAdvise(NewValue:BOOLEAN);
PROCEDURE SetPositionAdviseUnits(NewUnits:TTimeInfo);
PROCEDURE SetFileName(CONST NewValue:STRING);
FUNCTION GetFileName:STRING;
PROTECTED
PROCEDURE SetupComponent;OVERRIDE;
PROCEDURE HandleMCIError(CONST ErrorStr:STRING);VIRTUAL;
PROCEDURE MCIEvent(Event:TMCINotifyEvents;ulDeviceId,ulNotifyCode,ulUserCode:LONGWORD);VIRTUAL;
PROCEDURE PositionChanged(CONST NewPosition:TTimeInfo);VIRTUAL;
PROCEDURE CuePointReached(CONST CuePoint:TTimeInfo;CuePointId:LONGWORD);VIRTUAL;
PROCEDURE PlayingCompleted;VIRTUAL;
PROCEDURE PlayingAborted;VIRTUAL;
PROTECTED
PROPERTY NotifyControl:TControl read FNotifyControl;
PUBLIC
PROCEDURE GetDefaultFileExt(VAR Ext,Description:STRING);VIRTUAL;
PROCEDURE Load;VIRTUAL;
PROCEDURE Play;VIRTUAL;
PROCEDURE Pause;VIRTUAL;
PROCEDURE Stop;VIRTUAL;
PROCEDURE Resume;VIRTUAL;
PROCEDURE StartRecord;VIRTUAL;
PROCEDURE SeekToStart;VIRTUAL;
PROCEDURE SeekToEnd;VIRTUAL;
PROCEDURE Seek(NewPos:TTimeInfo);VIRTUAL;
PROCEDURE OpenTheDevice;VIRTUAL;
PROCEDURE CloseTheDevice;VIRTUAL;
PROCEDURE NextTrack;VIRTUAL;
PROCEDURE PreviousTrack;VIRTUAL;
DESTRUCTOR Destroy;OVERRIDE;
FUNCTION AddCuePoint(CONST CuePoint:TTimeInfo):LONGWORD;
FUNCTION DeleteCuePoint(CONST CuePoint:TTimeInfo):BOOLEAN;
FUNCTION SendString(CONST s:STRING;usUserParm:WORD):BOOLEAN;VIRTUAL;
FUNCTION WriteSCUResource(Stream:TResourceStream):BOOLEAN;OVERRIDE;
PROCEDURE ReadSCUResource(CONST ResName:TResourceName;VAR Data;DataLen:LONGINT);OVERRIDE;
FUNCTION Cue(CueFor:TCueTypes):BOOLEAN;
PUBLIC
PROPERTY Status:TMCIStatus read FStatus;
PROPERTY Channels:LONGINT read GetChannels;
PROPERTY Volume[Channel:TChannel]:LONGINT read GetVolume write SetVolume;
PROPERTY TimeFormat:TTimeFormat read FTimeFormat write SetTimeFormat;
PROPERTY CurrentTrack:LONGINT read GetCurrentTrack;
PROPERTY TrackLength[Track:LONGINT]:TTimeInfo read GetTrackLength;
PROPERTY NumberOfTracks:LONGINT read GetNumberOfTracks;
PROPERTY MediaPresent:BOOLEAN read GetMediaPresent;
PROPERTY DeviceReady:BOOLEAN read GetDeviceReady;
PROPERTY Position:TTimeInfo read GetPosition write Seek;
PROPERTY MediaLength:TTimeInfo read GetMediaLength;
PROPERTY DeviceMode:TMCIDeviceMode read GetDeviceMode;
PROPERTY DeviceId:LONGWORD read GetDeviceId;
PROPERTY PositionAdviseUnits:TTimeInfo read FPositionAdviseUnits write SetPositionAdviseUnits;
PROPERTY LastMCIReturn:STRING read FLastMCIReturn;
PROPERTY PositionAdvise:BOOLEAN read FPositionAdvise write SetPositionAdvise;
PROPERTY TimeFormatsAvailable:TTimeFormats read FTimeFormatsAvailable;
PROPERTY DefaultTimeFormat:TTimeFormat read FDefaultTimeFormat;
PROPERTY DeviceOpen:BOOLEAN read FDeviceOpen;
PUBLISHED
PROPERTY OnPlayingAborted:TNotifyEvent read FOnPlayingAborted write FOnPlayingAborted;
PROPERTY OnPlayingCompleted:TNotifyEvent read FOnPlayingCompleted write FOnPlayingCompleted;
PROPERTY OnPositionChanged:TMCIPositionChanged read FOnPositionChanged write FOnPositionChanged;
PROPERTY OnCuePointReached:TMCICuePointReached read FOnCuePointReached write FOnCuePointReached;
PROPERTY FileName:STRING read GetFileName write SetFileName;
PROPERTY DeviceName:STRING read GetDeviceName write SetDeviceName;
PROPERTY AliasName:STRING read GetAliasName write SetAliasName;
END;
TVideoDeviceCapabilities=RECORD
CanDistort:BOOLEAN;
CanPlay:BOOLEAN;
CanProcessInternal:BOOLEAN;
CanRecord:BOOLEAN;
CanRecordInsert:BOOLEAN;
CanSetVolume:BOOLEAN;
CanStream:BOOLEAN;
CanStretch:BOOLEAN;
FastPlayRate:LONGWORD;
HasAudio:BOOLEAN;
HasTuner:BOOLEAN;
HorizontalVideoExtent:LONGWORD;
HorizontalImageExtent:LONGWORD;
NormalPlayRate:LONGWORD;
SlowPlayRate:LONGWORD;
VerticalImageExtent:LONGWORD;
VerticalVideoExtent:LONGWORD;
END;
TVideoDevice=CLASS(TMCIDevice)
PRIVATE
FVideoWindow:TControl;
PRIVATE
FUNCTION GetDeviceCapabilities:TVideoDeviceCapabilities;
FUNCTION GetBitsPerSample:LONGINT;
FUNCTION GetImageBitsPerPel:LONGINT;
FUNCTION GetImagePelFormat:STRING;
FUNCTION GetBrightness:LONGINT;
FUNCTION GetContrast:LONGINT;
FUNCTION GetHue:LONGINT;
FUNCTION GetClipBoardDataAvail:BOOLEAN;
FUNCTION GetSaturation:LONGINT;
FUNCTION GetSamplesPerSec:LONGINT;
FUNCTION GetTunerTVChannel:LONGINT;
FUNCTION GetTunerFineTune:LONGINT;
FUNCTION GetTunerFrequency:LONGINT;
FUNCTION GetValidSignal:BOOLEAN;
PROCEDURE SetBrightness(NewValue:LONGINT);
PROCEDURE SetContrast(NewValue:LONGINT);
PROCEDURE SetHue(NewValue:LONGINT);
PROCEDURE SetSaturation(NewValue:LONGINT);
PROCEDURE SetSamplesPerSec(NewValue:LONGINT);
PROCEDURE SetTunerTVChannel(NewValue:LONGINT);
PROCEDURE SetTunerFineTune(NewValue:LONGINT);
PROCEDURE SetTunerFrequency(NewValue:LONGINT);
PRIVATE
PROPERTY DeviceName;
PROTECTED
PROCEDURE SetupComponent;OVERRIDE;
PROCEDURE GetDefaultFileExt(VAR Ext,Description:STRING);OVERRIDE;
PUBLIC
PROCEDURE Seek(NewPos:TTimeInfo);OVERRIDE;
PROCEDURE SeekToStart;OVERRIDE;
PROCEDURE Load;OVERRIDE;
PROPERTY DeviceCapabilities:TVideoDeviceCapabilities read GetDeviceCapabilities;
PROPERTY BitsPerSample:LONGINT read GetBitsPerSample;
PROPERTY ImageBitsPerPel:LONGINT read GetImageBitsPerPel;
PROPERTY ImagePelFormat:STRING read GetImagePelFormat;
PROPERTY Brightness:LONGINT read GetBrightness write SetBrightness;
PROPERTY Contrast:LONGINT read GetContrast write SetContrast;
PROPERTY Hue:LONGINT read GetHue write SetHue;
PROPERTY ClipBoardDataAvail:BOOLEAN read GetClipBoardDataAvail;
PROPERTY Saturation:LONGINT read GetSaturation write SetSaturation;
PROPERTY SamplesPerSec:LONGINT read GetSamplesPerSec write SetSamplesPerSec;
PROPERTY TunerTVChannel:LONGINT read GetTunerTVChannel write SetTunerTVChannel;
PROPERTY TunerFineTune:LONGINT read GetTunerFineTune write SetTunerFineTune;
PROPERTY TunerFrequency:LONGINT read GetTunerFrequency write SetTunerFrequency;
PROPERTY ValidSignal:BOOLEAN read GetValidSignal;
PUBLIC
PROPERTY AliasName;
END;
TAudioDeviceCapabilities=RECORD
CanRecord:BOOLEAN;
CanSave:BOOLEAN;
CanSetVolume:BOOLEAN;
END;
TAudioDevice=CLASS(TMCIDevice)
PRIVATE
FUNCTION GetDeviceCapabilities:TAudioDeviceCapabilities;
FUNCTION GetAlignment:LONGINT;
FUNCTION GetBitsPerSample:LONGINT;
FUNCTION GetBytesPerSec:LONGINT;
FUNCTION GetSamplesPerSec:LONGINT;
PROCEDURE SetBitsPerSample(NewValue:LONGINT);
PROCEDURE SetBytesPerSec(NewValue:LONGINT);
PROCEDURE SetSamplesPerSec(NewValue:LONGINT);
PRIVATE
PROPERTY DeviceName;
PROTECTED
PROCEDURE SetupComponent;OVERRIDE;
PROCEDURE GetDefaultFileExt(VAR Ext,Description:STRING);OVERRIDE;
PUBLIC
PROPERTY DeviceCapabilities:TAudioDeviceCapabilities read GetDeviceCapabilities;
PROPERTY Alignment:LONGINT read GetAlignment;
PROPERTY BitsPerSample:LONGINT read GetBitsPerSample write SetBitsPerSample;
PROPERTY BytesPerSec:LONGINT read GetBytesPerSec write SetBytesPerSec;
PROPERTY SamplesPerSec:LONGINT read GetSamplesPerSec write SetSamplesPerSec;
PUBLIC
PROPERTY AliasName;
END;
TCDMediaTypes=(mtAudio,mtData,mtOther,mtUnknown);
TCDDeviceCapabilities=RECORD
CanEject:BOOLEAN;
CanLockEject:BOOLEAN;
CanPlay:BOOLEAN;
CanProcessInternal:BOOLEAN;
CanSetVolume:BOOLEAN;
CanStream:BOOLEAN;
END;
TCDDevice=CLASS(TMCIDevice)
PRIVATE
FUNCTION GetTrackChannels(Track:LONGINT):LONGINT;
FUNCTION GetTrackPosition(Track:LONGINT):TTimeInfo;
FUNCTION GetPositionInTrack:TTimeInfo;
FUNCTION GetStartPosition:TTimeInfo;
FUNCTION GetMediaType:TCDMediaTypes;
FUNCTION GetTrackType(Track:LONGINT):TCDMediaTypes;
FUNCTION GetDeviceCapabilities:TCDDeviceCapabilities;
PRIVATE
PROPERTY DeviceName;
PROPERTY FileName;
PROTECTED
PROCEDURE SetupComponent;OVERRIDE;
PUBLIC
PROCEDURE OpenDoor;VIRTUAL;
PROCEDURE CloseDoor;VIRTUAL;
PROCEDURE LockDoor;VIRTUAL;
PROCEDURE UnlockDoor;VIRTUAL;
PROCEDURE NextTrack;OVERRIDE;
PROCEDURE PreviousTrack;OVERRIDE;
PUBLIC
PROPERTY TrackChannels[Track:LONGINT]:LONGINT read GetTrackChannels;
PROPERTY TrackPosition[Track:LONGINT]:TTimeInfo read GetTrackPosition;
PROPERTY PositionInTrack:TTimeInfo read GetPositionInTrack;
PROPERTY StartPosition:TTimeInfo read GetStartPosition;
PROPERTY MediaType:TCDMediaTypes read GetMediaType;
PROPERTY TrackType[Track:LONGINT]:TCDMediaTypes read GetTrackType;
PROPERTY DeviceCapabilities:TCDDeviceCapabilities read GetDeviceCapabilities;
PROPERTY AliasName;
END;
TVideoWindow=CLASS(TControl)
PRIVATE
FVideoDevice:TVideoDevice;
hwndFrame:HWND;
ulMovieWidth,ulMovieHeight,ulMovieLength:LONGWORD;
FOnPlayingCompleted:TNotifyEvent;
FOnPlayingAborted:TNotifyEvent;
FOnPositionChanged:TMCIPositionChanged;
FOnCuePointReached:TMCICuePointReached;
PRIVATE
FUNCTION DoesFileExist(pszFileName:STRING):BOOLEAN;
PROCEDURE SetVideoDevice(NewDevice:TVideoDevice);
PROTECTED
PROCEDURE SetupComponent;OVERRIDE;
PROCEDURE PositionChanged(CONST NewPosition:TTimeInfo);VIRTUAL;
PROCEDURE CuePointReached(CONST CuePoint:TTimeInfo;CuePointId:LONGWORD);VIRTUAL;
PROCEDURE PlayingCompleted;VIRTUAL;
PROCEDURE PlayingAborted;VIRTUAL;
PROCEDURE Notification(AComponent:TComponent;Operation:TOperation);OVERRIDE;
PROCEDURE MCIEvent(Event:TMCINotifyEvents;ulDeviceId,ulNotifyCode,ulUserCode:LONGWORD);VIRTUAL;
PUBLIC
PROCEDURE Redraw(CONST rc:TRect);OVERRIDE;
PROPERTY XAlign;
PROPERTY XStretch;
PROPERTY YAlign;
PROPERTY YStretch;
PUBLISHED
PROPERTY Align;
PROPERTY DragCursor;
PROPERTY DragMode;
PROPERTY Enabled;
PROPERTY ParentShowHint;
PROPERTY ShowHint;
PROPERTY VideoDevice:TVideoDevice read FVideoDevice write SetVideoDevice;
PROPERTY Visible;
PROPERTY ZOrder;
PROPERTY OnCanDrag;
PROPERTY OnCuePointReached:TMCICuePointReached read FOnCuePointReached write FOnCuePointReached;
PROPERTY OnDragDrop;
PROPERTY OnDragOver;
PROPERTY OnEndDrag;
PROPERTY OnEnter;
PROPERTY OnExit;
PROPERTY OnMouseClick;
PROPERTY OnMouseDblClick;
PROPERTY OnMouseDown;
PROPERTY OnMouseMove;
PROPERTY OnMouseUp;
PROPERTY OnPlayingAborted:TNotifyEvent read FOnPlayingAborted write FOnPlayingAborted;
PROPERTY OnPlayingCompleted:TNotifyEvent read FOnPlayingCompleted write FOnPlayingCompleted;
PROPERTY OnPositionChanged:TMCIPositionChanged read FOnPositionChanged write FOnPositionChanged;
PROPERTY OnSetupShow;
PROPERTY OnStartDrag;
END;
TVolumeControl=CLASS(TControl)
PRIVATE
FPosition:BYTE;
FTimerEndPos:LONGINT;
FAngleTimer:TTimer;
FHasCapture:BOOLEAN;
FOnPositionChanged:TNotifyEvent;
PROCEDURE DrawSlider;
PROCEDURE DrawBoxes;
PROCEDURE SetPosition(NewPosition:BYTE);
PROCEDURE GetCircleParams(VAR MiddleX,MiddleY,CircleRadius:LONGINT);
FUNCTION InsideCircle(MiddleX,MiddleY,Radius:LONGINT;CONST pt:TPoint;VAR Angle:LONGINT):BOOLEAN;
PROCEDURE EvTimer(Sender:TObject);
PROTECTED
PROCEDURE SetupComponent;OVERRIDE;
PROCEDURE MouseDown(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
PROCEDURE MouseUp(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
PROCEDURE MouseMove(ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
PROCEDURE PositionChanged;VIRTUAL;
PROPERTY Cursor;
PUBLIC
PROCEDURE Redraw(CONST rec:TRect);OVERRIDE;
DESTRUCTOR Destroy;OVERRIDE;
PROPERTY XAlign;
PROPERTY XStretch;
PROPERTY YAlign;
PROPERTY YStretch;
PUBLISHED
PROPERTY Align;
PROPERTY Color;
PROPERTY PenColor;
PROPERTY DragCursor;
PROPERTY DragMode;
PROPERTY Enabled;
PROPERTY ParentColor;
PROPERTY ParentPenColor;
PROPERTY ParentShowHint;
PROPERTY Position:BYTE read FPosition write SetPosition;
PROPERTY ShowHint;
PROPERTY TabOrder;
PROPERTY TabStop;
PROPERTY Visible;
PROPERTY ZOrder;
PROPERTY OnCanDrag;
PROPERTY OnDragDrop;
PROPERTY OnDragOver;
PROPERTY OnEndDrag;
PROPERTY OnEnter;
PROPERTY OnExit;
//PROPERTY OnMouseClick;
//PROPERTY OnMouseDblClick;
//PROPERTY OnMouseDown;
//PROPERTY OnMouseMove;
//PROPERTY OnMouseUp;
PROPERTY OnPositionChanged:TNotifyEvent read FOnPositionChanged write FOnPositionChanged;
//PROPERTY OnScan;
PROPERTY OnSetupShow;
PROPERTY OnStartDrag;
END;
{$M+}
TMediaBtn=(btPlay, btPause, btStop, btNext, btPrev, btRecord, btRewind);
TMediaBtnSet=SET OF TMediaBtn;
TMediaClick=PROCEDURE(Sender:TObject;Button:TMediaBtn) OF OBJECT;
{$M-}
TMediaPlayer=CLASS(TControl)
PRIVATE
FButtons:ARRAY[TMediaBtn] OF TBitBtn;
FPlayButton:TAnimatedButton;
FRecordButton:TAnimatedButton;
FVisibleButtons:TMediaBtnSet;
FEnabledButtons:TMediaBtnSet;
FFileName:PString;
FUseAnimation:BOOLEAN;
FMCIDevice:TMCIDevice;
FOpened:BOOLEAN;
FOnMediaClick:TMediaClick;
FOnPlayingCompleted:TNotifyEvent;
FOnPlayingAborted:TNotifyEvent;
FOnPositionChanged:TMCIPositionChanged;
FOnCuePointReached:TMCICuePointReached;
PROCEDURE SetVisibleButtons(NewState:TMediaBtnSet);
PROCEDURE SetEnabledButtons(NewState:TMediaBtnSet);
FUNCTION GetFileToPlay:STRING;
PROCEDURE SetFileToPlay(NewName:STRING);
PROCEDURE SetMCIDevice(NewDevice:TMCIDevice);
FUNCTION GetButton(Index:TMediaBtn):TBitBtn;
PROCEDURE EvButtonClick(Sender:TObject);
PROTECTED
PROCEDURE SetupComponent;OVERRIDE;
PROCEDURE CreateWnd;OVERRIDE;
PROCEDURE RealignControls;OVERRIDE;
PROCEDURE CommandEvent(VAR Msg:TWMCommand;VAR Command:TCommand);OVERRIDE;
PROCEDURE PositionChanged(CONST NewPosition:TTimeInfo);VIRTUAL;
PROCEDURE CuePointReached(CONST CuePoint:TTimeInfo;CuePointId:LONGWORD);VIRTUAL;
PROCEDURE PlayingAborted;VIRTUAL;
PROCEDURE PlayingCompleted;VIRTUAL;
PROCEDURE Notification(AComponent:TComponent;Operation:TOperation);OVERRIDE;
PROCEDURE MCIEvent(Event:TMCINotifyEvents;ulDeviceId,ulNotifyCode,ulUserCode:LONGWORD);VIRTUAL;
PROPERTY Buttons[Index:TMediaBtn]:TBitBtn read GetButton;
PROPERTY Hint;
PROPERTY Cursor;
PUBLIC
DESTRUCTOR Destroy;OVERRIDE;
PROCEDURE Open;VIRTUAL;
PROCEDURE Play;VIRTUAL;
PROCEDURE StartRecord;VIRTUAL;
PROCEDURE Stop;VIRTUAL;
PROCEDURE Pause;VIRTUAL;
PROCEDURE Close;VIRTUAL;
PROCEDURE Rewind;VIRTUAL;
PROCEDURE NextTrack;VIRTUAL;
PROCEDURE PreviousTrack;VIRTUAL;
PROPERTY FileToPlay:STRING read GetFileToPlay write SetFileToPlay;
PROPERTY XAlign;
PROPERTY XStretch;
PROPERTY YAlign;
PROPERTY YStretch;
PUBLISHED
PROPERTY Align;
PROPERTY DragCursor;
PROPERTY DragMode;
PROPERTY Enabled;
PROPERTY EnabledButtons:TMediaBtnSet read FEnabledButtons write SetEnabledButtons;
PROPERTY MCIDevice:TMCIDevice read FMCIDevice write SetMCIDevice;
PROPERTY ParentShowHint;
PROPERTY ShowHint;
PROPERTY TabOrder;
PROPERTY TabStop;
PROPERTY UseAnimation:BOOLEAN read FUseAnimation write FUseAnimation;
PROPERTY Visible;
PROPERTY VisibleButtons:TMediaBtnSet read FVisibleButtons write SetVisibleButtons;
PROPERTY ZOrder;
PROPERTY OnCanDrag;
PROPERTY OnClick:TMediaClick read FOnMediaClick write FOnMediaClick;
PROPERTY OnCuePointReached:TMCICuePointReached read FOnCuePointReached write FOnCuePointReached;
PROPERTY OnDragDrop;
PROPERTY OnDragOver;
PROPERTY OnEndDrag;
PROPERTY OnEnter;
PROPERTY OnExit;
//PROPERTY OnMouseMove;
PROPERTY OnPlayingAborted:TNotifyEvent read FOnPlayingAborted write FOnPlayingAborted;
PROPERTY OnPlayingCompleted:TNotifyEvent read FOnPlayingCompleted write FOnPlayingCompleted;
PROPERTY OnPositionChanged:TMCIPositionChanged read FOnPositionChanged write FOnPositionChanged;
PROPERTY OnResize;
PROPERTY OnSetupShow;
PROPERTY OnStartDrag;
END;
FUNCTION TimeFormatToString(tf:TTimeFormat):STRING;
FUNCTION DeviceModeToString(dm:TMCIDeviceMode):STRING;
FUNCTION MediaTypeToString(mt:TCDMediaTypes):STRING;
FUNCTION ConvertTimeFormat(VAR Format:TTimeInfo;NewFormat:TTimeFormat):BOOLEAN;
FUNCTION CompareTimeInfos(TimeInfo1,TimeInfo2:TTimeInfo):LONGINT;
FUNCTION TimeInfoToString(CONST TimeInfo:TTimeInfo):STRING;
IMPLEMENTATION