WiiFlow_Lite/source/gui/WiiMovie.hpp
fix94.1 971b5bdb52 -improved jpg support, now the cover width and height dont need
to be divisible with 4 anymore, you can use what you want
-moved sound buffers back in mem2, idk but for wiiflow it gives
a better result
-added mem2 memalign placeholder for new memory manager (after
a week still everything but finished)
-updated other small things, cleaned up source structure a bit
2012-08-05 13:48:15 +00:00

62 lines
1.3 KiB
C++

#ifndef WII_MOVIE_H_
#define WII_MOVIE_H_
#include "gcvid.h"
#include "Timer.h"
#include "texture.hpp"
#include "music/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;
vector<STexture> 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;
};
#endif