Audacity 3.2.0
Classes | Public Types | Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
internal::ParameterQueuePool Class Referencefinal

#include <ParameterQueuePool.h>

Collaboration diagram for internal::ParameterQueuePool:
[legend]

Classes

class  QueueCleanup
 

Public Types

using ParameterValueQueuePtr = std::unique_ptr< ParameterValueQueue, QueueCleanup >
 

Public Member Functions

ParameterValueQueuePtr Get (Steinberg::Vst::ParamID id)
 
void Reset () noexcept
 

Static Public Member Functions

static ParameterQueuePoolInstance ()
 

Private Attributes

std::vector< Steinberg::IPtr< ParameterValueQueue > > mPool
 

Detailed Description

Helper object. Global instance provides ParameterChanges with ParameterValueQueue objects

Definition at line 30 of file ParameterQueuePool.h.

Member Typedef Documentation

◆ ParameterValueQueuePtr

Definition at line 40 of file ParameterQueuePool.h.

Member Function Documentation

◆ Get()

internal::ParameterQueuePool::ParameterValueQueuePtr internal::ParameterQueuePool::Get ( Steinberg::Vst::ParamID  id)

Definition at line 29 of file ParameterQueuePool.cpp.

30{
31 Steinberg::IPtr<ParameterValueQueue> queue;
32 for(auto& q : mPool)
33 {
34 if(!q->isInitialized())
35 {
36 queue = q;
37 break;
38 }
39 }
40 if(queue == nullptr)
41 {
42 queue = owned(safenew ParameterValueQueue);
43 mPool.push_back(queue);
44 }
45 queue->initialize(id);
46 queue->addRef();
47 return { queue.get(), QueueCleanup { } };
48}
#define safenew
Definition: MemoryX.h:10
std::vector< Steinberg::IPtr< ParameterValueQueue > > mPool

References mPool, and safenew.

Referenced by internal::ParameterChanges::addParameterData().

Here is the caller graph for this function:

◆ Instance()

internal::ParameterQueuePool & internal::ParameterQueuePool::Instance ( )
static

Definition at line 23 of file ParameterQueuePool.cpp.

24{
25 static ParameterQueuePool instance;
26 return instance;
27}

Referenced by internal::ParameterChanges::addParameterData().

Here is the caller graph for this function:

◆ Reset()

void internal::ParameterQueuePool::Reset ( )
noexcept

Definition at line 50 of file ParameterQueuePool.cpp.

51{
52 mPool.clear();
53}

References mPool.

Member Data Documentation

◆ mPool

std::vector<Steinberg::IPtr<ParameterValueQueue> > internal::ParameterQueuePool::mPool
private

Definition at line 32 of file ParameterQueuePool.h.

Referenced by Get(), and Reset().


The documentation for this class was generated from the following files: