My Marlin configs for Fabrikator Mini and CTC i3 Pro B
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

sound_list.h 1.8KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. /****************
  2. * sound_list.h *
  3. ****************/
  4. /****************************************************************************
  5. * Written By Marcio Teixeira 2018 - Aleph Objects, Inc. *
  6. * *
  7. * This program is free software: you can redistribute it and/or modify *
  8. * it under the terms of the GNU General Public License as published by *
  9. * the Free Software Foundation, either version 3 of the License, or *
  10. * (at your option) any later version. *
  11. * *
  12. * This program is distributed in the hope that it will be useful, *
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of *
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
  15. * GNU General Public License for more details. *
  16. * *
  17. * To view a copy of the GNU General Public License, go to the following *
  18. * location: <http://www.gnu.org/licenses/>. *
  19. ****************************************************************************/
  20. #pragma once
  21. class SoundList {
  22. private:
  23. static PROGMEM const struct list_t {
  24. const char *const PROGMEM name;
  25. const FTDI::SoundPlayer::sound_t* data;
  26. } list[];
  27. public:
  28. static const uint8_t n;
  29. static inline const char* name(uint8_t val) {
  30. return (const char* ) pgm_read_ptr_near(&list[val].name);
  31. }
  32. static inline FTDI::SoundPlayer::sound_t* data(uint8_t val) {
  33. return (FTDI::SoundPlayer::sound_t*) pgm_read_ptr_near(&list[val].data);
  34. }
  35. };