Beginning TiVo Programming


With TiVo Home Media Engine SDK you can build new and exciting applications for broadband-connected Series 2 devices. In this book you will find numerous real-world examples to help you deploy your own applications to TiVo quickly and easily. The authors describe software development for the TiVo platform, covering the basic building blocks of application design. You’ll discover how to create advanced applications using TiVo’s component library and learn how to package your final product for others to integrate ...

See more details below
$35.89 price
(Save 10%)$39.99 List Price
Other sellers (Paperback)
  • All (12) from $1.99   
  • New (4) from $4.98   
  • Used (8) from $1.99   
Sending request ...


With TiVo Home Media Engine SDK you can build new and exciting applications for broadband-connected Series 2 devices. In this book you will find numerous real-world examples to help you deploy your own applications to TiVo quickly and easily. The authors describe software development for the TiVo platform, covering the basic building blocks of application design. You’ll discover how to create advanced applications using TiVo’s component library and learn how to package your final product for others to integrate into their TiVo experience.

Read More Show Less

Product Details

  • ISBN-13: 9780470054277
  • Publisher: Wiley
  • Publication date: 2/12/2007
  • Series: Wrox Beginning Guides
  • Edition number: 1
  • Pages: 298
  • Product dimensions: 7.40 (w) x 9.10 (h) x 0.80 (d)

Meet the Author

John Brosnan co-wrote the TiVo HME Developer Challenge grand-prize winning application, AudioFaucet. He has been involved in HME applications for other companies and brings a strong background in Java. John has been a Java programmer for the past five years, primarily in the telecom industry, writing web enterprise applications.

Kyle Copeland co-wrote the TiVo HME Developer Challenge grand-prize winning application, AudioFaucet, and has been involved in the ongoing development for AudioFaucet. Working in the cable industry for the past ten years developing products for consumers nationwide has given Kyle great insight into the customer experience, and a rich background in developing products and services for consumers.

Read More Show Less

Table of Contents

Acknowledgments     ix
Introduction     xxi
Introduction to TiVo Applications     1
The TiVo Platform     1
Brief History of Software Development for TiVo     2
Home Media Option and TiVo Desktop     3
TiVo Desktop as a Server     4
HMO Protocol     6
HMO Applications     7
TiVo Server-Hosted Applications     7
Desktop Applications     7
Home Media Engine     8
Software Development Kit     10
How HME Interacts with TiVo     11
What HME Is and Isn't     11
Summary     12
Questions     12
Getting the Tivo Box Ready for HME     13
TiVo Requirements for HME     13
Supported TiVo Boxes     13
Series1 Standalone     14
Series2 Standalone     15
DirectTV Integrated TIVo (DirectTiVo)     15
Series3     16
Active TiVo Service Subscription     17
Checking the Version of TiVo Software     17
Forcing a Connection to the TiVo Service     18
The Household Network     19
Wired vs. Wireless     20
NetworkAdapters     20
Wired Adapters     20
Wireless Adapters     21
Adding TiVo Boxes to a Household Network     21
Setting up Wired Access     21
Setting up Wireless Access     22
TCP/IP Settings     22
Music, Photos, & More     23
Summary     24
Questions     25
Your Development Environment     27
Required Software     27
Java SDK     28
Windows     28
Mac OS X     29
Linux and Unix     29
Text Editor     30
Getting the TiVo HME SDK     30
Exploring the SDK     30
Classpath     31
Recommended Software     32
Ant     32
Log4j     33
JDIC     33
JUnit     33
Subversion     33
Setting up Eclipse     33
Installation     34
Running Eclipse     34
Starting a New Project     35
Running the Sample Applications     39
Starting the Applications     40
Using the Sample Applications in Eclipse     41
The HME Simulator     44
Limitations of the Simulator     46
Summary     46
Questions     46
Your First TiVo HME Application     47
Hello World     47
Creating Hello World     47
Running the Example in the Simulator     50
Simulator in Discovery Mode     50
Simulator in Direct Mode     52
Starting Hello World on the TiVo Box     53
Handling Events     56
Application Lifecycle     57
Startup     57
Running Events     57
Errors     58
Shutdown     58
Summary     58
Questions     59
Displaying Resources     61
Understanding Views     61
Introduction to Views     61
View Hierarchy     61
Drawing Order and Hiding Views     63
Properties of Views     64
Translation     64
Scaling     65
Visibility, Transparency, and Focus     66
Extending Views     67
Code Example     69
Text     72
Creating Text Resources     72
Image Resources     80
Supported Graphic Formats     80
Creating Image Resources     80
Size, Scaling, and Alignment     87
Updating the Weather Application with Graphics     89
Sounds     92
Creating Sound Resources     92
Built-in Sounds     93
Summary     93
Questions     94
Events     95
Types of Events     95
Device Info     96
Init Info     97
Application Info     97
Idle Info     97
Key Event     98
Font Info     98
Event Flow     98
Key Events     98
Optional Keys     100
Events Example     101
Sending Custom Events     105
Ticker Events     106
Focus Events     112
Application Event Handling     114
Summary     115
Questions     116
Going Bananas     117
How to include Bananas in Your Application     117
Reasons to Use Bananas     119
Bananas Sample Application     119
BApplication      122
Other Features of BApplication     124
BScreen     125
New Methods in BScreen     126
Pushing and Popping BScreens     127
Transitions     129
Creating Custom Transitions     130
BView     134
BList     136
Using BLists     138
Styling the List     138
Managing the List     139
BList Example     139
BList Methods     142
Focus     144
BText     146
BButton     147
Using BButtons     147
BKeyboard     149
Using the Keyboard Widget     151
BSkin     154
BDirSkin     155
BZipSkin     155
BResSkin     155
Example     155
Summary     157
Questions     158
Using Bananas Events     159
Event Model     159
New Events in Bananas     161
Using Actions     164
Custom Actions     164
Custom Widgets     166
Weather Applicatton Example     170
Summary      178
Questions     178
Advanced Resources     179
Streaming Resources     179
Streaming Graphics     179
Streaming Audio     180
MPEG Video Backgrounds     181
Creating MPEG Video Backgrounds     182
Using TiVo's MKLOOP FFMPEG Wrapper     182
Using a Web-Based MKLOOP FFMPEG Wrapper     183
Setting MPEG Video Backgrounds     183
MPEG Video Background Caveats     184
Simulator     184
Not Pixel Perfect     187
Root View Method Behavior     190
System Reboots     191
Resource Management     191
Caching and Removing Resources     191
Debugging the Resource Tree     192
Resource Limitations     193
Pixel Buffer and Rendering Engine     194
Best Practices for Predictable Rendering     195
Debugging Software Rendering     196
CPU Resource Concerns     197
Network Resource Constraints     198
Summary     198
Questions     199
Advanced HME Application Lifecycle     201
HME SDK Architecture Impact     201
Overriding the Factory      202
Accessing Files and Resources     205
Changing the Application Name     206
Handling Arguments     207
Common Actions     208
Using Factory for Shared Data     208
Singletons     210
Threads     211
Using Threads     212
Java 4 Threads     212
Java 5 Executor     212
Stopping Threads Correctly on Application Exit     214
Keeping Shared Threads Running between Applications     215
Calling Other Applications     215
Transitioning to Another Application     215
Running the Example     217
Transitioning Back to the Original Application     220
Summary     220
Questions     220
Application Preferences     223
Per-TiVo Preferences     223
Using Per-TiVo Preferences     223
How the Data Is Stored     225
Per-Application Preferences     227
Using Persistent Data     227
Using the Java Preference System     228
Details of Java Preference API     228
Converting BWeatherApp to use Java Preferences     229
Why Use the Preferences API?     230
Other Methods of Saving Preference Data     230
Summary     231
Questions     231
Animation     233
Animation Resources     233
What Can Be Animated     234
Moving Views     235
Animating Transparency     236
Graphics Scaling     237
Visibility     237
Animating Events     238
Chaining Animations     238
Putting It All Together     240
Summary     242
Questions     242
Connecting to External Resources     243
Data from the Web     243
Setting the Resource as a URL     243
Retrieving the Resource and Saving It Locally     244
SOAP, RSS, & XML     246
SOAP     246
RSS     247
XML Data     248
JDBC     248
Other Options     251
Summary     251
Questions     251
Deploying an HME Application     253
Jar from Command Line     253
Creating a Web Start Application     255
Using Web Start with HME     256
OS X Native App     258
Creating an Application Icon     258
Bundler     258
Preparing Your Resources     259
Creating a Jar Bundle     259
Final Touches     261
Packaging     263
Creating the Disk Image     263
Stylizing the Disk Image     264
Compressing and Locking Down the Disk Image     267
Launching a Disk Image Automatically Upon Download     267
Displaying a Software License Agreement     268
Windows Native App     268
Creating an Application Icon     268
Bundler     269
Installer     269
Packaging     270
Selling Your Application     270
Summary     270
Questions     270
Tips and Troubleshooting     271
Logging     272
Common Problems     274
Additional Resources     275
Summary     275
Exercise Answers     277
Index     283
Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Terms of Use.
  • - Barnes & reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)