com.blackledge.david.tivo.solitaire
Class TivoFreeCellMulti

java.lang.Object
  extended by com.tivo.hme.sdk.HmeObject
      extended by com.tivo.hme.sdk.Resource
          extended by com.tivo.hme.sdk.StreamResource
              extended by com.tivo.hme.sdk.Application
                  extended by com.tivo.hme.bananas.BApplication
                      extended by com.blackledge.david.tivo.multitasker.MultiTaskerApplication
                          extended by com.blackledge.david.tivo.solitaire.TivoSolitaireMulti
                              extended by com.blackledge.david.tivo.solitaire.TivoFreeCellMulti
All Implemented Interfaces:
LocalOptionProvider, com.tivo.hme.bananas.IBananas, com.tivo.hme.interfaces.IApplication, com.tivo.hme.sdk.IHmeEventHandler, com.tivo.hme.sdk.IHmeProtocol

public class TivoFreeCellMulti
extends TivoSolitaireMulti

Variation on TiVo solitaire using FreeCellGame as the game core.

Author:
David Blackledge

Nested Class Summary
 
Nested classes/interfaces inherited from class com.blackledge.david.tivo.multitasker.MultiTaskerApplication
MultiTaskerApplication.CallbackChain, MultiTaskerApplication.ICallback
 
Nested classes/interfaces inherited from class com.tivo.hme.sdk.Resource
com.tivo.hme.sdk.Resource.FontResource
 
Field Summary
static String TITLE
           
static String URI
           
 
Fields inherited from class com.blackledge.david.tivo.solitaire.TivoSolitaireMulti
cardsInCursorView, cardViews, FIRST_ROW_Y, goalPlaceHolder, GUIDE_FONT, OPTION_CARD_BACK_IMAGE, OPTION_CARD_CLUB_IMAGE, OPTION_CARD_DIAMOND_IMAGE, OPTION_CARD_HEART_IMAGE, OPTION_CARD_SPADE_IMAGE, playPlaceHolder
 
Fields inherited from class com.blackledge.david.tivo.multitasker.MultiTaskerApplication
LIMIT_TEXT_RENDER_HEIGHT, LIMIT_TEXT_RENDER_WIDTH, OPTION_AUDIO_CLASS, OPTION_AUDIO_HANDLE_CONTROLS, OPTION_AUDIO_HANDLE_CONTROLS_NEXT, OPTION_AUDIO_HANDLE_CONTROLS_PAUSE, OPTION_AUDIO_ON, OPTION_AUDIO_RANDOM, OPTION_AUDIO_STATUS_SHOW, OPTION_BACKGROUND_IMAGE_CLASS, OPTION_BACKGROUND_IMAGE_DELAY, OPTION_BACKGROUND_IMAGE_HANDLE_CONTROLS, OPTION_BACKGROUND_IMAGE_HANDLE_CONTROLS_NEXT, OPTION_BACKGROUND_IMAGE_HANDLE_CONTROLS_PAUSE, OPTION_BACKGROUND_IMAGE_HANDLE_CONTROLS_PUPD, OPTION_BACKGROUND_IMAGE_HISTORY, OPTION_BACKGROUND_IMAGE_ON, OPTION_BACKGROUND_IMAGE_PLANE, OPTION_BACKGROUND_IMAGE_RANDOM, OPTION_BACKGROUND_IMAGE_SIZE, OPTION_BACKGROUND_IMAGE_TRANSITION, OPTION_BACKGROUND_IMAGE_TRANSITION_DELAY, OPTION_BRAND_CLASS, OPTION_BRAND_HEIGHT, OPTION_BRAND_ON, OPTION_BRAND_TIME, OPTION_BRAND_TRANSITION_TIME, OPTION_BRAND_TRANSPARENCY, OPTION_BRAND_WIDTH, OPTION_HANDLE_CONTROLS_CLEAR, OPTION_IDLE, OPTION_LOCAL_FILE_ROOT, OPTION_MEDIA_KEY, OPTION_TICKER_TAPE_BACKGROUND, OPTION_TICKER_TAPE_CLASS, OPTION_TICKER_TAPE_FONT_FAMILY, OPTION_TICKER_TAPE_FOREGROUND, OPTION_TICKER_TAPE_HANDLE_CONTROLS, OPTION_TICKER_TAPE_HANDLE_CONTROLS_NEXT, OPTION_TICKER_TAPE_HANDLE_CONTROLS_PAUSE, OPTION_TICKER_TAPE_HANDLE_CONTROLS_RWFF, OPTION_TICKER_TAPE_HEADING, OPTION_TICKER_TAPE_HEIGHT, OPTION_TICKER_TAPE_ON, OPTION_TICKER_TAPE_RANDOM, OPTION_TICKER_TAPE_TIME, OPTION_TICKER_TAPE_TRANSPARENCY, OPTION_ZIP_CODE, RSRC_STATUS_BUFFER_OVERFLOW, RSRC_STATUS_END
 
Fields inherited from class com.tivo.hme.bananas.BApplication
FADE_ANIM, SLIDE_ANIM
 
Fields inherited from class com.tivo.hme.sdk.Resource
EVT_RSRC_STATUS, status
 
Fields inherited from interface com.blackledge.david.tivo.multitasker.LocalOptionProvider
TYPE_BOOLEAN, TYPE_CLASS, TYPE_COLOR, TYPE_FILE, TYPE_FLOAT, TYPE_FOLDER, TYPE_IMAGE, TYPE_INTEGER, TYPE_STRING, TYPE_URL
 
Fields inherited from interface com.tivo.hme.bananas.IBananas
A_ANCHOR_MASK, A_BOTTOM, A_CENTER, A_DELTA_MASK, A_LEFT, A_NEGATIVE_MASK, A_RIGHT, A_TOP, ARROW_NAMES, BAR_DEFAULT, BAR_HANG, BEVT_ACTION, BEVT_FOCUS, BEVT_SCREEN_ENTER, BEVT_SCREEN_EXIT, H_BAR, H_DOWN, H_KEYBOARD, H_LEFT, H_PAGEDOWN, H_PAGEUP, H_RIGHT, H_UP, H_VIS_FALSE, H_VIS_FOCUS, H_VIS_TRUE, TRANSITION_FADE, TRANSITION_LEFT, TRANSITION_NONE
 
Fields inherited from interface com.tivo.hme.sdk.IHmeProtocol
APP_ERROR_BAD_ARGUMENT, APP_ERROR_BAD_COMMAND, APP_ERROR_OTHER, APP_ERROR_OUT_OF_MEMORY, APP_ERROR_RSRC_NOT_FOUND, APP_ERROR_UNKNOWN, APP_ERROR_VIEW_NOT_FOUND, CMD_RECEIVER_ACKNOWLEDGE_IDLE, CMD_RECEIVER_TRANSITION, CMD_RESERVED, CMD_RSRC_ADD_ANIM, CMD_RSRC_ADD_COLOR, CMD_RSRC_ADD_FONT, CMD_RSRC_ADD_IMAGE, CMD_RSRC_ADD_SOUND, CMD_RSRC_ADD_STREAM, CMD_RSRC_ADD_TEXT, CMD_RSRC_ADD_TTF, CMD_RSRC_CLOSE, CMD_RSRC_REMOVE, CMD_RSRC_SEND_EVENT, CMD_RSRC_SET_ACTIVE, CMD_RSRC_SET_POSITION, CMD_RSRC_SET_SPEED, CMD_VIEW_ADD, CMD_VIEW_REMOVE, CMD_VIEW_SET_BOUNDS, CMD_VIEW_SET_PAINTING, CMD_VIEW_SET_RESOURCE, CMD_VIEW_SET_SCALE, CMD_VIEW_SET_TRANSLATION, CMD_VIEW_SET_TRANSPARENCY, CMD_VIEW_SET_VISIBLE, EVT_APP_INFO, EVT_DEVICE_INFO, EVT_FONT_INFO, EVT_IDLE, EVT_INIT_INFO, EVT_KEY, EVT_RESERVED, EVT_RSRC_INFO, FONT_BOLD, FONT_BOLDITALIC, FONT_ITALIC, FONT_METRICS_BASIC, FONT_METRICS_GLYPH, FONT_PLAIN, ID_ALERT_SOUND, ID_BONK_SOUND, ID_CLIENT, ID_CLIENT_PRE_0_38, ID_DEFAULT_TTF, ID_DESELECT_SOUND, ID_ERROR_SOUND, ID_LEFT_SOUND, ID_NULL, ID_PAGEDOWN_SOUND, ID_PAGEUP_SOUND, ID_RESERVED, ID_RIGHT_SOUND, ID_ROOT_STREAM, ID_ROOT_VIEW, ID_SELECT_SOUND, ID_SLOWDOWN1_SOUND, ID_SPEEDUP1_SOUND, ID_SPEEDUP2_SOUND, ID_SPEEDUP3_SOUND, ID_SYSTEM_TTF, ID_THUMBSDOWN_SOUND, ID_THUMBSUP_SOUND, ID_TIVO_SOUND, ID_UPDOWN_SOUND, KEY_ADVANCE, KEY_CHANNELDOWN, KEY_CHANNELUP, KEY_CLEAR, KEY_DISPLAY, KEY_DOWN, KEY_ENTER, KEY_FORWARD, KEY_INFO, KEY_LEFT, KEY_LIVETV, KEY_MUTE, KEY_NUM0, KEY_NUM1, KEY_NUM2, KEY_NUM3, KEY_NUM4, KEY_NUM5, KEY_NUM6, KEY_NUM7, KEY_NUM8, KEY_NUM9, KEY_OPT_ANGLE, KEY_OPT_ASPECT, KEY_OPT_DVD, KEY_OPT_EXIT, KEY_OPT_GUIDE, KEY_OPT_LIST, KEY_OPT_MENU, KEY_OPT_PIP, KEY_OPT_STOP, KEY_OPT_TOP_MENU, KEY_OPT_WINDOW, KEY_PAUSE, KEY_PLAY, KEY_PRESS, KEY_RECORD, KEY_RELEASE, KEY_REPEAT, KEY_REPLAY, KEY_REVERSE, KEY_RIGHT, KEY_SELECT, KEY_SLOW, KEY_THUMBSDOWN, KEY_THUMBSUP, KEY_TIVO, KEY_UNKNOWN, KEY_UP, KEY_VOLUMEDOWN, KEY_VOLUMEUP, LIMIT_CMD_NBYTES, LIMIT_EVENT_NBYTES, LIMIT_FONT_POINT_SIZE, LIMIT_IMAGE_HEIGHT, LIMIT_IMAGE_NBYTES, LIMIT_IMAGE_WIDTH, LIMIT_SOUND_NBYTES, LIMIT_TEXT_NBYTES, LIMIT_URL_NBYTES, LIMIT_VIEW_DEPTH, MAGIC, RSRC_ERROR_BAD_ARGUMENT, RSRC_ERROR_BAD_DATA, RSRC_ERROR_BAD_MAGIC, RSRC_ERROR_BAD_STATE, RSRC_ERROR_BAD_VERSION, RSRC_ERROR_CONNECT_FAILED, RSRC_ERROR_CONNECTION_LOST, RSRC_ERROR_CONNECTION_TIMEOUT, RSRC_ERROR_HOST_NOT_FOUND, RSRC_ERROR_INCOMPATIBLE, RSRC_ERROR_NOT_SUPPORTED, RSRC_ERROR_OTHER, RSRC_ERROR_UNKNOWN, RSRC_HALIGN_CENTER, RSRC_HALIGN_LEFT, RSRC_HALIGN_MASK, RSRC_HALIGN_RIGHT, RSRC_IMAGE_BESTFIT, RSRC_IMAGE_HFIT, RSRC_IMAGE_MASK, RSRC_IMAGE_VFIT, RSRC_STATUS_CLOSED, RSRC_STATUS_COMPLETE, RSRC_STATUS_CONNECTED, RSRC_STATUS_CONNECTING, RSRC_STATUS_ERROR, RSRC_STATUS_LOADING, RSRC_STATUS_PAUSED, RSRC_STATUS_PLAYING, RSRC_STATUS_READY, RSRC_STATUS_SEEKING, RSRC_STATUS_UNKNOWN, RSRC_TEXT_MASK, RSRC_TEXT_WRAP, RSRC_VALIGN_BOTTOM, RSRC_VALIGN_CENTER, RSRC_VALIGN_MASK, RSRC_VALIGN_TOP, SAFE_ACTION_H, SAFE_ACTION_V, SAFE_TITLE_H, SAFE_TITLE_V, TRANSITION_BACK, TRANSITION_FORWARD, TRANSITION_TELEPORT, VERSION, VERSION_0_38, VERSION_0_40, VERSION_MAJOR, VERSION_MINOR, VERSION_STRING
 
Constructor Summary
TivoFreeCellMulti()
           
 
Method Summary
protected  boolean afterLayout()
          Whatever you might have to do after layout of a completed move e.g.
protected  boolean bestFitGetACardFirstRow(com.tivo.hme.bananas.BView view)
           
protected  boolean canAutoWin()
           
protected  void firstRowSelectAction(com.tivo.hme.bananas.BView view)
           
protected  boolean gameActionGoalStack(int goalStackNum)
           
protected  boolean gameActionPlayStack(int i, int j)
           
protected  CardStack gameHandStack()
           
protected  void gameInitNewGame()
           
protected  void gameNewGame()
          game.newGame() and focus on right place.
protected  boolean gamePlayHand()
           
protected  CardStack[] gamePlayStack()
           
protected  boolean gameUndo()
           
protected  boolean gameWonInternal()
           
protected  int getCardHeight()
           
protected  int getCardWidth()
           
protected  int getCursorBorder()
           
protected  com.tivo.hme.bananas.BView getCursorViewAndFocus(com.tivo.hme.bananas.BView cardParent)
           
protected  String getGameTitle()
           
protected  com.tivo.hme.bananas.BView getViewOfPlayStackToFocus(CardStack[] gameStack, CardStack playStack)
           
protected  int goalStackNumToX(int j)
           
 boolean handleKeyPress(int code, long rawcode)
           
protected  void helpScreen()
           
protected  void layoutCards()
           
protected  CardDeck newGameDeck()
           
protected  int playStackNumToX(int j)
           
protected  void setUpPlaceholders()
           
protected  int viewXToGoalStackNum(int x)
           
protected  int viewXToPlayStackNum(int x)
           
 
Methods inherited from class com.blackledge.david.tivo.solitaire.TivoSolitaireMulti
bestFit, checkWon, finishAutoWin, getCursorWidth, getLocalOptionPreferences, getOptionDefault, getOptionOverride, handleAction, handleKeyRelease, handleKeyRepeat, init, layoutGoalStacks, layoutPlayStacks, makeGoalPlaceHolder, makePlaceHolder, playStackPositionToY, updateCursor
 
Methods inherited from class com.blackledge.david.tivo.multitasker.MultiTaskerApplication
addCallback, cancelCallback, createImageStream, createStream, destroy, fixPoorUrl, getAppFactory, getAudioView, getBackgroundView, getBooleanOption, getBooleanOption, getBrandView, getColorOption, getColorOption, getCurrentAudioStream, getCurrentImage, getFloatOption, getFloatOption, getHostAddress, getIntegerOption, getIntegerOption, getLocalOptionDefault, getLocalOptionNames, getLocalRoot, getOption, getOption, getOptionSetting, getScaledImageByHeight, getScaledImageByWidth, getTickerView, getUrlContent, handleApplicationError, handleEvent, handleIdle, handleMultiStreamSource, handleRedirect, hideAudio, hideBackgroundImage, hideBrand, hideTickerTape, openMultiTaskerMenu, parseQuery, postEvent, showAudio, showBackgroundImage, showBrand, showTickerTape, silenceAudio, toggleAudio, toggleBackgroundImage, toggleBrand, toggleTickerTape, validUrl
 
Methods inherited from class com.tivo.hme.bananas.BApplication
dispatchEvent, dispatchKeyEvent, getAbove, getBelow, getCurrentScreen, getNormal, getSkin, getStackDepth, play, playSoundForKey, pop, pop, push, push, setSkin
 
Methods inherited from class com.tivo.hme.sdk.Application
acknowledgeIdle, close, flush, getContext, getFactory, getFocus, getHeight, getResource, getResources, getRoot, getStream, getWidth, handleActive, handleApplicationError, handleChunk, handlePing, isAChunk, isApplicationClosing, log, open, setContext, setFactory, setFocus, transitionBack, transitionForward
 
Methods inherited from class com.tivo.hme.sdk.StreamResource
getContentType, getSpeed, getStatus, getURI, isPaused, pause, play, setPosition, setSpeed, toString
 
Methods inherited from class com.tivo.hme.sdk.Resource
addHandler, dump, finalize, remove, removeHandler, sendEvent, sendEvent, setActive
 
Methods inherited from class com.tivo.hme.sdk.HmeObject
createAnimation, createAnimation, createColor, createFont, createFont, createImage, createImage, createImage, createImage, createSound, createSound, createSound, createStream, createStream, createText, createTrueType, getApp, getID, rsrcFlagsToString, toString
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

TITLE

public static final String TITLE
See Also:
Constant Field Values

URI

public static final String URI
See Also:
Constant Field Values
Constructor Detail

TivoFreeCellMulti

public TivoFreeCellMulti()
Method Detail

bestFitGetACardFirstRow

protected boolean bestFitGetACardFirstRow(com.tivo.hme.bananas.BView view)
Overrides:
bestFitGetACardFirstRow in class TivoSolitaireMulti

firstRowSelectAction

protected void firstRowSelectAction(com.tivo.hme.bananas.BView view)
Overrides:
firstRowSelectAction in class TivoSolitaireMulti

gameActionGoalStack

protected boolean gameActionGoalStack(int goalStackNum)
Overrides:
gameActionGoalStack in class TivoSolitaireMulti

gameActionPlayStack

protected boolean gameActionPlayStack(int i,
                                      int j)
Overrides:
gameActionPlayStack in class TivoSolitaireMulti

gameHandStack

protected CardStack gameHandStack()
Overrides:
gameHandStack in class TivoSolitaireMulti

gameNewGame

protected void gameNewGame()
Description copied from class: TivoSolitaireMulti
game.newGame() and focus on right place.

Overrides:
gameNewGame in class TivoSolitaireMulti

gameInitNewGame

protected void gameInitNewGame()
Overrides:
gameInitNewGame in class TivoSolitaireMulti

afterLayout

protected boolean afterLayout()
Description copied from class: TivoSolitaireMulti
Whatever you might have to do after layout of a completed move e.g. in FreeCell, it's time to play all the obvious moves automatically.

Overrides:
afterLayout in class TivoSolitaireMulti
Returns:
true if something was changed.

gamePlayHand

protected boolean gamePlayHand()
Overrides:
gamePlayHand in class TivoSolitaireMulti

gamePlayStack

protected CardStack[] gamePlayStack()
Overrides:
gamePlayStack in class TivoSolitaireMulti

gameWonInternal

protected boolean gameWonInternal()
Overrides:
gameWonInternal in class TivoSolitaireMulti

goalStackNumToX

protected int goalStackNumToX(int j)
Overrides:
goalStackNumToX in class TivoSolitaireMulti

viewXToGoalStackNum

protected int viewXToGoalStackNum(int x)
Overrides:
viewXToGoalStackNum in class TivoSolitaireMulti

setUpPlaceholders

protected void setUpPlaceholders()
Overrides:
setUpPlaceholders in class TivoSolitaireMulti

playStackNumToX

protected int playStackNumToX(int j)
Overrides:
playStackNumToX in class TivoSolitaireMulti

viewXToPlayStackNum

protected int viewXToPlayStackNum(int x)
Overrides:
viewXToPlayStackNum in class TivoSolitaireMulti

newGameDeck

protected CardDeck newGameDeck()
Overrides:
newGameDeck in class TivoSolitaireMulti

layoutCards

protected void layoutCards()
Overrides:
layoutCards in class TivoSolitaireMulti

getCursorViewAndFocus

protected com.tivo.hme.bananas.BView getCursorViewAndFocus(com.tivo.hme.bananas.BView cardParent)
Overrides:
getCursorViewAndFocus in class TivoSolitaireMulti

getCursorBorder

protected int getCursorBorder()
Overrides:
getCursorBorder in class TivoSolitaireMulti

getCardWidth

protected int getCardWidth()
Overrides:
getCardWidth in class TivoSolitaireMulti

getCardHeight

protected int getCardHeight()
Overrides:
getCardHeight in class TivoSolitaireMulti

handleKeyPress

public boolean handleKeyPress(int code,
                              long rawcode)
Overrides:
handleKeyPress in class TivoSolitaireMulti

getViewOfPlayStackToFocus

protected com.tivo.hme.bananas.BView getViewOfPlayStackToFocus(CardStack[] gameStack,
                                                               CardStack playStack)
Overrides:
getViewOfPlayStackToFocus in class TivoSolitaireMulti

gameUndo

protected boolean gameUndo()
Overrides:
gameUndo in class TivoSolitaireMulti

canAutoWin

protected boolean canAutoWin()
Overrides:
canAutoWin in class TivoSolitaireMulti

helpScreen

protected void helpScreen()
Overrides:
helpScreen in class TivoSolitaireMulti

getGameTitle

protected String getGameTitle()
Overrides:
getGameTitle in class TivoSolitaireMulti