home *** CD-ROM | disk | FTP | other *** search
/ PC World Plus! (NZ) 2001 June / HDC50.iso / Runimage / Delphi50 / Doc / MPLAYER.INT < prev    next >
Text File  |  1999-08-11  |  5KB  |  128 lines

  1.  
  2. {*******************************************************}
  3. {                                                       }
  4. {       Borland Delphi Visual Component Library         }
  5. {                                                       }
  6. {       Copyright (c) 1995,99 Inprise Corporation       }
  7. {                                                       }
  8. {*******************************************************}
  9.  
  10. unit MPlayer;
  11.  
  12. {$R-,T-,H+,X+}
  13.  
  14. interface
  15.  
  16. uses Windows, Classes, Controls, Forms, Graphics, Messages,
  17.   MMSystem, Dialogs, SysUtils;
  18.  
  19. type
  20.   TMPBtnType = (btPlay, btPause, btStop, btNext, btPrev, btStep, btBack,
  21.     btRecord, btEject);
  22.   TButtonSet = set of TMPBtnType;
  23.  
  24.   TMPGlyph = (mgEnabled, mgDisabled, mgColored);
  25.   TMPButton = record
  26.     Visible: Boolean;
  27.     Enabled: Boolean;
  28.     Colored: Boolean;
  29.     Auto: Boolean;
  30.     Bitmaps: array[TMPGlyph] of TBitmap;
  31.   end;
  32.  
  33.   TMPDeviceTypes = (dtAutoSelect, dtAVIVideo, dtCDAudio, dtDAT, dtDigitalVideo, dtMMMovie,
  34.     dtOther, dtOverlay, dtScanner, dtSequencer, dtVCR, dtVideodisc, dtWaveAudio);
  35.   TMPTimeFormats = (tfMilliseconds, tfHMS, tfMSF, tfFrames, tfSMPTE24, tfSMPTE25,
  36.     tfSMPTE30, tfSMPTE30Drop, tfBytes, tfSamples, tfTMSF);
  37.   TMPModes = (mpNotReady, mpStopped, mpPlaying, mpRecording, mpSeeking,
  38.     mpPaused, mpOpen);
  39.   TMPNotifyValues = (nvSuccessful, nvSuperseded, nvAborted, nvFailure);
  40.     
  41.   TMPDevCaps = (mpCanStep, mpCanEject, mpCanPlay, mpCanRecord, mpUsesWindow);
  42.   TMPDevCapsSet = set of TMPDevCaps;
  43.   
  44.   EMPNotify = procedure (Sender: TObject; Button: TMPBtnType;
  45.     var DoDefault: Boolean) of object;
  46.   EMPPostNotify = procedure (Sender: TObject; Button: TMPBtnType) of object;
  47.  
  48.   EMCIDeviceError = class(Exception);
  49.   
  50.   TMediaPlayer = class(TCustomControl)
  51.   protected
  52.     procedure KeyDown(var Key: Word; Shift: TShiftState); override;
  53.     procedure Loaded; override;
  54.     procedure AutoButtonSet(Btn: TMPBtnType); dynamic;
  55.     procedure Notification(AComponent: TComponent; Operation: TOperation); override;
  56.     procedure Paint; override;
  57.     procedure MMNotify(var Message: TMessage); message MM_MCINOTIFY;
  58.     procedure Click(Button: TMPBtnType; var DoDefault: Boolean); reintroduce; dynamic;
  59.     procedure PostClick(Button: TMPBtnType); dynamic;
  60.     procedure DoNotify; dynamic;
  61.     procedure Updated; override;
  62.   public
  63.     constructor Create(AOwner: TComponent); override;
  64.     destructor Destroy; override;
  65.     procedure Open;
  66.     procedure Close;
  67.     procedure Play;
  68.     procedure Stop;
  69.     procedure Pause; {Pause & Resume/Play}
  70.     procedure Step;
  71.     procedure Back;
  72.     procedure Previous;
  73.     procedure Next;
  74.     procedure StartRecording;
  75.     procedure Eject;
  76.     procedure Save;
  77.     procedure PauseOnly;
  78.     procedure Resume;
  79.     procedure Rewind;
  80.     property TrackLength[TrackNum: Integer]: Longint;
  81.     property TrackPosition[TrackNum: Integer]: Longint;
  82.     property Capabilities: TMPDevCapsSet;
  83.     property Error: Longint;
  84.     property ErrorMessage: string;
  85.     property Start: Longint;
  86.     property Length: Longint;
  87.     property Tracks: Longint;
  88.     property Frames: Longint;
  89.     property Mode: TMPModes;
  90.     property Position: Longint;
  91.     property Wait: Boolean;
  92.     property Notify: Boolean;
  93.     property NotifyValue: TMPNotifyValues;
  94.     property StartPos: Longint;
  95.     property EndPos: Longint;
  96.     property DeviceID: Word;
  97.     property TimeFormat: TMPTimeFormats;
  98.     property DisplayRect: TRect;
  99.   published
  100.     property ColoredButtons: TButtonSet default [btPlay, btPause, btStop, btNext, btPrev, btStep, btBack, btRecord, btEject];
  101.     property Enabled;
  102.     property EnabledButtons: TButtonSet default [btPlay, btPause, btStop, btNext, btPrev, btStep, btBack, btRecord, btEject];
  103.     property VisibleButtons: TButtonSet default [btPlay, btPause, btStop, btNext, btPrev, btStep, btBack, btRecord, btEject];
  104.     property Anchors;
  105.     property AutoEnable: Boolean default True;
  106.     property AutoOpen: Boolean default False;
  107.     property AutoRewind: Boolean default True;
  108.     property Constraints;
  109.     property DeviceType: TMPDeviceTypes default dtAutoSelect;
  110.     property Display: TWinControl;
  111.     property FileName: string;
  112.     property Shareable: Boolean default False;
  113.     property Visible;
  114.     property ParentShowHint;
  115.     property ShowHint;
  116.     property PopupMenu;
  117.     property TabOrder;
  118.     property TabStop default True;
  119.     property OnClick: EMPNotify;
  120.     property OnContextPopup;
  121.     property OnEnter;
  122.     property OnExit;
  123.     property OnPostClick: EMPPostNotify;
  124.     property OnNotify: TNotifyEvent;
  125.   end;
  126.  
  127. implementation
  128.