Audio Processing Framework (APF) version 0.5.0
Classes | Namespaces | Macros
mimoprocessor.h File Reference

Multi-threaded MIMO (multiple input, multiple output) processor. More...

#include <cassert>
#include <mutex>
#include <stdexcept>
#include "apf/rtlist.h"
#include "apf/parameter_map.h"
#include "apf/misc.h"
#include "apf/iterator.h"
#include "apf/container.h"
#include "apf/threadtools.h"

Go to the source code of this file.

Classes

class  apf::MimoProcessor< Derived, interface_policy, query_policy >
 Multi-threaded multiple-input-multiple-output (MIMO) processor. More...
 
struct  apf::MimoProcessor< Derived, interface_policy, query_policy >::Item
 Abstract base class for list items. More...
 
struct  apf::MimoProcessor< Derived, interface_policy, query_policy >::ProcessItem< X >
 Base class for items which have a Process class. More...
 
struct  apf::MimoProcessor< Derived, interface_policy, query_policy >::rtlist_proxy< T >
 Proxy class for accessing an RtList. More...
 
class  apf::MimoProcessor< Derived, interface_policy, query_policy >::ScopedLock
 Lock is released when it goes out of scope. More...
 
class  apf::MimoProcessor ::Input< Derived, interface_policy, query_policy >
 Input class. More...
 
class  apf::MimoProcessor ::DefaultInput< Derived, interface_policy, query_policy >
 Input class with begin() and end(). More...
 
class  apf::MimoProcessor ::Output< Derived, interface_policy, query_policy >
 Output class. More...
 
class  apf::MimoProcessor ::DefaultOutput< Derived, interface_policy, query_policy >
 Output class with begin() and end(). More...
 

Namespaces

namespace  apf
 Audio Processing Framework.
 

Macros

#define APF_MIMOPROCESSOR_TEMPLATES   template<typename Derived, typename interface_policy, typename query_policy>
 
#define APF_MIMOPROCESSOR_BASE   MimoProcessor<Derived, interface_policy, query_policy>
 
#define APF_PROCESS(name, parent)
 Macro to create a Process struct and a corresponding member function. More...
 

Detailed Description

Multi-threaded MIMO (multiple input, multiple output) processor.

Definition in file mimoprocessor.h.

Macro Definition Documentation

◆ APF_MIMOPROCESSOR_TEMPLATES

#define APF_MIMOPROCESSOR_TEMPLATES   template<typename Derived, typename interface_policy, typename query_policy>

Definition at line 44 of file mimoprocessor.h.

◆ APF_MIMOPROCESSOR_BASE

#define APF_MIMOPROCESSOR_BASE   MimoProcessor<Derived, interface_policy, query_policy>

Definition at line 45 of file mimoprocessor.h.

◆ APF_PROCESS

#define APF_PROCESS (   name,
  parent 
)
Value:
struct Process : parent::Process { \
explicit Process(name& ctor_arg) : parent::Process(ctor_arg) { \
ctor_arg.APF_PROCESS_internal(); } }; \
void APF_PROCESS_internal()

Macro to create a Process struct and a corresponding member function.

Parameters
nameName of the containing class
parentParent class (must have an inner class Process). The class apf::MimoProcessor::ProcessItem can be used.

Usage examples:

// In 'public' section of Output:
APF_PROCESS(Output, MimoProcessorBase::Output)
{
// do something here, you have access to members of Output
}
// In 'public' section of MyItem:
APF_PROCESS(MyItem, ProcessItem<MyItem>)
{
// do something here, you have access to members of MyItem
// MyItem has to be publicly derived from ProcessItem<MyItem>
}
#define APF_PROCESS(name, parent)
Macro to create a Process struct and a corresponding member function.
Definition: mimoprocessor.h:68
Examples
dummy_example.cpp, jack_dynamic_inputs.cpp, jack_dynamic_outputs.cpp, jack_minimal.cpp, and simpleprocessor.h.

Definition at line 68 of file mimoprocessor.h.