mp-sfml/include/mediaService.h

29 lines
766 B
C
Raw Normal View History

2024-10-08 14:34:52 +08:00
#include "videoService.h"
2024-09-09 13:20:59 +08:00
#include <SFML/Graphics.hpp>
2024-10-08 14:34:52 +08:00
#include <UtilTool.h>
#include <imageService.h>
2024-09-30 13:34:05 +08:00
#include <memory>
2024-10-08 14:34:52 +08:00
#include <string>
2024-09-09 13:20:59 +08:00
2024-10-08 14:34:52 +08:00
class MediaService {
private:
2024-09-09 13:20:59 +08:00
ImageService *imageService = nullptr;
VideoService *videoService = nullptr;
2024-09-09 13:20:59 +08:00
MediaType type;
2024-09-30 13:34:05 +08:00
std::shared_ptr<sf::Texture> texture;
std::shared_ptr<sf::Sprite> sprite;
std::shared_ptr<sf::RenderWindow> window;
2024-09-09 13:20:59 +08:00
int client_width = 0;
2024-10-08 14:34:52 +08:00
int client_height = 0;
public:
MediaService(std::shared_ptr<sf::RenderWindow> window,
const std::string &filename, int width, int height);
~MediaService() {
delete imageService;
delete videoService;
}
2024-10-08 14:34:52 +08:00
std::shared_ptr<sf::Sprite> GetSprite() { return sprite; }
2024-09-30 13:34:05 +08:00
void Play();
};