/** \dir "CONFIG"
 *
 *  \brief This directory contains configuration files for this software.
 *
 */

/** \file
 *  \brief This file includes project-wide for this software.
 *
 *  This file should be included by every file outside the CONFIG package!
 *
 *  \note As always, <project.h> should be included <I>before</I> this file.
 */

#ifndef CONFIG_H
#define CONFIG_H

#ifdef __cplusplus
extern "C" {
#endif

#include "CONFIG_RTOS.h"

//! Value of audio volume represeting the maximum volume possible for this device.
#define CONFIG_KTAG_MAX_AUDIO_VOLUME 30

//! Value of audio volume represeting the minimum volume possible for this device.
#define CONFIG_KTAG_MIN_AUDIO_VOLUME 5

//! Time (in milliseconds) after starting a game before the countdown begins.
#define CONFIG_KTAG_T_DEFAULT_START_GAME_in_ms  (30 * 1000)

//! true if the hardware includes internal (on-chip) NVM.
#define CONFIG__HAS_INTERNAL_NVM true

//! true if the hardware includes an external (I2C) NVM chip.
#define CONFIG__HAS_EXTERNAL_NVM true

//   '||'       ||  '||    '||''|.                               TM
//    ||       ...   ||     ||   ||  ... ..  ... ...  .... ... 
//    ||        ||   ||     ||'''|.   ||' ''  ||  ||   '|.  |  
//    ||        ||   ||     ||    ||  ||      ||  ||    '|.|   
//   .||.....| .||. .||.   .||...|'  .||.     '|..'|.    '|    

#if (defined LIL_BRUV) || (defined LITTLE_BOY_BLUE)
    
//! Number of NeoPixel channels supported.
#define CONFIG_KTAG_N_NEOPIXEL_CHANNELS 1

//! Maximum number of NeoPixels on a single channel.
#define CONFIG_KTAG_MAX_NEOPIXELS_PER_CHANNEL 5



//    /\   /\\   /\   /\\                                 TM
//   (  ) || || (  ) || || |''||''| '||''|.    ..|'''.| 
//     // || ||   // || ||    ||     ||   || .|'     '  
//    //  || ||  //  || ||    ||     ||...|' ||     
//   /(   || || /(   || ||    ||     ||      '|.      . 
//   {___  \\/  {___  \\/    .||.   .||.      ''|....'  
    
#elif (defined TWENTY20TPC)

//! Number of NeoPixel channels supported.
#define CONFIG_KTAG_N_NEOPIXEL_CHANNELS 4

//! Maximum number of NeoPixels on a single channel.
#define CONFIG_KTAG_MAX_NEOPIXELS_PER_CHANNEL 8



#else
    #error "No recognized KTag models defined.  Supported models are: LIL_BRUV, LITTLE_BOY_BLUE, and TWENTY20TPC."
#endif

//! Time between NeoPixel animation frames, in milliseconds.
#define CONFIG_KTAG_ANIMATION_STEP_TIME_IN_ms 10

#ifdef __cplusplus
}
#endif

#endif // CONFIG_H
