/*************************************************************************** * __________ __ ___. * Open \______ \ ____ ____ | | _\_ |__ _______ ___ * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ * \/ \/ \/ \/ \/ * $Id$ * * Copyright (C) 2004-2005 dionoea (Antoine Cellerier) * * All files in this archive are subject to the GNU General Public License. * See the file COPYING in the source tree root for full license agreement. * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY * KIND, either express or implied. * ****************************************************************************/ /***************************************************************************** Solitaire by dionoea Graphics & Fix Bugs by Ben Basha use arrows to move the cursor use ON to select cards, move cards, reveal hidden cards, ... use PLAY to move a card from the remains' stack to the top of the cursor use F1 to put card under cursor on one of the 4 final stacks use F2 to un-select card if a card was selected, else draw 3 new cards out of the remains' stack use F3 to put card on top of the remains' stack on one of the 4 final stacks *****************************************************************************/ #include "plugin.h" #include "configfile.h" #include "button.h" #include "lcd.h" #ifdef HAVE_LCD_BITMAP PLUGIN_HEADER /* here is a global api struct pointer. while not strictly necessary, it's nice not to have to pass the api pointer in all function calls in the plugin */ static struct plugin_api* rb; #define min(a,b) (a