mirror of
https://github.com/vcmi/vcmi.git
synced 2026-06-19 22:57:37 +02:00
Many quoted local includes had an incorrect ../ depth and resolved to
non-existent files from the including file's directory.
This was easy to miss because normal target include directories and PCH
usage masked some failures, and several stale paths lived in files that
are only compiled in optional test configurations. As a result, the
problem mostly surfaced in stricter or broader fresh builds.
Audit all C++ and header local includes, keep them relative, and adjust
paths so each include resolves to an existing in-tree header. For
headers that were renamed or moved, update includes to their current
relative location instead of switching to include-root form.
A few legacy ERM tests also used dynamic_ptr_cast at call sites where we
had to replace stale headers. The helper/header path they relied on is
no longer present after 81af66d35b, so
those downcasts are now explicit dynamic_cast calls with the same intent.
56 lines
1.3 KiB
C++
56 lines
1.3 KiB
C++
/*
|
|
* IVideoPlayer.h, part of VCMI engine
|
|
*
|
|
* Authors: listed in file AUTHORS in main folder
|
|
*
|
|
* License: GNU General Public License v2.0 or later
|
|
* Full text of license available in license.txt file, in main folder
|
|
*
|
|
*/
|
|
#pragma once
|
|
|
|
#include "../../lib/filesystem/ResourcePath.h"
|
|
|
|
struct SDL_Surface;
|
|
|
|
VCMI_LIB_NAMESPACE_BEGIN
|
|
class Point;
|
|
VCMI_LIB_NAMESPACE_END
|
|
|
|
class IVideoInstance
|
|
{
|
|
public:
|
|
/// Returns current video timestamp
|
|
virtual double timeStamp() = 0;
|
|
|
|
/// Returns true if video playback is over
|
|
virtual bool videoEnded() = 0;
|
|
|
|
/// Returns dimensions of the video
|
|
virtual Point size() = 0;
|
|
|
|
/// Displays current frame at specified position
|
|
virtual void show(const Point & position, SDL_Surface * to) = 0;
|
|
|
|
/// Advances video playback by specified duration
|
|
virtual void tick(uint32_t msPassed) = 0;
|
|
|
|
/// activate or deactivate video
|
|
virtual void activate() = 0;
|
|
virtual void deactivate() = 0;
|
|
|
|
virtual ~IVideoInstance() = default;
|
|
};
|
|
|
|
class IVideoPlayer : boost::noncopyable
|
|
{
|
|
public:
|
|
/// Load video from specified path. Returns nullptr on failure
|
|
virtual std::unique_ptr<IVideoInstance> open(const VideoPath & name, float scaleFactor) = 0;
|
|
|
|
/// Extracts audio data from provided video in wav format
|
|
virtual std::pair<std::unique_ptr<ui8[]>, si64> getAudio(const VideoPath & videoToOpen) = 0;
|
|
|
|
virtual ~IVideoPlayer() = default;
|
|
};
|