home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1997 May / VPR9705A.ISO / VPR_DATA / PROGRAM / CBTRIAL / SETUP / DATA.Z / MPLAYER.HPP < prev    next >
C/C++ Source or Header  |  1997-02-14  |  11KB  |  280 lines

  1. //----------------------------------------------------------------------------
  2. // MPlayer.hpp - bcbdcc32 generated hdr (DO NOT EDIT) rev: 0
  3. // From: MPlayer.pas
  4. //----------------------------------------------------------------------------
  5. #ifndef MPlayerHPP
  6. #define MPlayerHPP
  7. //----------------------------------------------------------------------------
  8. #include <Menus.hpp>
  9. #include <SysUtils.hpp>
  10. #include <Dialogs.hpp>
  11. #include <MMSystem.hpp>
  12. #include <Messages.hpp>
  13. #include <Graphics.hpp>
  14. #include <Forms.hpp>
  15. #include <Controls.hpp>
  16. #include <Classes.hpp>
  17. #include <Windows.hpp>
  18. #include <System.hpp>
  19. #pragma warn -par
  20. #pragma warn -hid 
  21. #pragma warn -inl
  22.  
  23. namespace Mplayer
  24. {
  25. //-- type declarations -------------------------------------------------------
  26. enum TMPBtnType { btPlay, btPause, btStop, btNext, btPrev, btStep, btBack, btRecord, btEject };
  27.  
  28. typedef Set<TMPBtnType, btPlay, btEject>  TButtonSet;
  29.  
  30. enum TMPGlyph { mgEnabled, mgDisabled, mgColored };
  31.  
  32. struct TMPButton
  33. {
  34.     bool Visible;
  35.     bool Enabled;
  36.     bool Colored;
  37.     bool Auto;
  38.     Graphics::TBitmap* Bitmaps[3];
  39. } ;
  40.  
  41. enum TMPDeviceTypes { dtAutoSelect, dtAVIVideo, dtCDAudio, dtDAT, dtDigitalVideo, dtMMMovie, dtOther, 
  42.     dtOverlay, dtScanner, dtSequencer, dtVCR, dtVideodisc, dtWaveAudio };
  43.  
  44. enum TMPTimeFormats { tfMilliseconds, tfHMS, tfMSF, tfFrames, tfSMPTE24, tfSMPTE25, tfSMPTE30, tfSMPTE30Drop, 
  45.     tfBytes, tfSamples, tfTMSF };
  46.  
  47. enum TMPModes { mpNotReady, mpStopped, mpPlaying, mpRecording, mpSeeking, mpPaused, mpOpen };
  48.  
  49. enum TMPNotifyValues { nvSuccessful, nvSuperseded, nvAborted, nvFailure };
  50.  
  51. enum TMPDevCaps { mpCanStep, mpCanEject, mpCanPlay, mpCanRecord, mpUsesWindow };
  52.  
  53. typedef Set<TMPDevCaps, mpCanStep, mpUsesWindow>  TMPDevCapsSet;
  54.  
  55. typedef void __fastcall (__closure *EMPNotify)(System::TObject* Sender, TMPBtnType Button, bool &DoDefault
  56.     );
  57.  
  58. typedef void __fastcall (__closure *EMPPostNotify)(System::TObject* Sender, TMPBtnType Button);
  59.  
  60. class __declspec(delphiclass) EMCIDeviceError;
  61. class __declspec(pascalimplementation) EMCIDeviceError : public Sysutils::Exception
  62. {
  63.     typedef Sysutils::Exception inherited;
  64.     
  65. public:
  66.     /* Exception.Create */ __fastcall EMCIDeviceError(const System::AnsiString Msg) : Sysutils::Exception(
  67.         Msg) { }
  68.     /* Exception.CreateFmt */ __fastcall EMCIDeviceError(const System::AnsiString Msg, const System::TVarRec 
  69.         * Args, const int Args_Size) : Sysutils::Exception(Msg, Args, Args_Size) { }
  70.     /* Exception.CreateRes */ __fastcall EMCIDeviceError(int Ident) : Sysutils::Exception(Ident) { }
  71.     /* Exception.CreateResFmt */ __fastcall EMCIDeviceError(int Ident, const System::TVarRec * Args, const 
  72.         int Args_Size) : Sysutils::Exception(Ident, Args, Args_Size) { }
  73.     /* Exception.CreateHelp */ __fastcall EMCIDeviceError(const System::AnsiString Msg, int AHelpContext
  74.         ) : Sysutils::Exception(Msg, AHelpContext) { }
  75.     /* Exception.CreateFmtHelp */ __fastcall EMCIDeviceError(const System::AnsiString Msg, const System::TVarRec 
  76.         * Args, const int Args_Size, int AHelpContext) : Sysutils::Exception(Msg, Args, Args_Size, AHelpContext
  77.         ) { }
  78.     /* Exception.CreateResHelp */ __fastcall EMCIDeviceError(int Ident, int AHelpContext) : Sysutils::Exception(
  79.         Ident, AHelpContext) { }
  80.     /* Exception.CreateResFmtHelp */ __fastcall EMCIDeviceError(int Ident, const System::TVarRec * Args
  81.         , const int Args_Size, int AHelpContext) : Sysutils::Exception(Ident, Args, Args_Size, AHelpContext
  82.         ) { }
  83.     
  84. public:
  85.     /* TObject.Destroy */ __fastcall virtual ~EMCIDeviceError(void) { }
  86.     
  87. };
  88.  
  89. class __declspec(delphiclass) TMediaPlayer;
  90. class __declspec(pascalimplementation) TMediaPlayer : public Controls::TCustomControl
  91. {
  92.     typedef Controls::TCustomControl inherited;
  93.     
  94. private:
  95.     TMPButton Buttons[9];
  96.     TButtonSet FVisibleButtons;
  97.     TButtonSet FEnabledButtons;
  98.     TButtonSet FColoredButtons;
  99.     TButtonSet FAutoButtons;
  100.     bool Pressed;
  101.     bool Down;
  102.     TMPBtnType CurrentButton;
  103.     Windows::TRect CurrentRect;
  104.     int ButtonWidth;
  105.     POINT MinBtnSize;
  106.     EMPNotify FOnClick;
  107.     EMPPostNotify FOnPostClick;
  108.     Classes::TNotifyEvent FOnNotify;
  109.     TMPBtnType FocusedButton;
  110.     bool MCIOpened;
  111.     TMPDevCapsSet FCapabilities;
  112.     bool FCanPlay;
  113.     bool FCanStep;
  114.     bool FCanEject;
  115.     bool FCanRecord;
  116.     bool FHasVideo;
  117.     long FFlags;
  118.     bool FWait;
  119.     bool FNotify;
  120.     bool FUseWait;
  121.     bool FUseNotify;
  122.     bool FUseFrom;
  123.     bool FUseTo;
  124.     Word FDeviceID;
  125.     TMPDeviceTypes FDeviceType;
  126.     long FTo;
  127.     long FFrom;
  128.     long FFrames;
  129.     long FError;
  130.     TMPNotifyValues FNotifyValue;
  131.     Controls::TWinControl* FDisplay;
  132.     int FDWidth;
  133.     int FDHeight;
  134.     System::AnsiString FElementName;
  135.     bool FAutoEnable;
  136.     bool FAutoOpen;
  137.     bool FAutoRewind;
  138.     bool FShareable;
  139.     void __fastcall LoadBitmaps(void);
  140.     void __fastcall DestroyBitmaps(void);
  141.     void __fastcall SetEnabledButtons(TButtonSet Value);
  142.     void __fastcall SetColored(TButtonSet Value);
  143.     HIDESBASE void __fastcall SetVisible(TButtonSet Value);
  144.     void __fastcall SetAutoEnable(bool Value);
  145.     void __fastcall DrawAutoButtons(void);
  146.     HIDESBASE void __fastcall DoMouseDown(int XPos, int YPos);
  147.     HIDESBASE MESSAGE void __fastcall WMLButtonDown(Messages::TWMMouse &Message);
  148.     HIDESBASE MESSAGE void __fastcall WMLButtonDblClk(Messages::TWMMouse &Message);
  149.     HIDESBASE MESSAGE void __fastcall WMMouseMove(Messages::TWMMouse &Message);
  150.     HIDESBASE MESSAGE void __fastcall WMLButtonUp(Messages::TWMMouse &Message);
  151.     HIDESBASE MESSAGE void __fastcall WMSetFocus(Messages::TWMSetFocus &Message);
  152.     HIDESBASE MESSAGE void __fastcall WMKillFocus(Messages::TWMKillFocus &Message);
  153.     MESSAGE void __fastcall WMGetDlgCode(Messages::TWMNoParams &Message);
  154.     HIDESBASE MESSAGE void __fastcall WMSize(Messages::TWMSize &Message);
  155.     virtual void __fastcall KeyDown(Word &Key, Classes::TShiftState Shift);
  156.     int __fastcall VisibleButtonCount(void);
  157.     void __fastcall Adjust(void);
  158.     void __fastcall DoClick(TMPBtnType Button);
  159.     void __fastcall DoPostClick(TMPBtnType Button);
  160.     void __fastcall DrawButton(TMPBtnType Btn, int X);
  161.     void __fastcall CheckIfOpen(void);
  162.     void __fastcall SetPosition(long Value);
  163.     void __fastcall SetDeviceType(TMPDeviceTypes Value);
  164.     void __fastcall SetWait(bool Flag);
  165.     void __fastcall SetNotify(bool Flag);
  166.     void __fastcall SetFrom(long Value);
  167.     void __fastcall SetTo(long Value);
  168.     void __fastcall SetTimeFormat(TMPTimeFormats Value);
  169.     void __fastcall SetDisplay(Controls::TWinControl* Value);
  170.     void __fastcall SetOrigDisplay(void);
  171.     void __fastcall SetDisplayRect(const Windows::TRect &Value);
  172.     Windows::TRect __fastcall GetDisplayRect(void);
  173.     void __fastcall GetDeviceCaps(void);
  174.     long __fastcall GetStart(void);
  175.     long __fastcall GetLength(void);
  176.     TMPModes __fastcall GetMode(void);
  177.     long __fastcall GetTracks(void);
  178.     long __fastcall GetPosition(void);
  179.     System::AnsiString __fastcall GetErrorMessage(void);
  180.     TMPTimeFormats __fastcall GetTimeFormat(void);
  181.     long __fastcall GetTrackLength(int TrackNum);
  182.     long __fastcall GetTrackPosition(int TrackNum);
  183.     
  184. protected:
  185.     virtual void __fastcall Loaded(void);
  186.     virtual void __fastcall AutoButtonSet(TMPBtnType Btn);
  187.     virtual void __fastcall Notification(Classes::TComponent* AComponent, Classes::TOperation Operation
  188.         );
  189.     virtual void __fastcall Paint(void);
  190.     MESSAGE void __fastcall MMNotify(Messages::TMessage &Message);
  191.     HIDESBASE virtual void __fastcall Click(TMPBtnType Button, bool &DoDefault);
  192.     virtual void __fastcall PostClick(TMPBtnType Button);
  193.     virtual void __fastcall DoNotify(void);
  194.     virtual void __fastcall Updated(void);
  195.     
  196. public:
  197.     __fastcall virtual TMediaPlayer(Classes::TComponent* AOwner);
  198.     __fastcall virtual ~TMediaPlayer(void);
  199.     void __fastcall Open(void);
  200.     void __fastcall Close(void);
  201.     void __fastcall Play(void);
  202.     void __fastcall Stop(void);
  203.     void __fastcall Pause(void);
  204.     void __fastcall Step(void);
  205.     void __fastcall Back(void);
  206.     void __fastcall Previous(void);
  207.     void __fastcall Next(void);
  208.     void __fastcall StartRecording(void);
  209.     void __fastcall Eject(void);
  210.     void __fastcall Save(void);
  211.     void __fastcall PauseOnly(void);
  212.     void __fastcall Resume(void);
  213.     void __fastcall Rewind(void);
  214.     __property long TrackLength[int TrackNum] = {read=GetTrackLength};
  215.     __property long TrackPosition[int TrackNum] = {read=GetTrackPosition};
  216.     __property TMPDevCapsSet Capabilities = {read=FCapabilities, nodefault};
  217.     __property long Error = {read=FError, nodefault};
  218.     __property System::AnsiString ErrorMessage = {read=GetErrorMessage, nodefault};
  219.     __property long Start = {read=GetStart, nodefault};
  220.     __property long Length = {read=GetLength, nodefault};
  221.     __property long Tracks = {read=GetTracks, nodefault};
  222.     __property long Frames = {read=FFrames, write=FFrames, nodefault};
  223.     __property TMPModes Mode = {read=GetMode, nodefault};
  224.     __property long Position = {read=GetPosition, write=SetPosition, nodefault};
  225.     __property bool Wait = {read=FWait, write=SetWait, nodefault};
  226.     __property bool Notify = {read=FNotify, write=SetNotify, nodefault};
  227.     __property TMPNotifyValues NotifyValue = {read=FNotifyValue, nodefault};
  228.     __property long StartPos = {read=FFrom, write=SetFrom, nodefault};
  229.     __property long EndPos = {read=FTo, write=SetTo, nodefault};
  230.     __property Word DeviceID = {read=FDeviceID, nodefault};
  231.     __property TMPTimeFormats TimeFormat = {read=GetTimeFormat, write=SetTimeFormat, nodefault};
  232.     __property Windows::TRect DisplayRect = {read=GetDisplayRect, write=SetDisplayRect};
  233.     
  234. __published:
  235.     __property TButtonSet ColoredButtons = {read=FColoredButtons, write=SetColored, default=511};
  236.     __property Enabled ;
  237.     __property TButtonSet EnabledButtons = {read=FEnabledButtons, write=SetEnabledButtons, default=511}
  238.         ;
  239.     __property TButtonSet VisibleButtons = {read=FVisibleButtons, write=SetVisible, default=511};
  240.     __property bool AutoEnable = {read=FAutoEnable, write=SetAutoEnable, default=1};
  241.     __property bool AutoOpen = {read=FAutoOpen, write=FAutoOpen, default=0};
  242.     __property bool AutoRewind = {read=FAutoRewind, write=FAutoRewind, default=1};
  243.     __property TMPDeviceTypes DeviceType = {read=FDeviceType, write=SetDeviceType, default=0};
  244.     __property Controls::TWinControl* Display = {read=FDisplay, write=SetDisplay, nodefault};
  245.     __property System::AnsiString FileName = {read=FElementName, write=FElementName, nodefault};
  246.     __property bool Shareable = {read=FShareable, write=FShareable, default=0};
  247.     __property Visible ;
  248.     __property ParentShowHint ;
  249.     __property ShowHint ;
  250.     __property PopupMenu ;
  251.     __property TabOrder ;
  252.     __property TabStop ;
  253.     __property EMPNotify OnClick = {read=FOnClick, write=FOnClick};
  254.     __property OnEnter ;
  255.     __property OnExit ;
  256.     __property EMPPostNotify OnPostClick = {read=FOnPostClick, write=FOnPostClick};
  257.     __property Classes::TNotifyEvent OnNotify = {read=FOnNotify, write=FOnNotify};
  258. public:
  259.     /* TWinControl.CreateParented */ __fastcall TMediaPlayer(HWND ParentWindow) : Controls::TCustomControl(
  260.         ParentWindow) { }
  261.     
  262. };
  263.  
  264. //-- var, const, procedure ---------------------------------------------------
  265. //-- template instantiations -------------------------------------------------
  266. template class TMPDevCapsSet ;
  267. template class TButtonSet ;
  268.  
  269. }    /* namespace Mplayer */
  270.  
  271. #pragma warn .par
  272. #pragma warn .hid 
  273. #pragma warn .inl
  274.  
  275. #if !defined(NO_IMPLICIT_NAMESPACE_USE)
  276. using namespace Mplayer;
  277. #endif
  278. //-- end unit ----------------------------------------------------------------
  279. #endif    // MPlayer
  280.