WiiFlow_Lite/source/gui/WiiMovie.hpp

62 lines
1.1 KiB
C++
Raw Normal View History

2012-01-21 21:57:41 +01:00
#ifndef WII_MOVIE_H_
#define WII_MOVIE_H_
#include "gcvid.h"
#include "Timer.h"
#include "texture.hpp"
#include "music/BufferCircle.hpp"
2012-01-21 21:57:41 +01:00
using namespace std;
class WiiMovie
{
public:
WiiMovie(const char * filepath);
~WiiMovie();
bool Play(bool loop = false);
void Stop();
void SetVolume(int vol);
void SetScreenSize(int width, int height, int top, int left);
void SetFullscreen();
void SetFrameSize(int w, int h);
void SetAspectRatio(float Aspect);
bool GetNextFrame(TexData *tex);
protected:
static void * UpdateThread(void *arg);
static void * PlayingThread(void *arg);
void FrameLoadLoop();
void ReadNextFrame();
void LoadNextFrame();
2012-01-21 21:57:41 +01:00
u8 * ThreadStack;
u8 * PlayThreadStack;
lwp_t ReadThread;
lwp_t PlayThread;
mutex_t mutex;
2012-01-21 21:57:41 +01:00
VideoFile *Video;
BufferCircle SoundBuffer;
float fps;
Timer PlayTime;
u32 VideoFrameCount;
vector<TexData> Frames;
bool Playing;
bool ExitRequested;
bool fullScreen;
int maxSoundSize;
int SndChannels;
int SndFrequence;
int volume;
int screentop;
int screenleft;
int screenwidth;
int screenheight;
float scaleX;
float scaleY;
int width;
int height;
2012-01-21 21:57:41 +01:00
};
#endif