aboutsummaryrefslogtreecommitdiff
path: root/engines/wintermute/video/video_player.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/wintermute/video/video_player.cpp')
-rw-r--r--engines/wintermute/video/video_player.cpp135
1 files changed, 99 insertions, 36 deletions
diff --git a/engines/wintermute/video/video_player.cpp b/engines/wintermute/video/video_player.cpp
index 464cbec7ff..7affd91013 100644
--- a/engines/wintermute/video/video_player.cpp
+++ b/engines/wintermute/video/video_player.cpp
@@ -92,28 +92,46 @@ VideoPlayer::~VideoPlayer() {
//////////////////////////////////////////////////////////////////////////
bool VideoPlayer::cleanup() {
#if 0
- if (_sound) _sound->Stop();
- if (_videoPGF) AVIStreamGetFrameClose(_videoPGF);
+ if (_sound) {
+ _sound->Stop();
+ }
+ if (_videoPGF) {
+ AVIStreamGetFrameClose(_videoPGF);
+ }
_videoPGF = NULL;
_playing = false;
- if (_aviFile) AVIFileRelease(m_AviFile);
+ if (_aviFile) {
+ AVIFileRelease(m_AviFile);
+ }
- if (_audioStream) AVIStreamRelease(m_AudioStream);
- if (_videoStream) AVIStreamRelease(m_VideoStream);
+ if (_audioStream) {
+ AVIStreamRelease(m_AudioStream);
+ }
+ if (_videoStream) {
+ AVIStreamRelease(m_VideoStream);
+ }
- if (_audioFormat) delete[](byte *)m_AudioFormat;
- if (_videoFormat) delete[](byte *)m_VideoFormat;
- if (_targetFormat) delete[](byte *)m_TargetFormat;
+ if (_audioFormat) {
+ delete[](byte *)m_AudioFormat;
+ }
+ if (_videoFormat) {
+ delete[](byte *)m_VideoFormat;
+ }
+ if (_targetFormat) {
+ delete[](byte *)m_TargetFormat;
+ }
SAFE_DELETE(_sound);
SAFE_DELETE(_vidRenderer);
SAFE_DELETE_ARRAY(_filename);
- for (int i = 0; i < _subtitles.getSize(); i++) delete _subtitles[i];
+ for (int i = 0; i < _subtitles.getSize(); i++) {
+ delete _subtitles[i];
+ }
_subtitles.removeAll();
return SetDefaults();
@@ -144,10 +162,11 @@ bool VideoPlayer::initialize(const char *inFilename, const char *SubtitleFile) {
_totalVideoTime = AVIStreamEndTime(_videoStream);
// get audio stream
- if (_gameRef->m_SoundMgr->_soundAvailable && AVIFileGetStream(_aviFile, &_audioStream, streamtypeAUDIO, 0) == 0)
+ if (_gameRef->m_SoundMgr->_soundAvailable && AVIFileGetStream(_aviFile, &_audioStream, streamtypeAUDIO, 0) == 0) {
_soundAvailable = true;
- else
+ } else {
_soundAvailable = false;
+ }
LONG Size;
@@ -169,10 +188,11 @@ bool VideoPlayer::initialize(const char *inFilename, const char *SubtitleFile) {
m_TargetFormat->bV4BitCount = 24;
m_TargetFormat->bV4V4Compression = BI_RGB;
- if (_gameRef->m_UseD3D)
+ if (_gameRef->m_UseD3D) {
m_VidRenderer = new CVidRendererD3D(_gameRef);
- else
+ } else {
m_VidRenderer = new CVidRendererDD(_gameRef);
+ }
if (!m_VidRenderer || DID_FAIL(m_VidRenderer->Initialize(m_VideoFormat, m_TargetFormat))) {
_gameRef->LOG(0, "Error initializing video renderer for AVI file '%s'", filename);
@@ -193,10 +213,14 @@ bool VideoPlayer::initialize(const char *inFilename, const char *SubtitleFile) {
}
}
- if (_gameRef->_videoSubtitles) LoadSubtitles(inFilename, SubtitleFile);
+ if (_gameRef->_videoSubtitles) {
+ LoadSubtitles(inFilename, SubtitleFile);
+ }
_filename = new char[strlen(filename) + 1];
- if (_filename) strcpy(_filename, filename);
+ if (_filename) {
+ strcpy(_filename, filename);
+ }
#endif
return STATUS_OK;
}
@@ -205,13 +229,17 @@ bool VideoPlayer::initialize(const char *inFilename, const char *SubtitleFile) {
//////////////////////////////////////////////////////////////////////////
bool VideoPlayer::update() {
#if 0
- if (!m_Playing) return STATUS_OK;
+ if (!m_Playing) {
+ return STATUS_OK;
+ }
bool res;
if (_soundAvailable && m_Sound) {
res = _sound->update();
- if (DID_FAIL(res)) return res;
+ if (DID_FAIL(res)) {
+ return res;
+ }
}
@@ -263,10 +291,17 @@ bool VideoPlayer::update() {
// render frame
LPBITMAPINFOHEADER FrameData = (LPBITMAPINFOHEADER)AVIStreamGetFrame(m_VideoPGF, sample);
if (FrameData) {
- if (_slowRendering) return _vidRenderer->ProcessFrameSlow(FrameData);
- else return _vidRenderer->ProcessFrame(FrameData);
- } else return STATUS_FAILED;
- } else return STATUS_OK;
+ if (_slowRendering) {
+ return _vidRenderer->ProcessFrameSlow(FrameData);
+ } else {
+ return _vidRenderer->ProcessFrame(FrameData);
+ }
+ } else {
+ return STATUS_FAILED;
+ }
+ } else {
+ return STATUS_OK;
+ }
#endif
return 0;
}
@@ -275,11 +310,16 @@ bool VideoPlayer::update() {
//////////////////////////////////////////////////////////////////////////
bool VideoPlayer::display() {
#if 0
- if (!m_Playing) return STATUS_OK;
+ if (!m_Playing) {
+ return STATUS_OK;
+ }
bool res;
- if (_vidRenderer) res = _vidRenderer->display(m_PlayPosX, m_PlayPosY, m_PlayZoom);
- else res = STATUS_FAILED;
+ if (_vidRenderer) {
+ res = _vidRenderer->display(m_PlayPosX, m_PlayPosY, m_PlayZoom);
+ } else {
+ res = STATUS_FAILED;
+ }
// display subtitle
if (m_ShowSubtitle) {
@@ -299,7 +339,9 @@ bool VideoPlayer::display() {
//////////////////////////////////////////////////////////////////////////
bool VideoPlayer::play(TVideoPlayback Type, int X, int Y, bool FreezeMusic) {
#if 0
- if (!_videoStream || !_vidRenderer) return STATUS_FAILED;
+ if (!_videoStream || !_vidRenderer) {
+ return STATUS_FAILED;
+ }
switch (Type) {
case VID_PLAY_POS:
@@ -339,7 +381,9 @@ bool VideoPlayer::play(TVideoPlayback Type, int X, int Y, bool FreezeMusic) {
_gameRef->LOG(0, "Performance warning: non-optimal AVI format, using generic (i.e. slow) rendering routines (file '%s')", m_Filename);
_slowRendering = true;
}
- } else _slowRendering = false;
+ } else {
+ _slowRendering = false;
+ }
// HACK!!!
_slowRendering = true;
@@ -350,7 +394,9 @@ bool VideoPlayer::play(TVideoPlayback Type, int X, int Y, bool FreezeMusic) {
_gameRef->Freeze(FreezeMusic);
_playing = true;
- if (_sound) _sound->Play();
+ if (_sound) {
+ _sound->Play();
+ }
_startTime = timeGetTime();
#endif
return STATUS_OK;
@@ -360,7 +406,9 @@ bool VideoPlayer::play(TVideoPlayback Type, int X, int Y, bool FreezeMusic) {
//////////////////////////////////////////////////////////////////////////
bool VideoPlayer::stop() {
#if 0
- if (!_playing) return STATUS_OK;
+ if (!_playing) {
+ return STATUS_OK;
+ }
cleanup();
@@ -379,7 +427,9 @@ bool VideoPlayer::isPlaying() {
//////////////////////////////////////////////////////////////////////////
bool VideoPlayer::loadSubtitles(const char *filename, const char *SubtitleFile) {
#if 0
- if (!Filename) return STATUS_OK;
+ if (!Filename) {
+ return STATUS_OK;
+ }
char NewFile[MAX_PATH_LENGTH];
char drive[_MAX_DRIVE];
@@ -395,7 +445,9 @@ bool VideoPlayer::loadSubtitles(const char *filename, const char *SubtitleFile)
DWORD Size;
BYTE *Buffer = _gameRef->m_FileManager->readWholeFile(NewFile, &Size, false);
- if (Buffer == NULL) return STATUS_OK; // no subtitles
+ if (Buffer == NULL) {
+ return STATUS_OK; // no subtitles
+ }
LONG Start, End;
@@ -414,7 +466,9 @@ bool VideoPlayer::loadSubtitles(const char *filename, const char *SubtitleFile)
TextLength = 0;
LineLength = 0;
- while (Pos + LineLength < Size && Buffer[Pos + LineLength] != '\n' && Buffer[Pos + LineLength] != '\0') LineLength++;
+ while (Pos + LineLength < Size && Buffer[Pos + LineLength] != '\n' && Buffer[Pos + LineLength] != '\0') {
+ LineLength++;
+ }
int RealLength = LineLength - (Pos + LineLength >= Size ? 0 : 1);
char *Text = new char[RealLength + 1];
@@ -427,15 +481,20 @@ bool VideoPlayer::loadSubtitles(const char *filename, const char *SubtitleFile)
TokenStart = line + i + 1;
TokenLength = 0;
TokenPos++;
- } else TokenLength++;
+ } else {
+ TokenLength++;
+ }
} else if (line[i] == '}') {
if (InToken) {
InToken = false;
char *Token = new char[TokenLength + 1];
strncpy(Token, TokenStart, TokenLength);
Token[TokenLength] = '\0';
- if (TokenPos == 0) Start = atoi(Token);
- else if (TokenPos == 1) End = atoi(Token);
+ if (TokenPos == 0) {
+ Start = atoi(Token);
+ } else if (TokenPos == 1) {
+ End = atoi(Token);
+ }
delete[] Token;
} else {
@@ -447,14 +506,18 @@ bool VideoPlayer::loadSubtitles(const char *filename, const char *SubtitleFile)
TokenLength++;
} else {
Text[TextLength] = line[i];
- if (Text[TextLength] == '|') Text[TextLength] = '\n';
+ if (Text[TextLength] == '|') {
+ Text[TextLength] = '\n';
+ }
TextLength++;
}
}
}
Text[TextLength] = '\0';
- if (Start != -1 && TextLength > 0) _subtitles.add(new CVidSubtitle(_gameRef, Text, Start, End));
+ if (Start != -1 && TextLength > 0) {
+ _subtitles.add(new CVidSubtitle(_gameRef, Text, Start, End));
+ }
delete[] Text;