- added menu option and commandline parameter to disable video playback

This commit is contained in:
Mark Vejvoda 2012-06-09 05:02:01 +00:00
parent 90b0d96b5d
commit cb7bd8ff04
5 changed files with 62 additions and 19 deletions

View File

@ -3437,6 +3437,14 @@ int glestMain(int argc, char** argv) {
} }
} }
if(hasCommandArgument(argc, argv,GAME_ARGS[GAME_ARG_DISABLE_VIDEOS]) == true) {
VideoPlayer::setDisabled(true);
}
else if(config.getBool("EnableVideos","true") == false) {
VideoPlayer::setDisabled(true);
}
// Set some statics based on ini entries // Set some statics based on ini entries
SystemFlags::ENABLE_THREADED_LOGGING = config.getBool("ThreadedLogging","true"); SystemFlags::ENABLE_THREADED_LOGGING = config.getBool("ThreadedLogging","true");
FontGl::setDefault_fontType(config.getString("DefaultFont",FontGl::getDefault_fontType().c_str())); FontGl::setDefault_fontType(config.getString("DefaultFont",FontGl::getDefault_fontType().c_str()));

View File

@ -304,6 +304,13 @@ MenuStateOptions::MenuStateOptions(Program *program, MainMenu *mainMenu):
checkBoxRainEffect.setValue(config.getBool("RainEffect","true")); checkBoxRainEffect.setValue(config.getBool("RainEffect","true"));
currentLine-=lineOffset; currentLine-=lineOffset;
labelVideos.registerGraphicComponent(containerName,"labelVideos");
labelVideos.init(currentLabelStart ,currentLine);
labelVideos.setText(lang.get("EnableVideos"));
checkBoxVideos.registerGraphicComponent(containerName,"checkBoxVideos");
checkBoxVideos.init(currentColumnStart ,currentLine );
checkBoxVideos.setValue(config.getBool("EnableVideos","true"));
// end // end
@ -648,6 +655,8 @@ void MenuStateOptions::reloadUI() {
labelRainEffect.setText(lang.get("RainEffect")); labelRainEffect.setText(lang.get("RainEffect"));
labelVideos.setText(lang.get("EnableVideos"));
labelMiscSection.setFont(CoreData::getInstance().getMenuFontVeryBig()); labelMiscSection.setFont(CoreData::getInstance().getMenuFontVeryBig());
labelMiscSection.setFont3D(CoreData::getInstance().getMenuFontVeryBig3D()); labelMiscSection.setFont3D(CoreData::getInstance().getMenuFontVeryBig3D());
labelMiscSection.setText(lang.get("Misc")); labelMiscSection.setText(lang.get("Misc"));
@ -875,9 +884,11 @@ void MenuStateOptions::mouseClick(int x, int y, MouseButton mouseButton){
checkBoxDisableScreenshotConsoleText.mouseClick(x, y); checkBoxDisableScreenshotConsoleText.mouseClick(x, y);
checkBoxMouseMoveScrollsWorld.mouseClick(x, y); checkBoxMouseMoveScrollsWorld.mouseClick(x, y);
checkBoxVisibleHud.mouseClick(x, y); checkBoxVisibleHud.mouseClick(x, y);
checkBoxRainEffect.mouseClick(x,y); checkBoxRainEffect.mouseClick(x,y);
checkBoxRainEffectMenu.mouseClick(x,y); checkBoxRainEffectMenu.mouseClick(x,y);
checkBoxVideos.mouseClick(x,y);
} }
} }
@ -920,6 +931,8 @@ void MenuStateOptions::mouseMove(int x, int y, const MouseState *ms){
checkBoxVisibleHud.mouseMove(x, y); checkBoxVisibleHud.mouseMove(x, y);
checkBoxRainEffect.mouseMove(x, y); checkBoxRainEffect.mouseMove(x, y);
checkBoxRainEffectMenu.mouseMove(x, y); checkBoxRainEffectMenu.mouseMove(x, y);
checkBoxVideos.mouseMove(x, y);
} }
bool MenuStateOptions::isInSpecialKeyCaptureEvent() { bool MenuStateOptions::isInSpecialKeyCaptureEvent() {
@ -1073,6 +1086,9 @@ void MenuStateOptions::render(){
renderer.renderLabel(&labelShadowTextureSize); renderer.renderLabel(&labelShadowTextureSize);
renderer.renderListBox(&listBoxShadowTextureSize); renderer.renderListBox(&listBoxShadowTextureSize);
renderer.renderLabel(&labelVideos);
renderer.renderCheckBox(&checkBoxVideos);
} }
renderer.renderConsole(&console,false,true); renderer.renderConsole(&console,false,true);
@ -1135,6 +1151,8 @@ void MenuStateOptions::saveConfig(){
config.setBool("RainEffect", checkBoxRainEffect.getValue()); config.setBool("RainEffect", checkBoxRainEffect.getValue());
config.setBool("RainEffectMenu", checkBoxRainEffectMenu.getValue()); config.setBool("RainEffectMenu", checkBoxRainEffectMenu.getValue());
config.setBool("EnableVideos", checkBoxVideos.getValue());
string currentResolution=config.getString("ScreenWidth")+"x"+config.getString("ScreenHeight"); string currentResolution=config.getString("ScreenWidth")+"x"+config.getString("ScreenHeight");
string selectedResolution=listBoxScreenModes.getSelectedItem(); string selectedResolution=listBoxScreenModes.getSelectedItem();
if(currentResolution!=selectedResolution){ if(currentResolution!=selectedResolution){

View File

@ -131,6 +131,9 @@ private:
GraphicLabel labelShadowTextureSize; GraphicLabel labelShadowTextureSize;
GraphicListBox listBoxShadowTextureSize; GraphicListBox listBoxShadowTextureSize;
GraphicLabel labelVideos;
GraphicCheckBox checkBoxVideos;
map<string,string> languageList; map<string,string> languageList;
public: public:

View File

@ -81,6 +81,9 @@ const char *GAME_ARGS[] = {
"--use-font", "--use-font",
"--font-basesize", "--font-basesize",
"--disable-videos",
"--verbose" "--verbose"
}; };
@ -146,6 +149,9 @@ enum GAME_ARG_TYPE {
GAME_ARG_USE_FONT, GAME_ARG_USE_FONT,
GAME_ARG_FONT_BASESIZE, GAME_ARG_FONT_BASESIZE,
GAME_ARG_DISABLE_VIDEOS,
GAME_ARG_VERBOSE_MODE, GAME_ARG_VERBOSE_MODE,
GAME_ARG_END GAME_ARG_END
@ -424,10 +430,12 @@ void printParameterHelp(const char *argv0, bool foundInvalidArgs) {
printf("\n \t\texample:"); printf("\n \t\texample:");
printf("\n %s %s=$APPLICATIONDATAPATH/data/core/fonts/Vera.ttf",extractFileFromDirectoryPath(argv0).c_str(),GAME_ARGS[GAME_ARG_USE_FONT]); printf("\n %s %s=$APPLICATIONDATAPATH/data/core/fonts/Vera.ttf",extractFileFromDirectoryPath(argv0).c_str(),GAME_ARGS[GAME_ARG_USE_FONT]);
printf("\n%s=x\t\t\toverride the font base size.",GAME_ARGS[GAME_ARG_FONT_BASESIZE]); printf("\n%s=x\t\toverride the font base size.",GAME_ARGS[GAME_ARG_FONT_BASESIZE]);
printf("\n \t\tWhere x is the numeric base font size to use."); printf("\n \t\tWhere x is the numeric base font size to use.");
printf("\n \t\texample: %s %s=5",extractFileFromDirectoryPath(argv0).c_str(),GAME_ARGS[GAME_ARG_FONT_BASESIZE]); printf("\n \t\texample: %s %s=5",extractFileFromDirectoryPath(argv0).c_str(),GAME_ARGS[GAME_ARG_FONT_BASESIZE]);
printf("\n%s\t\tdisables video playback.",GAME_ARGS[GAME_ARG_DISABLE_VIDEOS]);
printf("\n%s\t\t\tdisplays verbose information in the console.",GAME_ARGS[GAME_ARG_VERBOSE_MODE]); printf("\n%s\t\t\tdisplays verbose information in the console.",GAME_ARGS[GAME_ARG_VERBOSE_MODE]);
printf("\n\n"); printf("\n\n");

View File

@ -451,6 +451,10 @@ VideoPlayer::~VideoPlayer() {
} }
bool VideoPlayer::hasBackEndVideoPlayer() { bool VideoPlayer::hasBackEndVideoPlayer() {
if(VideoPlayer::disabled == true) {
return false;
}
#ifdef HAS_LIBVLC #ifdef HAS_LIBVLC
return true; return true;
#endif #endif
@ -981,7 +985,7 @@ bool VideoPlayer::initPlayer() {
void VideoPlayer::closePlayer() { void VideoPlayer::closePlayer() {
#ifdef HAS_LIBVLC #ifdef HAS_LIBVLC
if(ctxPtr->libvlc != NULL) { if(ctxPtr != NULL && ctxPtr->libvlc != NULL) {
// //
// Stop stream and clean up libVLC // Stop stream and clean up libVLC
// //
@ -1004,21 +1008,23 @@ void VideoPlayer::closePlayer() {
// //
// Close window and clean up libSDL // Close window and clean up libSDL
// //
if(ctxPtr->mutex != NULL) { if(ctxPtr != NULL) {
SDL_DestroyMutex(ctxPtr->mutex); if(ctxPtr->mutex != NULL) {
} SDL_DestroyMutex(ctxPtr->mutex);
if(ctxPtr->surf != NULL) { }
SDL_FreeSurface(ctxPtr->surf); if(ctxPtr->surf != NULL) {
} SDL_FreeSurface(ctxPtr->surf);
if(ctxPtr->empty != NULL) { }
SDL_FreeSurface(ctxPtr->empty); if(ctxPtr->empty != NULL) {
} SDL_FreeSurface(ctxPtr->empty);
}
glDeleteTextures(1, &ctxPtr->textureId); glDeleteTextures(1, &ctxPtr->textureId);
if(ctxPtr->needToQuit == true) { if(ctxPtr->needToQuit == true) {
SDL_Event quit_event = {SDL_QUIT}; SDL_Event quit_event = {SDL_QUIT};
SDL_PushEvent(&quit_event); SDL_PushEvent(&quit_event);
}
} }
} }
@ -1285,7 +1291,7 @@ bool VideoPlayer::isPlaying() const {
(ctxPtr->error == false || ctxPtr->stopped == false) && (ctxPtr->error == false || ctxPtr->stopped == false) &&
finished == false && stop == false); finished == false && stop == false);
if(ctxPtr->verboseEnabled) printf("isPlaying isPlaying = %d,error = %d, stopped = %d, end_of_media = %d\n",ctxPtr->isPlaying,ctxPtr->error,ctxPtr->stopped,ctxPtr->end_of_media); if(ctxPtr != NULL && ctxPtr->verboseEnabled) printf("isPlaying isPlaying = %d,error = %d, stopped = %d, end_of_media = %d\n",ctxPtr->isPlaying,ctxPtr->error,ctxPtr->stopped,ctxPtr->end_of_media);
return result; return result;
} }