sequencer
Classes | Namespaces | Macros | Functions
device_spec.hpp File Reference
#include <any>
#include <cstdint>
#include <ostream>
#include <string>
#include <vector>
Include dependency graph for device_spec.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  sequencer::midi::device_entry_t
 
struct  sequencer::midi::section_t
 

Namespaces

 sequencer::midi
 

Macros

#define SEQUENCER_DEVICE_CC_VALUES
 
#define SEQUENCER_DEVICE_CC_ENTRIES
 
#define X(type, name, is_optional)   type name{};
 
#define X(type, name, is_optional)   os << ( ( is_optional ) ? sub_sep : sep ) << " " << #name ": " << int( entry.name );
 

Functions

std::ostream & sequencer::midi::operator<< (std::ostream &os, const device_entry_t &entry)
 
std::ostream & sequencer::midi::operator<< (std::ostream &os, const section_t &section)
 

Macro Definition Documentation

◆ SEQUENCER_DEVICE_CC_ENTRIES

#define SEQUENCER_DEVICE_CC_ENTRIES
Value:
X( std::string, name, false ) \
X( std::vector< std::string >, str_map, true ) \
X( std::vector< int >, map, true )
#define X(type, name, is_optional)
Definition: device_spec.hpp:32

◆ SEQUENCER_DEVICE_CC_VALUES

#define SEQUENCER_DEVICE_CC_VALUES
Value:
X( std::int16_t, min, false ) \
X( std::int16_t, max, false ) \
X( std::int16_t, value, false ) \
X( std::uint8_t, cc_msb, false ) \
X( std::uint8_t, cc_lsb, true ) \
X( std::uint8_t, decimals, true )
#define X(type, name, is_optional)
Definition: device_spec.hpp:32

◆ X [1/2]

#define X (   type,
  name,
  is_optional 
)    type name{};

◆ X [2/2]

#define X (   type,
  name,
  is_optional 
)    os << ( ( is_optional ) ? sub_sep : sep ) << " " << #name ": " << int( entry.name );