Loading...
Searching...
No Matches
TakeDrop.hpp
1#pragma once
2#include <Process/Commands/Properties.hpp>
3#include <Process/Drop/ClipMetadata.hpp>
4#include <Process/Process.hpp>
5#include <Process/TimeValue.hpp>
6
7#include <score/command/Dispatchers/RuntimeDispatcher.hpp>
8
9#include <QByteArray>
10#include <QMimeData>
11#include <QString>
12
13#include <vector>
14
15namespace Process
16{
18inline std::vector<clip_file_metadata> clip_metadata_of(const QMimeData& mime)
19{
20 const auto fmt = QString::fromUtf8(
21 clip_metadata_mime.data(), qsizetype(clip_metadata_mime.size()));
22 if(!mime.hasFormat(fmt))
23 return {};
24 const QByteArray data = mime.data(fmt);
25 return decode_clip_metadata({data.constData(), std::size_t(data.size())});
26}
27
31inline void
33{
34 if(length <= TimeVal::zero())
35 return;
36 if(!proc.loops())
37 disp.submit(new SetLoop{proc, true});
38 if(proc.loopDuration() != length)
39 disp.submit(new SetLoopDuration{proc, length});
40}
41}
The Process class.
Definition score-lib-process/Process/Process.hpp:82
Base classes and tools to implement processes and layers.
Definition JSONVisitor.hpp:1115
constexpr std::string_view clip_metadata_mime
Definition ClipMetadata.hpp:19
void loop_clip(ProcessModel &proc, TimeVal length, score::Dispatcher &disp)
Definition TakeDrop.hpp:32
std::vector< clip_file_metadata > clip_metadata_of(const QMimeData &mime)
The clip metadata a drop carries next to its files; empty without any.
Definition TakeDrop.hpp:18
Definition TimeValue.hpp:21
Definition RuntimeDispatcher.hpp:7