I wasn’t feeling very motivated today, so I tried to do as much as I could. I improved the functionality of the PS2X library for my controller, oddly enough, by enabling both of the debug comments. I was testing this with a 8 MHz ATMEGA328, whereas the library was written using an 16MHz ATMEGA328. For my next LCD controller, I’ll use 16MHz I think, but I also think it is good to see if your application can handle just 8MHz, since it will mean 1 less part.
I decided that after I get the LED functions ready, I will sanitize it then publish it as AdvMenu 1.0. I’m not sure if people will be eager to remove music or the LED’s, but I’ll leave them enabled until someone actually is interested in me adding the option of #defining them. This won’t be a library where you add it and your done, no, the menu system is very much integrated into the library, so to edit the menu, you’ll need to modify the library. With this AdvMenu, your entire application is contained within the menu system, so your actual sketch is pretty empty. You’d still need to enable the LCD and call AdvMenu by using MainMenu(lcd);, but that would be it.
When I use this library, I’ll use the menu system to hold the functions I would want to perform, plus any settings I wish to change. I think I’ll still use the 6 buttons (DPad + B + A), since so much can be done with those buttons. But I would also have a wireless controller as well (PS2 or Nunchuck). Trying to find a good cheap PS2 controller, but I might wait until I can compare the PS2 controller to the Nunchuck, with and without wireless). Go!!!