You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
2.2 KiB
79 lines
2.2 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: VGUI panel which can play back video, in-engine |
|
// |
|
//============================================================================= |
|
|
|
#ifndef VGUI_VIDEO_H |
|
#define VGUI_VIDEO_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#include <vgui_controls/Panel.h> |
|
#include <vgui_controls/EditablePanel.h> |
|
|
|
//#define QUICKTIME_VIDEO |
|
//#define BINK_VIDEO |
|
|
|
#include "video/ivideoservices.h" |
|
|
|
|
|
class VideoPanel : public vgui::EditablePanel |
|
{ |
|
DECLARE_CLASS_SIMPLE( VideoPanel, vgui::EditablePanel ); |
|
public: |
|
|
|
VideoPanel( unsigned int nXPos, unsigned int nYPos, unsigned int nHeight, unsigned int nWidth, bool allowAlternateMedia = true ); |
|
|
|
virtual ~VideoPanel( void ); |
|
|
|
virtual void Activate( void ); |
|
virtual void Paint( void ); |
|
virtual void DoModal( void ); |
|
virtual void OnKeyCodeTyped( vgui::KeyCode code ); |
|
virtual void OnKeyCodePressed( vgui::KeyCode code ); |
|
virtual void OnClose( void ); |
|
virtual void GetPanelPos( int &xpos, int &ypos ); |
|
|
|
void SetExitCommand( const char *pExitCommand ) |
|
{ |
|
if ( pExitCommand && pExitCommand[0] ) |
|
{ |
|
Q_strncpy( m_szExitCommand, pExitCommand, MAX_PATH ); |
|
} |
|
} |
|
|
|
bool BeginPlayback( const char *pFilename ); |
|
|
|
void SetBlackBackground( bool bBlack ){ m_bBlackBackground = bBlack; } |
|
|
|
protected: |
|
|
|
virtual void OnTick( void ) { BaseClass::OnTick(); } |
|
virtual void OnCommand( const char *pcCommand ) { BaseClass::OnCommand( pcCommand ); } |
|
virtual void OnVideoOver(){} |
|
|
|
protected: |
|
IVideoMaterial *m_VideoMaterial; |
|
|
|
IMaterial *m_pMaterial; |
|
int m_nPlaybackHeight; // Calculated to address ratio changes |
|
int m_nPlaybackWidth; |
|
char m_szExitCommand[MAX_PATH]; // This call is fired at the engine when the video finishes or is interrupted |
|
|
|
float m_flU; // U,V ranges for video on its sheet |
|
float m_flV; |
|
|
|
bool m_bBlackBackground; |
|
bool m_bAllowAlternateMedia; |
|
}; |
|
|
|
|
|
// Creates a VGUI panel which plays a video and executes a client command at its finish (if specified) |
|
extern bool VideoPanel_Create( unsigned int nXPos, unsigned int nYPos, |
|
unsigned int nWidth, unsigned int nHeight, |
|
const char *pVideoFilename, |
|
const char *pExitCommand = NULL ); |
|
|
|
#endif // VGUI_VIDEO_H
|
|
|