7#include <unordered_map> 
   58  const std::unordered_map<std::string_view, char> special_keys = {
 
   74  auto reportError = [](
const std::string& field, 
const std::string_view& key)
 
   76    std::cerr << 
"** Error: ⚠  Unsupported or empty keybind '" << key << 
"' detected for field '" 
   77              << field << 
"'. Modify or remove that keybind field. **" << std::endl;
 
   78    std::exit(EXIT_FAILURE); 
 
   92  auto handle_special_keys = [&](
const std::string_view& key, 
const std::string& field) -> 
char 
   96      reportError(field, key); 
 
   98    if (special_keys.find(key) != special_keys.end())
 
  100      return special_keys.at(key); 
 
  106    reportError(field, key); 
 
  111  const std::unordered_map<std::string, char*> field_map = {
 
  120    {
"vol_up", &keybinds.
vol_up},
 
  143    std::cout << 
"[KEYBINDS] Parsing keybinds..." << std::endl;
 
  147  for (
const auto& [field, member_ptr] : field_map)
 
  153      std::cout << 
"[KEYBINDS] Parsing keybind for " << field << 
": " << key << std::endl;
 
  156    *member_ptr = handle_special_keys(key, field); 
 
  160      std::cout << 
"[KEYBINDS] Mapped keybind for " << field
 
  161                << 
" to ASCII value: " << 
static_cast<int>(*member_ptr) << std::endl;
 
  167    std::cout << 
"[KEYBINDS] Keybind parsing complete! Moving on..." << std::endl;
 
 
auto parseKeybinds() -> Keybinds
Parses the keybinds from the TOML configuration.
Definition keymaps.hpp:53
 
Struct to hold keybinding mappings.
Definition keymaps.hpp:15
 
char goto_main_screen
Definition keymaps.hpp:31
 
char toggle_audio_devices
Definition keymaps.hpp:39
 
char show_help
Definition keymaps.hpp:19
 
char search_item_next
Definition keymaps.hpp:41
 
char add_artists_songs_to_queue
Definition keymaps.hpp:34
 
char scroll_up
Definition keymaps.hpp:16
 
char seek_ahead_5
Definition keymaps.hpp:28
 
char toggle_mute
Definition keymaps.hpp:26
 
char search_menu
Definition keymaps.hpp:40
 
char replay_song
Definition keymaps.hpp:32
 
char vol_down
Definition keymaps.hpp:25
 
char view_song_queue
Definition keymaps.hpp:37
 
char view_lyrics
Definition keymaps.hpp:30
 
char play_song_prev
Definition keymaps.hpp:23
 
char search_item_prev
Definition keymaps.hpp:42
 
char seek_behind_5
Definition keymaps.hpp:29
 
char scroll_down
Definition keymaps.hpp:17
 
char play_song_next
Definition keymaps.hpp:22
 
char toggle_play
Definition keymaps.hpp:20
 
char remove_song_from_queue
Definition keymaps.hpp:35
 
char play_this_song_next
Definition keymaps.hpp:36
 
char toggle_focus
Definition keymaps.hpp:18
 
char vol_up
Definition keymaps.hpp:24
 
char add_song_to_queue
Definition keymaps.hpp:33
 
char quit_app
Definition keymaps.hpp:27
 
char view_current_song_info
Definition keymaps.hpp:38
 
char play_song
Definition keymaps.hpp:21
 
#define PARENT_DBG
Definition toml_parser.hpp:25
 
#define PARENT_DBG_FIELD_KEYBINDS_PARSER_LOG
Definition toml_parser.hpp:29
 
#define PARENT_KEYBINDS
Definition toml_parser.hpp:32
 
auto parseTOMLFieldBool(const string &parent, const string &field) -> bool
Definition toml_parser.hpp:202
 
auto parseTOMLField(string parent, string field) -> string_view
Parses a string field from the TOML configuration.
Definition toml_parser.hpp:144