Loading...
Searching...
No Matches
score-plugin-faust/Faust/Library.hpp
1#pragma once
2#include <Process/Drop/ProcessDropHandler.hpp>
3
4#include <Library/LibraryInterface.hpp>
5#include <Library/LibrarySettings.hpp>
6#include <Library/ProcessesItemModel.hpp>
7
8#include <score/application/ApplicationServices.hpp>
9
10#include <QFile>
11#include <QGuiApplication>
12#include <QTimer>
13
14#include <Faust/Descriptor.hpp>
15#include <Faust/EffectModel.hpp>
16namespace Faust
17{
18class LibraryHandler final
19 : public QObject
21{
22 SCORE_CONCRETE("e274ee7b-9142-43a0-9d77-9286a63af4d9")
23
24 QSet<QString> acceptedFiles() const noexcept override { return {"dsp"}; }
25
26 Library::CategoryPaths categories;
27
29 override
30 {
31 categories.init(
33 }
34
35 std::optional<Library::ProcessEntry> scanPath(std::string_view path) override
36 {
37 score::PathInfo file{path};
38 if(file.fileName == "layout.dsp")
39 return std::nullopt;
40
42 pdata.prettyName = QString::fromUtf8(
43 file.completeBaseName.data(), file.completeBaseName.size());
45 pdata.customData = QString::fromUtf8(
46 file.absoluteFilePath.data(), file.absoluteFilePath.size());
47
48 // FIXME:
49 /*
50 auto desc = initDescriptor(pdata.customData);
51 if(!desc.prettyName.isEmpty())
52 pdata.prettyName = desc.prettyName;
53 */
54
56 pdata.key, categories(file), {std::move(pdata), {}}};
57 }
58};
59
61{
62 SCORE_CONCRETE("1e83a000-5aca-4427-8de5-1dc7a390e201")
63
64 QSet<QString> fileExtensions() const noexcept override { return {"dsp"}; }
65
66 void dropPath(
67 std::vector<ProcessDrop>& vec, const score::FilePath& filename,
68 const score::DocumentContext& ctx) const noexcept override
69 {
72
73 // TODO use faust-provided name
74 p.creation.prettyName = filename.basename;
75 p.creation.customData = filename.relative;
76
77 vec.push_back(std::move(p));
78 }
79};
80
81}
Definition score-plugin-faust/Faust/Library.hpp:61
Definition score-plugin-faust/Faust/Library.hpp:21
Definition ProcessEntry.hpp:64
void init(std::string processName, const score::ApplicationContext &ctx)
GUI thread (setup). processName is the process's pretty name.
Definition LibraryInterface.cpp:32
Definition LibraryInterface.hpp:26
Definition ProcessesItemModel.hpp:38
Definition ProcessDropHandler.hpp:25
Definition ProcessEntry.hpp:25
Definition ProcessEntry.hpp:40
Static metadata implementation.
Definition lib/score/tools/Metadata.hpp:36
Definition ProcessDropHandler.hpp:29
Definition DocumentContext.hpp:18
Definition FilePath.hpp:43
Specializes ApplicationContext with the QMainWindow.
Definition GUIApplicationContext.hpp:15
Definition lib/score/tools/File.hpp:20