Abstract:
A method for abstracting a TV hardware component to a service class to facilitate providing services through a TV.

Description:
FIELD OF THE INVENTION 
     The present invention relates generally to TV-centric home entertainments systems. 
     BACKGROUND OF THE INVENTION 
     Leading edge digital televisions (DTVs) typically include one or more digital devices that are connected together to create the TV electronics. These various devices may include CPUs, tuners, demodulators, USB ports, storage devices, transcoders, scalers, deinterlacers, and so on. Each device usually includes its own software control program referred to as a device driver. The DTV&#39;s main CPU must communicate with the devices through their device drivers. The software control program that comprises the device driver is executed on the CPU of the DTV, and ordinarily is included in the main program store on the DTV. 
     As understood herein, as DTV technology advances, functions that previously only existed in chips external to the TV&#39;s main CPU chip are newly incorporated within next generation chips. This creates a challenge in maintaining a consistent software interface to the hardware that implements the desired function. In addition, while TVs have not generally been upgradeable devices, some new TV technology functions may be seen as too expensive or too speculative to include in all DTVs, and hence are added only as aftermarket modules. Such modules may include pre-recorded disk drives (such as DVD or Blu-ray), hard disk storage, TCP/IP networking, and tuning of new services (such as cable or satellite TV). Providing a consistent development interface to DTV engineers as well as a consistent user interface for the consumer on the DTV are challenges in this environment. This includes providing ways for the DTV to access functions that a new module provides, as well as providing a way for an added module to access functions that the DTV provides. 
     The present invention is directed at these problems. 
     SUMMARY OF THE INVENTION 
     A system has a TV including a TV processor and a display. The system also has a data storage device that is separate from the TV and that communicates with the TV processor. The data storage device includes an associated software driver stored in the TV. With this combination of structure a requesting component can use a storage service provided by the storage device by means of the software driver in the TV. 
     The data storage device may be a bare DVD player without an internal device driver, or a hard disk drive or flash memory card, or other component or device. For example, the data storage device may be a TV tuner and/or demodulator with storage capability, a video or still camera with storage capability, a network connection to storage, an audio player, a wireless telephone, a camcorder, a personal video recorder (PVR), or a video cassette recorder (VCR). 
     The data storage device can be abstracted in the system as a service, and a requesting component can communicate with the TV to request the service to transfer data with the data storage device. In some embodiments the requesting component can communicate with the data storage device only through the TV processor. 
     In another aspect, a method is disclosed for abstracting a TV hardware component to a service class to facilitate providing services through a TV. For at least one TV hardware component separate from a TV and configured to communicate therewith, a respective service class is defined. For the service class, a message interface and a hook for accessing a data structure in the component are defined. Then, the service class is provided to the TV such that the TV can provide services associated with the component to devices communicating with the TV and separate therefrom. 
     In yet another aspect, a method for providing services through a TV includes registering a first device associated with a service with the TV, registering a second device with the TV, and then allowing the second device to request from the TV the service, with the TV accessing the first device as required to provide the service and with the first and second devices being external to the TV. 
     The details of the present invention, both as to its structure and operation, can best be understood in reference to the accompanying drawings, in which like reference numerals refer to like parts, and in which: 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram of a non-limiting TV-centric system in accordance with the invention; 
         FIG. 2  is a flow chart of non-limiting service class model definition logic; and 
         FIG. 3  is a flow chart of non-limiting operating logic used by the system shown in  FIG. 1 . 
     
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     Referring initially to  FIG. 1 , a system is shown, generally designated  10 , which includes a TV housing  12  holding TV components including a TV display  14 , a TV tuner  16 , and a TV processor  18 . The TV tuner  16  may receive input from a set-top box (STB)  20  that, as indicated in  FIG. 1 , can be part of the housing  12  or alternatively can be in a housing separate from the housing  12 . In any case, the STB  20  receives TV signals from one or more sources  22  such as but not limited to satellite receivers, cable system head ends, broadcast receiver antennae, etc. Depending on the nature of the signal, it may be sent directly to the display  14  from the tuner  16  or sent first through the processor  18  for subsequent display. 
     The non-limiting embodiment shown in  FIG. 1  illustrates that the present TV can be connected to a plurality of external systems and networks. In one embodiment the processor  18  may communicate with an Internet interface  24  such as but not limited to a computer modem. The modem  24  may be connected to the Internet, so that the TV processor  18  can communicate with a web-based system server for purposes to be shortly disclosed. 
     In one embodiment, the TV processor  18  may communicate with a DVD player  26 . The DVD player  26  may be a “bare” DVD player that has only an optical disk drive proper but not a high level software driver. Also, the processor  18  may communicate with a mass storage  28 , which may be implemented by a PVR. Information including multimedia streams such as TV programs and movies can be exchanged between the TV processor  18  and the DVD player  26  and storage  28 . Other non-limiting storage devices include a TV tuner and/or demodulator with storage capability, a video or still camera with storage capability, a network connection to storage, an audio player, a wireless telephone, a camcorder, a personal video recorder (PVR), or a video cassette recorder (VCR). 
     As set forth further below, the TV processor  18  may also communicate with one or more other components  30  for providing the other components  30  with services implemented using the DVD player  26  and/or mass storage  28  in accordance with logic below. In general, the components  26 / 28 / 30  may use each others&#39; services by means of the TV. 
     Accordingly and now turning to  FIG. 2  for greater explanation, at block  32  each device class is abstracted to a service class. That is, the device class to which the bare DVD drive  26  shown in  FIG. 1  belongs is abstracted to a service class that might be thought of as “provide an audio-video stream from an optical disk”, whereas the device class to which the mass storage device  28  shown in  FIG. 1  belongs is abstracted to a service class that might be thought of as “provide mass storage”, and so on. 
     As part of this abstraction, at block  34  for each service class the logic may move to block  36  to define message interfaces with the particular service class. Moreover, at block  38  hooks to access data structures in the service class, e.g., file system hooks, may be defined. Also, at block  40  the data structures of the service class and their data types, e.g., file data, may be defined. Block  42  indicates that hooks may be defined for the particular service class to, e.g., open communications such as interaction with the service. 
       FIG. 3  illustrates how the service class abstractions generated using  FIG. 2  may be used in operating the system  10  shown in  FIG. 1 . Commencing at block  44 , each module, e.g., the modules  26 ,  28 ,  30 , registers itself with the TV processor  18 . This registration can include informing the TV  18  of the device/service classes of the module. Or, the TV processor  18  can discover the classes of each module by interrogating each new module as a connection is sensed by the processor. 
     The TV processor  18  then determines whether necessary software (such as device drivers) to exploit the service represented by a newly registered module is available to the processor  18 , preferably by being stored in electronic storage such as flash memory, RAM, ROM, disk storage, and so on within the TV housing  12 . Alternatively, the necessary software may be provided by or located within the newly registered module itself. Alternatively, the TV processor  18  may elect to store necessary software using a storage service such as that provided by the mass storage  28 . In any case, if the software necessary to exploit a service of a newly registered module is not available, the TV processor  18  can automatically download it from, e.g., the Internet at block  46 , without user interaction if desired. The TV can also periodically check for software updates, so that upgrades can be made to the devices  26 ,  28 ,  30  simply by providing upgraded software to the TV without requiring hardware replacement. 
     Also, if desired, at block  48  the TV processor  18  may inform other modules with which it communicates of the added presence of a new service. For example, if the DVD player  26  is already registered when the mass storage device  28  is connected to the TV, the TV processor  18 , after ensuring that the TV possesses the necessary software to exploit the mass storage service provided by the storage device  28 , can inform the DVD player  26  of the newly available mass storage service provided by the mass storage device  28 . Then, at block  50  the DVD player  26  can avail itself of the mass storage service provided by the mass storage device  28  by requesting the service from the TV. In essence, the TV processor  18  acts as broker between the player  26  and device  28 , i.e., the TV processor  18  may be accessed by a first component as a proxy for the service provided by a second component. In the hypothetical wherein the DVD player  26  requests from the TV processor  18  the service provided by the mass storage device  28 , the TV processor  18  accesses the mass storage device  28  as required to provide the requested service to the DVD player  26 . 
     While the particular TV-CENTRIC SYSTEM is herein shown and described in detail, it is to be understood that the subject matter which is encompassed by the present invention is limited only by the claims.