Commit df1ca18f authored by Jonas Stienen's avatar Jonas Stienen

Initializing base

parents
# $Id:$
cmake_minimum_required( VERSION 2.8 )
project( VABase )
list( APPEND CMAKE_MODULE_PATH "$ENV{VISTA_CMAKE_COMMON}" )
include( VistaCommon )
vista_use_package( VistaCoreLibs REQUIRED COMPONENTS VistaInterProcComm )
# Including the source files of all source subfolders recursively
include( "include/_SourceFiles.cmake" )
include( "src/_SourceFiles.cmake" )
include_directories( "include" )
add_definitions( -DVABASE_DLL -DVABASE_EXPORTS )
add_library( VABase "${ProjectSources}" )
target_link_libraries( VABase ${VISTA_USE_PACKAGE_LIBRARIES} )
# configure
vista_configure_lib( VABase )
vista_install( VABase )
set( VABASE_INCLUDE_OUTDIR "${CMAKE_CURRENT_SOURCE_DIR}/include" )
vista_create_cmake_configs( VABase )
vista_create_default_info_file( VABase )
set_property( TARGET VABase PROPERTY FOLDER "VA" )
# tests
set( VABASE_COMMON_BUILD TRUE )
add_subdirectory( "${CMAKE_CURRENT_SOURCE_DIR}/tests" )
#
# OpenDAFF Documentation Makefile
# Authors: Frank Wefers (Frank.Wefers@akustik.rwth-aachen.de),
# Jonas Stienen (stienen@akustik.rwth-aachen.de)
# Date/Version: $Id: Makefile,v 1.1 2010/02/04 15:02:36 fwefers Exp $
# (c) Copyright Institute of Technical Acoustics (ITA), RWTH Aachen University 2009-2010
#
#
# Makefile for generating the ITAToolkit documentation files under Linux machines using doxygen (>= 1.5.5)
#
DOC_NAME = OpenDAFF Documentation
DOX = doxygen
DOX_CONFIG_FILE = cxx-api.doxyfile
DOX_HTML_TARGET = HTML
#DOX_STYLESHEET = styles.css
DOX_IMAGES = logo.png
.PHONY: clean
.PHONY: doc
.PHONY: info
all: doc
doc:
$(MAKE) clean
$(DOX) $(DOX_CONFIG_FILE)
cp $(DOX_STYLESHEET) $(DOX_HTML_TARGET)
cp $(DOX_IMAGES) $(DOX_HTML_TARGET)
clean:
rm -rf $(DOX_HTML_TARGET)
info:
@echo "--- Generate $(DOC_NAME) ---"
@echo "Execute \`make\` to generate the documentation files to its target directory '$(DOX_HTML_TARGET)'."
@echo "If there are already some older versions existing, they will be removed."
@echo "Type in \`make clean\` to remove the documentation."
@echo ""
@echo "--- Settings ---"
@echo "DOX = $(DOX)"
@echo "DOX_CONFIG_FILE = $(DOX_CONFIG_FILE)"
@echo "DOX_HTML_TARGET = $(DOX_HTML_TARGET)"
@echo "DOX_STYLESHEET = $(DOX_STYLESHEET)"
@echo "DOX_IMAGES = $(DOX_IMAGES)"
# Doxyfile 1.5.4
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = "VABase C++ Application Programming Interface (API)"
PROJECT_NUMBER =
OUTPUT_DIRECTORY =
CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF = "The $name class" \
"The $name widget" \
"The $name file" \
is \
provides \
specifies \
contains \
represents \
a \
an \
the
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = YES
STRIP_FROM_PATH =
STRIP_FROM_INC_PATH =
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = NO
QT_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO
DETAILS_AT_TOP = NO
INHERIT_DOCS = YES
SEPARATE_MEMBER_PAGES = NO
TAB_SIZE = 8
ALIASES =
OPTIMIZE_OUTPUT_FOR_C = YES
OPTIMIZE_OUTPUT_JAVA = NO
BUILTIN_STL_SUPPORT = NO
CPP_CLI_SUPPORT = NO
SIP_SUPPORT = NO
DISTRIBUTE_GROUP_DOC = NO
SUBGROUPING = YES
TYPEDEF_HIDES_STRUCT = NO
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
EXTRACT_ALL = NO
EXTRACT_PRIVATE = NO
EXTRACT_STATIC = NO
EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = NO
EXTRACT_ANON_NSPACES = NO
HIDE_UNDOC_MEMBERS = YES
HIDE_UNDOC_CLASSES = YES
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = NO
CASE_SENSE_NAMES = NO
HIDE_SCOPE_NAMES = NO
SHOW_INCLUDE_FILES = NO
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
SORT_BRIEF_DOCS = NO
SORT_BY_SCOPE_NAME = NO
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES
SHOW_DIRECTORIES = NO
FILE_VERSION_FILTER =
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
QUIET = NO
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = NO
WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE =
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = ../include
INPUT_ENCODING = UTF-8
FILE_PATTERNS = *.h
RECURSIVE = NO
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXCLUDE_SYMBOLS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS = *
EXAMPLE_RECURSIVE = NO
IMAGE_PATH =
INPUT_FILTER =
FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO
#---------------------------------------------------------------------------
# configuration options related to source browsing
#---------------------------------------------------------------------------
SOURCE_BROWSER = NO
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = NO
REFERENCES_RELATION = NO
REFERENCES_LINK_SOURCE = YES
USE_HTAGS = NO
VERBATIM_HEADERS = NO
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
ALPHABETICAL_INDEX = NO
COLS_IN_ALPHA_INDEX = 5
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
GENERATE_HTML = YES
HTML_OUTPUT = html
HTML_FILE_EXTENSION = .html
HTML_HEADER = doxygen.header.html
HTML_FOOTER = doxygen.footer.html
HTML_STYLESHEET =
HTML_ALIGN_MEMBERS = YES
GENERATE_HTMLHELP = NO
HTML_DYNAMIC_SECTIONS = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
BINARY_TOC = NO
TOC_EXPAND = NO
DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = NO
TREEVIEW_WIDTH = 250
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
GENERATE_LATEX = NO
LATEX_OUTPUT = latex
LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex
COMPACT_LATEX = NO
PAPER_TYPE = a4wide
EXTRA_PACKAGES =
LATEX_HEADER =
PDF_HYPERLINKS = NO
USE_PDFLATEX = NO
LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
GENERATE_RTF = NO
RTF_OUTPUT = rtf
COMPACT_RTF = NO
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------
GENERATE_MAN = NO
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_LINKS = NO
#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML = NO
XML_OUTPUT = xml
XML_SCHEMA =
XML_DTD =
XML_PROGRAMLISTING = YES
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
# configuration options related to the Perl module output
#---------------------------------------------------------------------------
GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = NO
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED =
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
# Configuration::additions related to external references
#---------------------------------------------------------------------------
TAGFILES =
GENERATE_TAGFILE =
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
CLASS_DIAGRAMS = NO
MSCGEN_PATH =
HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
GROUP_GRAPHS = YES
UML_LOOK = NO
TEMPLATE_RELATIONS = NO
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES
CALL_GRAPH = NO
CALLER_GRAPH = NO
GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = YES
DOT_IMAGE_FORMAT = png
DOT_PATH =
DOTFILE_DIRS =
DOT_GRAPH_MAX_NODES = 50
MAX_DOT_GRAPH_DEPTH = 1000
DOT_TRANSPARENT = YES
DOT_MULTI_TARGETS = NO
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
#---------------------------------------------------------------------------
# Configuration::additions related to the search engine
#---------------------------------------------------------------------------
SEARCHENGINE = NO
</DIV>
<DIV STYLE="margin-top: 6em;">
<CENTER>
&COPY; Copyright <A HREF="http:/www.akustik.rwth-aachen.de" TARGET="_blank">Institut f&uuml;r Technische Akustik</A>, RWTH-Aachen, 2009-2010
</CENTER>
</DIV>
</BODY>
</HTML>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<TITLE>$projectname - $title</TITLE>
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
<LINK HREF="tabs.css" REL="stylesheet" TYPE="text/css">
<META http-equiv="Content-Type" content="text/html; charset=UTF8">
</HEAD>
<BODY "STYLE="margin: 2em;">
<!--
<CENTER>
<IMG SRC="logo.png" ALT="VABase" BORDER="0" ALIGN="ABSMIDDLE"/>
</CENTER>
-->
<DIV STYLE="margin-top: 3em;">
\ No newline at end of file
doxygen cxx-api.doxyfile
copy logo.png html
REM copy styles.css html
/*
*
* VVV VVV A
* VVV VVV AAA Virtual Acoustics
* VVV VVV AAA Real-time auralisation for virtual reality
* VVV VVV AAA
* VVVVVV AAA (c) Copyright Institut fr Technische Akustik (ITA)
* VVVV AAA RWTH Aachen (http://www.akustik.rwth-aachen.de)
*
* ---------------------------------------------------------------------------------
*
* File: VAAttributable.h
*
* Purpose: Attribute aspect interface
*
* Autor(en): Frank Wefers (Frank.Wefers@akustik.rwth-aachen.de)
*
* ---------------------------------------------------------------------------------
*/
// $Id: $
#ifndef __VABASE_ATTRIBUTABLE_H__
#define __VABASE_ATTRIBUTABLE_H__
#include <VABaseDefinitions.h>
#include <map>
//! Attribute base class
/**
* This is the base class for attributes.
* Currently it only defines the destructor.
*/
class VABASE_API IVAAttribute {
public:
virtual ~IVAAttribute();
};
//! Attributation interface
/**
* This aspect allows attaching/detaching attributes by means of a pointer
* to some instance of a class. The attributes are associated with their owner,
* the instance, which added/removed them. Thereby 1 instance can be associated
* with N attributes. The interface is used, so that other class can extend
* previously created instances of some base class with their own runtime data.
* Example: An HRIR dataset can be attach with some frequency-domain HRTF representation.
*/
class VABASE_API IVAAttributable {
public:
virtual ~IVAAttributable();
virtual void AttachAttribute(void* pOwner, IVAAttribute* pAttr)=0;
virtual void DetachAttribute(void* pOwner)=0;
virtual IVAAttribute* GetAttribute(void* pOwner)=0;
};
//! Attributation interface default implementation
/**
* Implements the IVAAttributable interface using std::map.
* This implementation is not thread-safe! You need to take care yourself!
*/
class VABASE_API CVAAttributableImpl : public IVAAttributable {
public:
virtual ~CVAAttributableImpl();
virtual void AttachAttribute(void* pOwner, IVAAttribute* pAttr);
virtual void DetachAttribute(void* pOwner);
virtual IVAAttribute* GetAttribute(void* pOwner);
private:
typedef std::map<void*, IVAAttribute*> AttrMap;
typedef AttrMap::iterator AttrMapIt;
AttrMap m_mAttr;
};
#endif // __VABASE_ATTRIBUTABLE_H__
/*
*
* VVV VVV A
* VVV VVV AAA Virtual Acoustics
* VVV VVV AAA Real-time auralisation for virtual reality
* VVV VVV AAA
* VVVVVV AAA (c) Copyright Institute of Technical Acoustics (ITA)
* VVVV AAA RWTH Aachen University (http://www.akustik.rwth-aachen.de)
*
* ---------------------------------------------------------------------------------
*
* File: VAAudioSignalSource.h
*
* Purspose: Definitions for audio signal sources
*
* Author(s): Frank Wefers (Frank.Wefers@akustik.rwth-aachen.de)
*
* ---------------------------------------------------------------------------------
*/
// $Id: VAAudioSignalSource.h 4260 2015-11-03 09:04:42Z stienen $
#ifndef __VABASE_AUDIOSIGNALSOURCE_H__
#define __VABASE_AUDIOSIGNALSOURCE_H__
#include <VABaseDefinitions.h>
#include <VAStruct.h>
#include <string>
// Forward declarations
class IVACore;
class ITAStreamInfo;
//! Interface class for audio signal sources
/**
* This purely abstract class defines an interface for
* data source objects that provide audio-streams. It
* is intended to acoustically represent sound emitting
* objects in a virtual scene.
*
* A data source is always monaural (single channel)
* and can only be connected to a single instance of a
* #IVACore during runtime.
*/
class IVAAudioSignalSource
{
public:
//! Type literals
/**
* The type literals describe the type of the audio signal source.
*/
enum
{
VA_SS_AUDIOFILE=0, //!< Sound source is an audio file (from secondary storage)
VA_SS_SEQUENCER, //!< Sound source is a music sequencer (MIDI, DAWs, ...)
VA_SS_DEVICE_INPUT, //!< Sound source is fed through audio device input channel(s)
VA_SS_NETSTREAM, //!< Sound source is a network stream receiver socket
VA_SS_ENGINE, //!< Sound source is an engine
VA_SS_MACHINE, //!< Sound source is a machine
} SoundSourceTypes;
//! Destructor.
virtual ~IVAAudioSignalSource() {};
//! Type ID getter
/**
* \return Returns the ID (one out of #SoundSourceTypes)
*/
virtual int GetType() const=0;
//! Type getter (human readable string)
/**
* \return Returns the type (one out of #SoundSourceTypes as a human readable string)
*/
virtual std::string GetTypeString() const=0;
//! Description getter
/**
* The description formulates a human readable string that describes the
* sound source, i.e. 'Network stream on port 2344'
*
* \return Returns a human readable sound source description
*/
virtual std::string GetDesc() const=0;
//! State getter
/**
* The sound state is for example the percentage of progess
* in an audio file sound source, i.e. 'Playback (10%)'
*
* \return Returns a human readable status of the sound source
*/
virtual std::string GetStateString() const=0;
//! Associated core getter
/**
* Returns the pointer to the associated core (#IVACore) that is
* registered with the sound source. Will return NULL if the source
* has not been associated to a core yet.
* This method is used by the core to assuure that the sound source
* object has not been associated to another core (not allowed).
*
* \return Pointer to the associated #IVACore, NULL if non present
*/
virtual IVACore* GetAssociatedCore() const=0;
//! Gibt die ID zurück (z.B. "adi1")
//virtual std::string GetID() const=0;
//! Gibt zurück ob der Audio-Datenstrom pausiert werden kann
//virtual bool IsStartStoppable() const=0;
//! Gibt zurück ob der Audio-Datenstrom zurückgespult werden werden kann
//virtual bool IsPausable() const=0;
//! Stream block getter
/**
* Returns the data pointer to the next audio block of the sound source.
*
* \param oStreamState Information on stream state
*
* \return Pointer to the audio data array containing data for next block (NULL if no data available)
*
* \note This method is called by the core to fetch data. If the core
* receives a NULL pointer it will be interpreted as silence.
*/
virtual const float* GetStreamBlock(const CVAAudiostreamState* pStreamInfo)=0;
//! Parameter getter interaction hook
virtual CVAStruct GetParameters( const CVAStruct&) const=0;
//! Parameter setter interaction hook
virtual void SetParameters( const CVAStruct& )=0;
private:
//! Register sound source at a core instance
/**
* Calls the audio signal source manager to register this sound source a the given core.
*
* \param pParentCore Pointer to the associated core.
*
* \see #CVAAudioSignalSourceManager
*/
virtual void HandleRegistration(IVACore* pParentCore)=0;
//! Unregister sound source at a core instance
/**
* Calls the audio signal source manager to unregister this sound source a the given core.
* Will inform the core about a new signal source.
*
* \param pParentCore Pointer to the associated core.
*
* \see #CVAAudioSignalSourceManager
*/
virtual void HandleUnregistration(IVACore* pParentCore)=0;
friend class CVAAudioSignalSourceManager;
};
#endif // __VABASE_AUDIOSIGNALSOURCE_H__
This diff is collapsed.
This diff is collapsed.
/*
* ---------------------------------------------------------------------------------
*
* VVV VVV A
* VVV VVV AAA Virtual Acoustics
* VVV VVV AAA Real-time auralisation for virtual reality
* VVV VVV AAA
* VVVVVV AAA (c) Copyright Institut für Technische Akustik (ITA)
* VVVV AAA RWTH Aachen (http://www.akustik.rwth-aachen.de)
*
* ---------------------------------------------------------------------------------
*/
// $Id: VACoreEvent.h 4290 2015-11-16 21:13:24Z stienen $
#ifndef __VABASE_COREEVENT_H__
#define __VABASE_COREEVENT_H__
#include <VABaseDefinitions.h>
#include <string>
// Forwards
class IVACore;
// Helper macro for 64-bit bitmasks
#define VA_BIT64(i) (((const uint64_t) 1)<<i)
//! Data class encapsulating events of a VACore
class VABASE_API CVACoreEvent
{
public:
static const uint64_t VA_COREEVENT_NOTHING = 0;
static const uint64_t VA_COREEVENT_INITIALIZED = VA_BIT64(1);
static const uint64_t VA_COREEVENT_FINALIZED = VA_BIT64(2);
static const uint64_t VA_COREEVENT_PROGRESS_UPDATE = VA_BIT64(3);
static const uint64_t VA_COREEVENT_DIRECTIVITY_LOADED = VA_BIT64(4);
static const uint64_t VA_COREEVENT_DIRECTIVITY_FREED = VA_BIT64(5);
static const uint64_t VA_COREEVENT_SIGNALSOURCE_CREATED = VA_BIT64(6);
static const uint64_t VA_COREEVENT_SIGNALSOURCE_DELETED = VA_BIT64(7);
static const uint64_t VA_COREEVENT_SIGNALSOURCE_REGISTERED = VA_BIT64(8);
static const uint64_t VA_COREEVENT_SIGNALSOURCE_UNREGISTERED = VA_BIT64(9);
static const uint64_t VA_COREEVENT_SIGNALSOURCE_STATE_CHANGED = VA_BIT64(10);
static const uint64_t VA_COREEVENT_SAMPLE_LOADED = VA_BIT64(11);
static const uint64_t VA_COREEVENT_SAMPLE_FREED = VA_BIT64(12);
static const uint64_t VA_COREEVENT_SOUNDSOURCE_CREATED = VA_BIT64(13);
static const uint64_t VA_COREEVENT_SOUNDSOURCE_DELETED = VA_BIT64(14);
static const uint64_t VA_COREEVENT_SOUNDSOURCE_CHANGED_NAME = VA_BIT64(15);
static const uint64_t VA_COREEVENT_SOUNDSOURCE_CHANGED_SIGNALSOURCE = VA_BIT64(16);
static const uint64_t VA_COREEVENT_SOUNDSOURCE_CHANGED_AURALIZATIONMODE = VA_BIT64(17);
static const uint64_t VA_COREEVENT_SOUNDSOURCE_CHANGED_VOLUME = VA_BIT64(18);
static const uint64_t VA_COREEVENT_SOUNDSOURCE_CHANGED_MUTING = VA_BIT64(19);
static const uint64_t VA_COREEVENT_SOUNDSOURCE_CHANGED_POSITIONORIENTATION = VA_BIT64(20);
static const uint64_t VA_COREEVENT_LISTENER_CREATED = VA_BIT64(21);
static const uint64_t VA_COREEVENT_LISTENER_DELETED = VA_BIT64(22);
static const uint64_t VA_COREEVENT_LISTENER_CHANGED_NAME = VA_BIT64(23);
static const uint64_t VA_COREEVENT_LISTENER_CHANGED_AURALIZATIONMODE = VA_BIT64(24);
static const uint64_t VA_COREEVENT_LISTENER_CHANGED_POSITIONORIENTATION = VA_BIT64(25);
static const uint64_t VA_COREEVENT_PORTAL_CHANGED_NAME = VA_BIT64(26);
static const uint64_t VA_COREEVENT_PORTAL_CHANGED_STATE = VA_BIT64(27);
static const uint64_t VA_COREEVENT_ACTIVE_LISTENER_CHANGED = VA_BIT64(28);
static const uint64_t VA_COREEVENT_INPUTGAIN_CHANGED = VA_BIT64(29);
static const uint64_t VA_COREEVENT_INPUTMUTING_CHANGED = VA_BIT64(30);
static const uint64_t VA_COREEVENT_OUTPUTGAIN_CHANGED = VA_BIT64(31);
static const uint64_t VA_COREEVENT_OUTPUTMUTING_CHANGED = VA_BIT64(32);
static const uint64_t VA_COREEVENT_GLOBALAURALIZATIONMODE_CHANGED = VA_BIT64(33);
static const uint64_t VA_COREEVENT_HRIR_LOADED = VA_BIT64(34);
static const uint64_t VA_COREEVENT_HRIR_FREED = VA_BIT64(35);
static const uint64_t VA_COREEVENT_LISTENER_CHANGED_HRIR = VA_BIT64(36);
static const uint64_t VA_COREEVENT_MEASURES_UPDATE = VA_BIT64(37);
static const uint64_t VA_COREEVENT_RESET = VA_BIT64(38); // DO NOT USE AS A KOMBINED EVENT TYPE
static const uint64_t VA_COREEVENT_SOUNDSOURCE_CHANGED_DIRECTIVITY = VA_BIT64(39);
// Nachricht das ein Core gelöscht wird.
static const uint64_t VA_COREEVENT_DESTROY = VA_BIT64(40);
// Selector mask for signal source related events
static const uint64_t VA_COREEVENT_SIGNALSOURCE_EVENT = VA_COREEVENT_SIGNALSOURCE_CREATED |
VA_COREEVENT_SIGNALSOURCE_DELETED |
VA_COREEVENT_SIGNALSOURCE_REGISTERED |
VA_COREEVENT_SIGNALSOURCE_UNREGISTERED |
VA_COREEVENT_SIGNALSOURCE_STATE_CHANGED |
VA_COREEVENT_SOUNDSOURCE_CHANGED_SIGNALSOURCE;
// Selector mask for sound source related events
static const uint64_t VA_COREEVENT_SOUNDSOURCE_EVENT = VA_COREEVENT_SOUNDSOURCE_CREATED |
VA_COREEVENT_SOUNDSOURCE_DELETED |
VA_COREEVENT_SOUNDSOURCE_CHANGED_NAME |
VA_COREEVENT_SOUNDSOURCE_CHANGED_SIGNALSOURCE |
VA_COREEVENT_SOUNDSOURCE_CHANGED_AURALIZATIONMODE |
VA_COREEVENT_SOUNDSOURCE_CHANGED_VOLUME |
VA_COREEVENT_SOUNDSOURCE_CHANGED_MUTING |
VA_COREEVENT_SOUNDSOURCE_CHANGED_POSITIONORIENTATION |
VA_COREEVENT_SOUNDSOURCE_CHANGED_DIRECTIVITY;
// Selector mask for listener related events
static const uint64_t VA_COREEVENT_LISTENER_EVENT = VA_COREEVENT_LISTENER_CREATED |
VA_COREEVENT_LISTENER_DELETED |
VA_COREEVENT_LISTENER_CHANGED_NAME |
VA_COREEVENT_LISTENER_CHANGED_AURALIZATIONMODE |
VA_COREEVENT_LISTENER_CHANGED_HRIR |
VA_COREEVENT_LISTENER_CHANGED_POSITIONORIENTATION;
// Selector mask for portal related events
static const uint64_t VA_COREEVENT_PORTAL_EVENT = VA_COREEVENT_PORTAL_CHANGED_NAME |
VA_COREEVENT_PORTAL_CHANGED_STATE;
// Selector mask for sound source modification event
static const uint64_t VA_COREEVENT_SOUNDSOURCE_MODIFICATION = VA_COREEVENT_SOUNDSOURCE_CHANGED_NAME |
VA_COREEVENT_SOUNDSOURCE_CHANGED_SIGNALSOURCE |
VA_COREEVENT_SOUNDSOURCE_CHANGED_AURALIZATIONMODE |
VA_COREEVENT_SOUNDSOURCE_CHANGED_VOLUME |
VA_COREEVENT_SOUNDSOURCE_CHANGED_MUTING |
VA_COREEVENT_SOUNDSOURCE_CHANGED_POSITIONORIENTATION |
VA_COREEVENT_SOUNDSOURCE_CHANGED_DIRECTIVITY;
// Selector mask for listener modification event
static const uint64_t VA_COREEVENT_LISTENER_MODIFICATION = VA_COREEVENT_LISTENER_CHANGED_NAME |
VA_COREEVENT_LISTENER_CHANGED_AURALIZATIONMODE |
VA_COREEVENT_LISTENER_CHANGED_HRIR |
VA_COREEVENT_LISTENER_CHANGED_POSITIONORIENTATION;
// --= Datenfelder =--
IVACore* pSender;
int iEventID;
uint64_t iEventType;
int iObjectID; // Integer-ID (Standard)
std::string sObjectID; // String-ID (z.B. für Signalquellen)
int iParamID;