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 "BufferCircle.hpp"
|
|
|
|
|
|
|
|
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(STexture *tex);
|
|
|
|
protected:
|
|
|
|
static void * UpdateThread(void *arg);
|
|
|
|
static void * PlayingThread(void *arg);
|
|
|
|
void FrameLoadLoop();
|
|
|
|
void ReadNextFrame();
|
|
|
|
void LoadNextFrame();
|
|
|
|
|
|
|
|
u8 * ThreadStack;
|
|
|
|
u8 * PlayThreadStack;
|
|
|
|
lwp_t ReadThread;
|
|
|
|
lwp_t PlayThread;
|
|
|
|
mutex_t mutex;
|
|
|
|
|
|
|
|
VideoFile * Video;
|
|
|
|
BufferCircle SoundBuffer;
|
|
|
|
float fps;
|
|
|
|
Timer PlayTime;
|
|
|
|
u32 VideoFrameCount;
|
2012-05-06 14:03:43 +02:00
|
|
|
vector<STexture> Frames;
|
2012-01-21 21:57:41 +01:00
|
|
|
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;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|