Control Surface  1.2.0
MIDI Control Surface library for Arduino
Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
BitArray< N > Class Template Reference

A class for arrays of bits. More...

#include <AH/Containers/BitArray.hpp>

+ Collaboration diagram for BitArray< N >:

Public Member Functions

bool get (uint8_t bitIndex) const
 Get the value of the given bit. More...
 
void set (uint8_t bitIndex)
 Set the value of the given bit to 1. More...
 
void clear (uint8_t bitIndex)
 Clear the value of the given bit to 0. More...
 
void set (uint8_t bitIndex, bool state)
 Set the value of the given bit to the given state. More...
 
uint8_t safeIndex (uint8_t byteIndex) const
 Check the given byte index, and return it if it is within the bounds of the array, otherwise, throw an error, and return the last valid index. More...
 
uint8_t getByte (uint8_t byteIndex) const
 Get the byte at the given index. More...
 
uint8_t getBufferLength () const
 Get the buffer length in bytes. More...
 

Private Member Functions

uint8_t getBufferIndex (uint8_t bitIndex) const
 
uint8_t getBufferBit (uint8_t bitIndex) const
 
uint8_t getBufferMask (uint8_t bitIndex) const
 

Private Attributes

uint8_t buffer [bufferLength] = {}
 

Static Private Attributes

constexpr static uint8_t bufferLength = (uint8_t)((N + 7) / 8)
 

Detailed Description

template<uint8_t N>
class AH::BitArray< N >

A class for arrays of bits.

Template Parameters
NThe number of bits.

Definition at line 25 of file BitArray.hpp.

Member Function Documentation

◆ get()

bool get ( uint8_t  bitIndex) const
inline

Get the value of the given bit.

Parameters
bitIndexThe (zero-based) index of the bit to read.

Definition at line 33 of file BitArray.hpp.

◆ set() [1/2]

void set ( uint8_t  bitIndex)
inline

Set the value of the given bit to 1.

Parameters
bitIndexThe (zero-based) index of the bit to set.

Definition at line 43 of file BitArray.hpp.

◆ clear()

void clear ( uint8_t  bitIndex)
inline

Clear the value of the given bit to 0.

Parameters
bitIndexThe (zero-based) index of the bit to clear.

Definition at line 53 of file BitArray.hpp.

◆ set() [2/2]

void set ( uint8_t  bitIndex,
bool  state 
)
inline

Set the value of the given bit to the given state.

Parameters
bitIndexThe (zero-based) index of the bit to set.
stateThe value to set the bit to.

Definition at line 65 of file BitArray.hpp.

◆ safeIndex()

uint8_t safeIndex ( uint8_t  byteIndex) const
inline

Check the given byte index, and return it if it is within the bounds of the array, otherwise, throw an error, and return the last valid index.

Parameters
byteIndexThe index to check.

Definition at line 77 of file BitArray.hpp.

◆ getByte()

uint8_t getByte ( uint8_t  byteIndex) const
inline

Get the byte at the given index.

This function can be used to quickly access all of the bits, to send them out to a shift register, for example.

Note
No bounds checking is performed.
Parameters
byteIndexThe index of the byte within the array.

Definition at line 99 of file BitArray.hpp.

◆ getBufferLength()

uint8_t getBufferLength ( ) const
inline

Get the buffer length in bytes.

Definition at line 107 of file BitArray.hpp.

◆ getBufferIndex()

uint8_t getBufferIndex ( uint8_t  bitIndex) const
inlineprivate

Definition at line 110 of file BitArray.hpp.

◆ getBufferBit()

uint8_t getBufferBit ( uint8_t  bitIndex) const
inlineprivate

Definition at line 113 of file BitArray.hpp.

◆ getBufferMask()

uint8_t getBufferMask ( uint8_t  bitIndex) const
inlineprivate

Definition at line 114 of file BitArray.hpp.

Member Data Documentation

◆ bufferLength

constexpr static uint8_t bufferLength = (uint8_t)((N + 7) / 8)
staticconstexprprivate

Definition at line 118 of file BitArray.hpp.

◆ buffer

uint8_t buffer[bufferLength] = {}
private

Definition at line 119 of file BitArray.hpp.


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