mirror of
https://github.com/WinampDesktop/winamp.git
synced 2024-11-15 03:15:05 -05:00
45 lines
1.3 KiB
C
45 lines
1.3 KiB
C
|
#ifndef _VID_GDIPLUS_H_
|
||
|
#define _VID_GDIPLUS_H_
|
||
|
|
||
|
#include <windows.h>
|
||
|
#include <gdiplus.h>
|
||
|
#include "VideoOutputChild.h"
|
||
|
|
||
|
using namespace Gdiplus;
|
||
|
|
||
|
class GDIPVideoOutput : public VideoRenderer {
|
||
|
public:
|
||
|
GDIPVideoOutput();
|
||
|
virtual ~GDIPVideoOutput();
|
||
|
virtual int create(HWND parent, VideoAspectAdjuster *_adjuster, int w, int h, unsigned int type, int flipit, double aspectratio); //return 1 if ok
|
||
|
virtual int needChange(); //return 1 if need to renegociate video output
|
||
|
virtual int onPaint(HWND hwnd) { return 0; } //return 1 if override
|
||
|
virtual void displayFrame(const char *buf, int size, int time);
|
||
|
virtual void close(); // hides any output of the video
|
||
|
virtual void timerCallback();
|
||
|
virtual void drawSubtitle(SubsItem *item) { subs=item; }
|
||
|
virtual void resetSubtitle() { subs=NULL; }
|
||
|
virtual void setVFlip(int on) { flip=on; }
|
||
|
virtual void Refresh();
|
||
|
|
||
|
protected:
|
||
|
bool FillFrame(Bitmap *frame, void *buf);
|
||
|
|
||
|
unsigned int type, w, h, flip, winw, winh;
|
||
|
Graphics * graphics; // on screen canvas
|
||
|
Graphics * graphicsback; // off screen canvas
|
||
|
Bitmap * frame;
|
||
|
HWND parent;
|
||
|
int needschange;
|
||
|
VideoAspectAdjuster *adjuster;
|
||
|
RECT lastrect;
|
||
|
HDC backdc;
|
||
|
void SetupGraphics();
|
||
|
ULONG_PTR gdiplusToken;
|
||
|
SubsItem *subs;
|
||
|
};
|
||
|
|
||
|
extern GDIPVideoOutput gdiplusVideo;
|
||
|
|
||
|
#endif // _VID_GDIPLUS_H_
|