Loading...
Searching...
No Matches
MediaTrimmer.hpp
1#pragma once
2#include <Process/ExternalFiles.hpp>
3
4#include <score/plugins/Interface.hpp>
5#include <score/plugins/InterfaceList.hpp>
6
7#include <QString>
8
9#include <score_lib_process_export.h>
10
11namespace Process
12{
13
25class SCORE_LIB_PROCESS_EXPORT MediaTrimmer : public score::InterfaceBase
26{
27 SCORE_INTERFACE(MediaTrimmer, "3ee2a1c8-4d6b-4a51-9f30-1f0d3b7d6c92")
28public:
29 ~MediaTrimmer() override;
30
32 virtual bool supports(const QString& absolutePath) const noexcept = 0;
33
35 virtual QString outputExtension() const noexcept = 0;
36
38 virtual double duration(const QString& absolutePath) const = 0;
39
48 virtual qint64 estimatedSize(const QString& absolutePath, MediaRange kept) const = 0;
49
55 virtual QString
56 trim(const QString& source, const QString& destination, MediaRange range) const = 0;
57};
58
59class SCORE_LIB_PROCESS_EXPORT MediaTrimmerList final
60 : public score::InterfaceList<MediaTrimmer>
61{
62public:
64
66 const MediaTrimmer* find(const QString& absolutePath) const noexcept;
67};
68}
Writes the used part of a media file into a new one.
Definition MediaTrimmer.hpp:26
virtual QString outputExtension() const noexcept=0
The extension the trimmed file must take, without the dot.
virtual bool supports(const QString &absolutePath) const noexcept=0
Can this trimmer read that file?
Definition MediaTrimmer.hpp:61
Base class for plug-in interfaces.
Definition Interface.hpp:52
Base classes and tools to implement processes and layers.
Definition JSONVisitor.hpp:1115
Base toolkit upon which the software is built.
Definition Application.cpp:116
Definition MediaRange.hpp:10
Definition MIDISync.hpp:126