mirror of
https://github.com/glest/glest-source.git
synced 2025-02-24 11:42:31 +01:00
97 lines
2.0 KiB
C++
97 lines
2.0 KiB
C++
// ==============================================================
|
|
// This file is part of MegaGlest Shared Library (www.glest.org)
|
|
//
|
|
// Copyright (C) 2012 Mark Vejvoda (mark_vejvoda@hotmail.com)
|
|
//
|
|
// You can redistribute this code and/or modify it under
|
|
// the terms of the GNU General Public License as published
|
|
// by the Free Software Foundation; either version 2 of the
|
|
// License, or (at your option) any later version
|
|
// ==============================================================
|
|
#ifndef VIDEO_PLAYER_H_
|
|
#define VIDEO_PLAYER_H_
|
|
|
|
#include <string>
|
|
|
|
struct SDL_Window;
|
|
class ctx;
|
|
|
|
using namespace std;
|
|
|
|
namespace Shared {
|
|
namespace Graphics {
|
|
|
|
class VideoLoadingCallbackInterface {
|
|
public:
|
|
virtual ~VideoLoadingCallbackInterface() {
|
|
}
|
|
/** a value from 1 to 100 representing % done */
|
|
virtual void renderVideoLoading(int progressPercent) = 0;
|
|
};
|
|
|
|
class VideoPlayer {
|
|
protected:
|
|
|
|
string filename;
|
|
string filenameFallback;
|
|
SDL_Window *window;
|
|
int x;
|
|
int y;
|
|
int width;
|
|
int height;
|
|
int colorBits;
|
|
|
|
bool successLoadingLib;
|
|
string pluginsPath;
|
|
bool verboseEnabled;
|
|
|
|
bool stop;
|
|
bool finished;
|
|
bool loop;
|
|
|
|
VideoLoadingCallbackInterface *loadingCB;
|
|
ctx *ctxPtr;
|
|
|
|
static bool disabled;
|
|
void init();
|
|
|
|
void cleanupPlayer();
|
|
bool initPlayer(string mediaURL);
|
|
|
|
public:
|
|
VideoPlayer(VideoLoadingCallbackInterface *loadingCB,
|
|
string filename,
|
|
string filenameFallback,
|
|
SDL_Window *window, int x, int y,
|
|
int width, int height, int colorBits,
|
|
bool loop, string pluginsPath, bool verboseEnabled = false);
|
|
virtual ~VideoPlayer();
|
|
|
|
static void setDisabled(bool value) {
|
|
disabled = value;
|
|
}
|
|
static bool getDisabled() {
|
|
return disabled;
|
|
}
|
|
|
|
void PlayVideo();
|
|
void StopVideo() {
|
|
stop = true;
|
|
}
|
|
|
|
bool initPlayer();
|
|
void closePlayer();
|
|
|
|
bool playFrame(bool swapBuffers = true);
|
|
bool isPlaying() const;
|
|
|
|
static bool hasBackEndVideoPlayer();
|
|
|
|
void RestartVideo();
|
|
};
|
|
|
|
}
|
|
}
|
|
|
|
#endif /* VIDEO_PLAYER_H_ */
|