diff options
author | Casimir666 <casimir666@users.sourceforge.net> | 2006-06-25 01:37:43 +0400 |
---|---|---|
committer | Casimir666 <casimir666@users.sourceforge.net> | 2006-06-25 01:37:43 +0400 |
commit | 0868305e78da2b0742c2ce349efa041d5622ae21 (patch) | |
tree | 663fd93132c7927910ba7c13188d6332b2e3e5b2 /src/apps/mplayerc/VMROSD.h | |
parent | 43c8656956a0460fc4551e3ea7a39b9f3094a3e3 (diff) |
git-svn-id: https://mpc-hc.svn.sourceforge.net/svnroot/mpc-hc/trunk@14 10f7b99b-c216-0410-bff0-8a66a9350fd8
Diffstat (limited to 'src/apps/mplayerc/VMROSD.h')
-rw-r--r-- | src/apps/mplayerc/VMROSD.h | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/src/apps/mplayerc/VMROSD.h b/src/apps/mplayerc/VMROSD.h new file mode 100644 index 000000000..20d83c324 --- /dev/null +++ b/src/apps/mplayerc/VMROSD.h @@ -0,0 +1,89 @@ +#pragma once
+
+#include <atlbase.h>
+#include <D3d9.h>
+#include <Vmr9.h>
+
+typedef enum
+{
+ OSD_TRANSPARENT,
+ OSD_BACKGROUND,
+ OSD_BORDER,
+ OSD_TEXT,
+ OSD_BAR,
+ OSD_CURSOR,
+ OSD_LAST
+} OSD_COLORS;
+
+typedef enum
+{
+ OSD_NOMESSAGE,
+ OSD_TOPLEFT,
+ OSD_TOPRIGHT,
+} OSD_MESSAGEPOS;
+
+
+class CVMROSD
+{
+public:
+ CVMROSD(void);
+ ~CVMROSD(void);
+
+ void Start (CWnd* pWnd, CComQIPtr<IVMRMixerBitmap9> pVMB);
+ void Stop();
+
+ void DisplayMessage (OSD_MESSAGEPOS nPos, LPCTSTR strMsg, int nDuration = 5000);
+ void ClearMessage();
+
+ __int64 GetPos();
+ void SetPos(__int64 pos);
+ void SetRange(__int64 start, __int64 stop);
+ void GetRange(__int64& start, __int64& stop);
+
+ void OnSize(UINT nType, int cx, int cy);
+ bool OnMouseMove(UINT nFlags, CPoint point);
+ bool OnLButtonDown(UINT nFlags, CPoint point);
+ bool OnLButtonUp(UINT nFlags, CPoint point);
+
+private :
+ CComQIPtr<IVMRMixerBitmap9> m_pVMB;
+ CWnd* m_pWnd;
+
+ CBitmap m_Bitmap;
+ CDC m_MemDC;
+ VMR9AlphaBitmap m_VMR9AlphaBitmap;
+ BITMAP m_BitmapInfo;
+
+ CFont m_MainFont;
+ CPen m_penBorder;
+ CPen m_penCursor;
+ CBrush m_brushBack;
+ CBrush m_brushBar;
+
+ CRect m_rectWnd;
+ COLORREF m_Color[OSD_LAST];
+
+ // Curseur de calage
+ CRect m_rectSeekBar;
+ CRect m_rectCursor;
+ CRect m_rectBar;
+ bool m_bCursorMoving;
+ bool m_bSeekBarVisible;
+ __int64 m_llSeekMin;
+ __int64 m_llSeekMax;
+ __int64 m_llSeekPos;
+
+ // Messages
+ CString m_strMessage;
+ OSD_MESSAGEPOS m_nMessagePos;
+
+ void CalcRect();
+ void UpdateSeekBarPos(CPoint point);
+ void DrawSlider(CRect* rect, __int64 llMin, __int64 llMax, __int64 llPos);
+ void DrawRect(CRect* rect, CBrush* pBrush = NULL, CPen* pPen = NULL);
+ void Invalidate();
+ void DrawMessage();
+
+ static void CALLBACK TimerFunc(HWND hWnd, UINT nMsg, UINT nIDEvent, DWORD dwTime);
+
+};
|