|
|
|||||
| Textbooks | Sell Textbooks | Books | Supplies | Medical Books | College Apparel | Movies | Clearance |
|
|
||||
|
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. Beginning TiVo ProgrammingBy John Brosnan Kyle Copeland John Wiley & SonsCopyright © 2007 John Wiley & Sons, LtdAll right reserved. ISBN: 978-0-470-05427-7 Chapter OneIntroduction to TiVo Applications
What is TiVo? If you need an answer to that question, most likely this book isn't going to be of much interest to you. However, if you are looking for a fun way to create new and exciting living room multimedia experiences leveraging the TiVo platform, you've found the right place to get you well on your way. This chapter introduces you to the TiVo platform and provides a good foundation before you begin writing applications for yourself. In this chapter, you learn about the following: Home Media Option Home Media Engine TiVo HME SDK
The TIVo Platform Essentially, the TiVo platform is a small personal computer that up until recently was dressed as an easy to use, yet powerful, alternative to the household VCR. The current generation of TiVo hardware contains a low-powered MIPS CPU, a high-capacity internal hard drive, a modem for connecting to the TiVo servers over dial-up, a few USB ports for expansion opportunities, a small amount of video and system RAM, a video output system to connect to televisions, and a simple input system that uses the fantastic TiVo Remote. Though that might not seem like a powerful platform for providing DVR (digital video recorder) functionality (especially compared to the horsepower needed for running a Windows Media Center PC), TiVo has also included a hardware-based MPEG-2 Encoder/Decoder chip to handle all of the heavy tasks like video encoding and decoding. When they designed the TiVo hardware platform, the wizards at TiVo decided to use Linux as the base operating system. Naturally, this made a good portion of the technical community quite pleased, because under the GPL (GNU General Public License) that covers Linux distributions, TiVo had an obligation to freely distribute the full source code for any changes that it makes to optimize the core OS to run its software. Almost immediately after getting their hands on the source code of the TiVo Linux distribution, a TiVo hacking community was born. It came as a surprise to many that for the most part, TiVo didn't interfere with people tinkering with the software powering their box, unless of course the tinkerer's goal was to avoid continuing to pay for TiVo's subscription service. The first wave of TiVo hacks included simply growing the hard drive space, allowing users to add more recording capacity to their DVR. Following shortly thereafter, some brilliant hardware engineers outside of TiVo started devising a way to include the TiVo box in their home networks. Inside the TiVo box was a diagnostic slot that allowed the fabrication of an expansion board that would allow users to install a card, load some Linux drivers, and be on their way to a network-connected TiVo box. However, loading the Linux drivers proved difficult for the average end user. Shortly thereafter, engineers internal to TiVo embraced the idea of allowing users to have a network connected to their unit, and started to build an optimized driver set for the expansion cards directly into their software. This made TiVo discover a new set of inter-networked features that could be available to its users. This freed users of using their phone line to get software updates and electronic programming guide data. TiVo soon started working on a set of drivers and a TV-based user interface for configuring and controlling external USB adapters. These can connect to both Ethernet and Wi-Fi networks. These drivers, along with some great software, allow users to make TiVo part of their life beyond avoiding the drama of missing their favorite television show. Proving its commitment of transitioning TiVo boxes from a DVR to a digital lifestyle device, TiVo's newest generation of hardware includes a physical Ethernet port, allowing TiVo boxes to connect directly to household networks out of the box without the need to consider external USB network adapters. To connect to Wi-Fi networks, TiVo created its own TiVo-branded Wi-Fi adapter, optimized to integrate with TiVo boxes and speed up communication by offloading encryption and other network overhead to specialized hardware on the adapter.
Brief History of Software Development for TiVo It's always good to start with a bit of history before diving into new application-building technology. TiVo HME offers a fairly rich environment for building end-user applications; however, it isn't the first attempt that TiVo has made at entering the applications delivery market. TiVo created a set of rudimentary tools called TiVo HMO, which is targeted specifically to solve the problem of delivering personal music and photo content to the television through the TiVo box.
Home Media Option and TiVo Desktop Home Media Option (HMO) was the first digital lifestyle software solution introduced by TiVo. HMO runs two basic types of applications: audio streaming to TiVo boxes over a home network and displaying digital photo slideshows. The user interface on the television used to select and view photos or to choose music to play was a simple set of templates that, for the most part, followed the standard TiVo user interface guidelines. The templates were then populated by the TiVo box itself after requesting the information from TiVo Desktop server software running on a desktop machine located on the household network. Originally TiVo charged an activation fee for Home Media Option on top of your normal subscription costs per TiVo box in your home. In order to show users the value in using a sidecar TiVo platform versus just renting a DVR directly from your video provider, TiVo subsequently dropped the activation fee for HMO features and now it comes standard with every TiVo subscription. In addition to allowing access to music and photos (Figure 1-1 and Figure 1-2) on the user's desktop, TiVo also added a web-based interface for users to send program requests to their TiVo boxes via TiVo Central Online, hosted at TiVo.com. It also added Multi-Room Viewing, which brought the ability to stream or copy recordings from one TiVo box to another, provided both TiVo boxes were listed under the same account and on the same home network. This drove many users into adopting multiple networked TiVo boxes throughout their home and made the Photo and Music streaming services available in many more rooms in a household, all from a single TiVo Desktop server.
TiVo Desktop as a Server Although HMO is limited to the capabilities of the display template frameworks that TiVo provides, it was the first time TiVo allowed end users to send their own personal content to TiVo boxes throughout their home and was a step in the right direction. In order to facilitate trafficking all of this foreign information into the TiVo world, a small software server called TiVo Desktop was released. As mentioned earlier, the TiVo Desktop runs on a Windows PC (Figure 1-3) or Macintosh (Figure 1-4) to serve music and photos to TiVo boxes throughout the household network. It is basically a simple web server that you can browse to with any browser if you know the specific URL format you need to use. The server is responsible for converting the audio and graphic content into a compatible MP3 or JPEG format and also for including the XML-based meta-data required to describe the content appropriately so the TiVo box will know the proper views to display on the television. Though the TiVo Desktop software continues to provide the photo and music browsing services today, the latest generation of applications are largely unconstrained in terms of the user interface that is displayed, and the types of information that are accessed. TiVo Desktop successfully set the stage for TiVo users to have independent software running on their personal computers within a home network to bring new functionality to their beloved TiVo boxes.
HMO Protocol TiVo opened the HMO protocol to developers to extend their existing software offerings or to create new music and photo applications that could leverage the TiVo box's ability to display information on televisions throughout the household. The documentation for the HMO protocol is available at http://www .tivo.com/developer. The protocol itself consists mainly of HTTP requests from the TiVo box to the computer. In effect, the desktop machine becomes a mini web server in the HMO system, serving content in the way the TiVo box knows how to display. The most interesting thing about this is that any application on any computer can extend its functionality by simply adding a very thin web server layer and talking to TiVo's specific XML and URL schemes. The main thing that makes HMO applications so easy to use from an end-user perspective is an auto discovery technology called TiVo Connect. Applications can register with a machine's local beacon service to periodically broadcast information about the current suite of applications available that TiVo boxes on the household network can connect to. TiVo boxes would pick up these broadcast messages to automatically detect and alert users to the availability of expired or newly announced content that was available for use within the household. In Figure 1-5, the local HMO services on the Music, Photos & More screen is shown.
HMO Applications There are two flavors of HMO applications: applications running on a personal computer locally within the user's household network extending the functionality of TiVo Desktop, and server-hosted applications mostly used for promotional purposes.
TiVo Server-Hosted Applications HMO also brought the ability for TiVo to publish hosted services to the Music, Photos, Products, & More menu on any TiVo box connected to the global Internet. TiVo used the new network push opportunity to land two large advertising partners. On the music side, Universal Music and later Best Buy signed on to push New Music Tuesday content, which was periodically updated when artists or labels wanted to promote new works as they became available. For photos, TiVo inked a deal with Nikon to promote artsy samples of the world's greatest photographers that used Nikon digital cameras. The Nikon Photo application is still available through the Music, Photos, Products, & More menu today.
Desktop Applications Initially there were several applications available for TiVo box owners to run on their desktops that leveraged HMO's ability to display and interact with audio and visual content, but the main application that was born of the opening of the HMO protocol was the very popular JavaHMO. JavaHMO is a Java-based program that conveniently provides weather, movie listings, and a menagerie of other useful information via the photo album browsing interface frameworks of HMO. JavaHMO was a completely open source replacement for TiVo Desktop, allowing users to collect personal and web content and push it to the TiVo boxes throughout their home in a more innovative way than even TiVo had intended. It cleverly took advantage of the hooks that TiVo provided in its API for HMO, with the end result of the JavaHMO server being more aware of the type of content that was being collected and aggregated throughout the home. Due to the constraints of the TiVo-provided template frameworks for HMO, the screens simply referred to themselves as Music or Photos depending on what type of information was being pushed. Despite this, many users still found the applications created using the new Java-based server to be well worth the aggravation of learning how to interact with the UI on the TiVo. The initial intent of the open API from TiVo was to allow application providers to extend their existing applications to include new ways of pushing their existing content to networked TiVo boxes throughout a home network. This prompted a few media jukebox and photo shoebox software creators to extend their software to share user libraries with TiVo boxes on the household network while their programs were running. The first to enter the fray was JRiver Media Center, a media organization jukebox, which allowed users to enhance their Home Media Option experience by allowing them to share music playlists and browse photo slideshows already categorized within JRiver's rich media organization environment. Many others soon followed. MoodLogic released a TiVo HMO music interface for its active music-mixing software that dynamically categorizes an entire music library based on the mood you are in at any given moment. Adobe added a "Publish to TiVo DVR" option in its Photoshop Album and Photoshop Elements photo organization and editing software, and soon thereafter Picasa followed suit adding similar functionality to its Digital Picture Organizer product. HMO fell short in gaining developer excitement, hampered by the inability to create truly unique and valuable applications for the TiVo platform because of the limitations of the template framework environment. However, all of this changed dramatically in early 2004 when TiVo purchased a small company called Strangeberry, which, led by Arthur Van Hoff, a seasoned software engineer from Sun's Java labs, created a robust platform for delivering broadband content to low-powered television-connected devices. TiVo feverishly began work to merge the Strangeberry technology into its Series2 TiVo boxes, and by November of 2004, TiVo delivered the first early release version of a flexible and completely open source Java SDK initiative for creating network-powered applications for TiVo boxes, and dubbed it the Home Media Engine.
Home Media Engine Home Media Engine (HME) is truly designed to allow full-fledged applications to display on the TiVo box. Though Home Media Option gave birth to networking and access to music and photos on a desktop machine, the interface on the TiVo box remained constrained, and all events (such as pressing a button on the remote) were handled by software on the TiVo box. The basic model in Home Media Option, to make a directory structure of information available via HTTP for access from the TiVo, is extended in HME to create a full event processing system so HME applications can process remote control key presses, display custom interfaces, control sound effects and audio streams, and launch complex animations and screen transitions. This brought forth the ability to write and run truly custom network-powered applications on the TiVo box for the first time. As you can see in Figures 1-6 and 1-7, the user interface is far more flexible than the HMO interface (shown in Figures 1-1 and 1-2). HME builds on several components that were originally introduced in HMO: Network access: TiVo HME applications don't actually run on the TiVo box itself - they typically run on a local desktop machine or on a server over the Internet. Auto Discovery: TiVo HME applications announce their availability similar to the way HMO announcements function through ZeroConf. ("ZeroConf" describes a set of technologies that provide some level of automated network addressing and discovery.)
HME introduces a new protocol for communication with the TiVo box that allows you as the developer to lay out the graphics and play sounds on the TiVo box in almost any way you can think of, as long as you bear in mind that the TiVo box has limited resources and processing power to create the display. Despite the limitations of the TiVo hardware platform, you can create very sophisticated applications, and you can take steps when writing your applications to ensure what they intend to display onscreen survives. The variety of applications for TiVo HME is far greater than what is available for HMO. The new generation of applications includes access to information in your Yahoo account such as local weather, movies in the area, and traffic information. Live 365 has a radio station application that streams audio from the Internet to the TiVo box and provides a great selection of music. Users of Fandango can use Fandango's TiVo HME application to browse and purchase movie tickets. (Continues...)
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. |
|
||||||||||||||||||
|
||||||||||||||||||
|
Buy Textbooks Sell Textbooks College Apparel Shop by School Virtual Bookstores |
Order Status Shipping Rates Return Policy Marketplace Info F.A.S.T. |
Contact Us Privacy Policy Legal Notices Site Security Employment |
Help Desk eCampus Blog Affiliate Program Bulk Orders College Marketing |
|
|
|||||
| . | |||||