xbmc
SubtitlesAdapter.h
1 /*
2  * Copyright (C) 2005-2021 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include "SubtitlesStyle.h"
12 #include "cores/VideoPlayer/DVDCodecs/Overlay/DVDOverlay.h"
13 
14 #include <memory>
15 #include <string>
16 
17 class CDVDOverlay;
19 
20 static constexpr int NO_SUBTITLE_ID = -1;
21 
23 {
24 public:
26  virtual ~CSubtitlesAdapter();
27 
32  bool Initialize();
33 
41  int AddSubtitle(std::string& text, double startTime, double stopTime);
42 
51  int AddSubtitle(std::string& text,
52  double startTime,
53  double stopTime,
55 
61  void AppendToSubtitle(int subtitleId, const char* text);
62 
69  int DeleteSubtitles(int nSubtitles, int threshold);
70 
76  void ChangeSubtitleStopTime(int subtitleId, double stopTime);
77 
78  void FlushSubtitles();
79 
80  std::shared_ptr<CDVDOverlay> CreateOverlay();
81 
82 protected:
88  virtual void PostProcess(std::string& text){};
89 
90 private:
91  std::shared_ptr<CDVDSubtitlesLibass> m_libass;
92 };
int DeleteSubtitles(int nSubtitles, int threshold)
Delete old subtitles only if the total number of subtitles added reaches the threshold.
Definition: SubtitlesAdapter.cpp:57
void AppendToSubtitle(int subtitleId, const char *text)
Append text to the specified subtitle ID.
Definition: SubtitlesAdapter.cpp:50
void ChangeSubtitleStopTime(int subtitleId, double stopTime)
Change the stop time of a subtitle ID with the specified time.
Definition: SubtitlesAdapter.cpp:65
virtual void PostProcess(std::string &text)
Post processing of subtitle, will be called before processing AddSubtitle method. ...
Definition: SubtitlesAdapter.h:88
int AddSubtitle(std::string &text, double startTime, double stopTime)
Add a subtitle.
Definition: SubtitlesAdapter.cpp:33
Definition: SubtitlesAdapter.h:22
bool Initialize()
Initialize the subtitles adapter.
Definition: SubtitlesAdapter.cpp:27
Definition: SubtitlesStyle.h:106
Definition: DVDSubtitlesLibass.h:30
Definition: DVDOverlay.h:27