tracktion-engine
3.0-10-g034fdde4aa5
Tracktion Engine — High level data model for audio applications
« « « Anklang Documentation
Loading...
Searching...
No Matches
tracktion_engine
project
tracktion_ProjectSearchIndex.h
Go to the documentation of this file.
1
/*
2
,--. ,--. ,--. ,--.
3
,-' '-.,--.--.,--,--.,---.| |,-.,-' '-.`--' ,---. ,--,--, Copyright 2024
4
'-. .-'| .--' ,-. | .--'| /'-. .-',--.| .-. || \ Tracktion Software
5
| | | | \ '-' \ `--.| \ \ | | | |' '-' '| || | Corporation
6
`---' `--' `--`--'`---'`--'`--' `---' `--' `---' `--''--' www.tracktion.com
7
8
Tracktion Engine uses a GPL/commercial licence - see LICENCE.md for details.
9
*/
10
11
namespace
tracktion
{
inline
namespace
engine
12
{
13
14
struct
IndexedWord;
15
class
SearchOperation;
16
17
//==============================================================================
18
class
ProjectSearchIndex
19
{
20
public
:
21
ProjectSearchIndex
(
Project
&);
22
23
void
addClip (
const
ProjectItem::Ptr
&);
24
void
findMatches (
SearchOperation
&,
juce::Array<ProjectItemID>
& results);
25
26
void
writeToStream (
juce::OutputStream
&);
27
void
readFromStream (
juce::InputStream
&);
28
29
IndexedWord
* findWordMatch (
const
juce::String
& word)
const
;
30
31
Project
& project;
32
juce::OwnedArray<IndexedWord>
index;
33
34
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR
(
ProjectSearchIndex
)
35
};
36
37
//==============================================================================
39
SearchOperation
*
createSearchForKeywords
(
const
juce::String
& keywords);
40
41
//==============================================================================
42
class
SearchOperation
43
{
44
public
:
45
SearchOperation
(
SearchOperation
* in1 =
nullptr
,
46
SearchOperation
* in2 =
nullptr
);
47
virtual
~SearchOperation
();
48
49
virtual
juce::Array<int>
getMatches (
ProjectSearchIndex
&) = 0;
50
51
protected
:
52
const
std::unique_ptr<SearchOperation>
in1, in2;
53
54
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR
(
SearchOperation
)
55
};
56
57
}}
// namespace tracktion { inline namespace engine
juce::Array
juce::InputStream
juce::OutputStream
juce::OwnedArray
juce::ReferenceCountedObjectPtr< ProjectItem >
juce::String
tracktion::engine::ProjectSearchIndex
Definition
tracktion_ProjectSearchIndex.h:19
tracktion::engine::Project
A tracktion project.
Definition
tracktion_Project.h:29
tracktion::engine::SearchOperation
Definition
tracktion_ProjectSearchIndex.h:43
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
tracktion::engine::createSearchForKeywords
SearchOperation * createSearchForKeywords(const juce::String &keywords)
Turns a keyword string into a search condition tree.
Definition
tracktion_ProjectSearchIndex.cpp:389
tracktion
Definition
tracktion_AudioReader.h:23
tracktion::engine::IndexedWord
Definition
tracktion_ProjectSearchIndex.cpp:15
std::unique_ptr
« « « Anklang Documentation