com.blackledge.david.tivo.solitaire
Class TivoFreeCell

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.solitaire.TivoSolitaire
                          extended by com.blackledge.david.tivo.solitaire.TivoFreeCell
All Implemented Interfaces:
com.tivo.hme.bananas.IBananas, com.tivo.hme.interfaces.IApplication, com.tivo.hme.sdk.IHmeEventHandler, com.tivo.hme.sdk.IHmeProtocol

public class TivoFreeCell
extends TivoSolitaire

Variation on TiVo solitaire using FreeCellGame as the game core.

Author:
David Blackledge

Nested Class Summary
 
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.TivoSolitaire
cardsInCursorView, cardViews, FIRST_ROW_Y, goalPlaceHolder, GUIDE_FONT, playPlaceHolder
 
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.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
TivoFreeCell()
           
 
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.TivoSolitaire
bestFit, checkWon, finishAutoWin, getCursorWidth, handleAction, handleKeyRelease, handleKeyRepeat, init, layoutGoalStacks, layoutPlayStacks, makeGoalPlaceHolder, makePlaceHolder, playStackPositionToY, updateCursor
 
Methods inherited from class com.tivo.hme.bananas.BApplication
dispatchEvent, dispatchKeyEvent, getAbove, getBelow, getCurrentScreen, getNormal, getSkin, getStackDepth, handleEvent, play, playSoundForKey, pop, pop, push, push, setSkin
 
Methods inherited from class com.tivo.hme.sdk.Application
acknowledgeIdle, close, destroy, flush, getAppFactory, getContext, getFactory, getFocus, getHeight, getResource, getResources, getRoot, getStream, getWidth, handleActive, handleApplicationError, handleChunk, handleIdle, 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, postEvent, 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, createStream, createText, createTrueType, getApp, getID, parseQuery, 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

TivoFreeCell

public TivoFreeCell()
Method Detail

bestFitGetACardFirstRow

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

firstRowSelectAction

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

gameActionGoalStack

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

gameActionPlayStack

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

gameHandStack

protected CardStack gameHandStack()
Overrides:
gameHandStack in class TivoSolitaire

gameNewGame

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

Overrides:
gameNewGame in class TivoSolitaire

gameInitNewGame

protected void gameInitNewGame()
Overrides:
gameInitNewGame in class TivoSolitaire

afterLayout

protected boolean afterLayout()
Description copied from class: TivoSolitaire
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 TivoSolitaire
Returns:
true if something was changed.

gamePlayHand

protected boolean gamePlayHand()
Overrides:
gamePlayHand in class TivoSolitaire

gamePlayStack

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

gameWonInternal

protected boolean gameWonInternal()
Overrides:
gameWonInternal in class TivoSolitaire

goalStackNumToX

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

viewXToGoalStackNum

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

setUpPlaceholders

protected void setUpPlaceholders()
Overrides:
setUpPlaceholders in class TivoSolitaire

playStackNumToX

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

viewXToPlayStackNum

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

newGameDeck

protected CardDeck newGameDeck()
Overrides:
newGameDeck in class TivoSolitaire

layoutCards

protected void layoutCards()
Overrides:
layoutCards in class TivoSolitaire

getCursorViewAndFocus

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

getCursorBorder

protected int getCursorBorder()
Overrides:
getCursorBorder in class TivoSolitaire

getCardWidth

protected int getCardWidth()
Overrides:
getCardWidth in class TivoSolitaire

getCardHeight

protected int getCardHeight()
Overrides:
getCardHeight in class TivoSolitaire

handleKeyPress

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

getViewOfPlayStackToFocus

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

gameUndo

protected boolean gameUndo()
Overrides:
gameUndo in class TivoSolitaire

canAutoWin

protected boolean canAutoWin()
Overrides:
canAutoWin in class TivoSolitaire

helpScreen

protected void helpScreen()
Overrides:
helpScreen in class TivoSolitaire

getGameTitle

protected String getGameTitle()
Overrides:
getGameTitle in class TivoSolitaire