CONTROLADOR MULTIMEDIA PROGRAMABLE CON SERVICIOS PROGRAMALES ANTECEDENTES DE LA INVENCIÓN SOLICITUD RELACIONADA Esta solicitud se relaciona a la solicitud co-pendiente titulada "System and Method for a Programmable Multimedia Controller", (Sistema y Método para un Controlador Multimedia Programable) , presentada el 20 de diciembre de 2005, asignada a un cesionario común e identificada por el número de archivo de Cesari and McKenna No. 104215-0003, que se incorpora aquí por referencia en su totalidad. CAMPO DE INVENCIÓN La presente invención se refiere, en términos generales, al campo de los multimedia y de las comunicaciones y,' más específicamente, a un controlador multimedia programable para audio o video doméstico, comercial, profesional, estudio de difusión o película, seguridad, automatización u otros usos que puede interconectarse con una amplia gama de dispositivos de audio, video, telecomunicaciones, comunicaciones de datos y otros dispositivos y puede controlarlos y administrarlos. INFORMACIÓN DE ANTECEDENTES Las ofertas comerciales de dispositivos electrónicos para consumidores se han ampliado dramáticamente en respuesta a los costos cada vez menores del hardware electrónico y a la introducción de nuevos medios. Por ejemplo, en solamente algunos años, la tecnología de discos compactos (CD) desplazó en gran medida los discos de vinilo y las cintas magnéticas como medio de grabación de música de elección, pero fue a su vez desplazada por la tecnología MP3. De manera similar, la tecnología de disco versátil digital (DVD) desplazó en gran medida las videocintas como el medio de grabación de video de elección mientras que las cámaras digitales han reemplazado efectivamente las cámaras de película. El surgimiento de nuevas tecnologías y medios, y la demanda correspondiente de los consumidores para contar con productos basados en los últimos avances impulsa a los fabricantes a introducir rápidamente nuevos productos. Como resultado, un número muy importante de tipos de productos y modelos penetra en el mercado . Un problema duradero que persiste en el caso de muchos consumidores es la complejidad involucrada con la interconexión de varios dispositivos electrónicos típicamente vendidos individualmente y no como partes de un sistema integrado. Por ejemplo, un consumidor puede adquirir un receptor de audio, un receptor de televisión por cable, una televisión, un reproductor de DVD, y un sistema de sonido ambiental fabricados por diferentes fabricantes. El problema básico de la interconexión de un grupo de componentes por medio de una serie de cables es un reto para muchos usuarios, y todavía más la comprensión suficiente de los varios modos de operaciones y características que permitirán, de utilizarse correctamente, que los componentes funcionen mejor y produzcan experiencias de entretenimiento más agradables.
Otro problema duradero con la mayoría, si no es que con todos los enfoques anterior.es para integrar componentes diversos es que se utiliza algún tipo de controlador central que opera en software escrito en un lenguaje de computación de alto nivel.
El uso de un lenguaje de computación de alto nivel presenta varias dificultades. Primero, es casi seguro que el fabricante no pondrá el código fuente a disposición del usuario, impidiendo así efectivamente que un usuario deseoso de adaptar un sistema a sus necesidades pueda hacerlo, segundo, aún si el código fuente está disponible, la mayoría de los usuarios no tendrá los conocimientos técnicos, el tiempo o el interés para escribir o modificar el código fuente. Tercero, la introducción de nuevos dispositivos por * fabricantes requerirá casi seguramente que el código fuente sea modificado con el objeto de hacer que el controlador central sea compatible con tales dispositivos. Otro problema duradero es la ausencia de un estándar de la industria ampliamente adoptado con la relación a interfaces de control para dispositivos electrónicos para consumidor. Fabricantes han incorporado varios protocolos de comunicación, la mayoría de los cuales son propios por naturaleza, no se adecúan a ningún estándar, y son implementados con un código fuente extremadamente detallado.
Esta ausencia de estándares complica en gran medida el problema de cómo integrar y controlar centralmente una amplia gama de dispositivos electrónicos de consumidor de tal manera que funcionen conjuntamente y sean manejables por un usuario promedio que no posee un conocimiento técnico sustancial. COMPENDIO DE LA INVENCIÓN En resumen, la presente invención ofrece un controlador multimedia programable con servicios programables . El controlador multimedia se basa en una computadora para propósitos generales que controla un sistema de computadora integrado especializado. La computadora para propósitos generales puede estar combinada con una segunda computadora paras propósitos generales con el objeto de ofrecer redundancia. El controlador multimedia puede interconectarse con una amplia gama de dispositivos de audio, video, telecomunicaciones, comunicaciones de datos u otros dispositivos, controlarlos o manejarlos. El controlador multimedia incluye un entorno de programación para crear servicios o experiencias de usuario que pueden incorporar características o funcionalidades de varios dispositivos convencionalmente operados como dispositivos separados, independientes. Tales servicios pueden estar dentro de un rango de complejidad desde simples funciones de control hasta experiencias multimedia que combinan audio y video de alto desempeño con las capacidades gráficas de una computadora para propósitos generales, servicios basados en web y telecomunicaciones. Servicios pueden ser implementados según varias zonas dentro de un espacio físico de mayor tamaño. Por ejemplo, un usuario puede especificar que ciertos servicios estén disponibles en la sala de un hogar mientras que servicios diferentes estén disponibles en la cocina, según los componentes disponibles en cada cuarto o según las preferencias de los usuarios. Los servicios pueden también ser implementados con base a usuario en combinación con un perfil de usuario que especifica preferencias, restricciones (por ejemplo, controles parentales) , y similares. El entorno de programación incluye una biblioteca de perfiles de componentes. Perfiles de componentes pueden ser implementados de varias formas con base en atributos deseados de las estructuras de datos subyacentes. En una modalidad preferida, un perfil de componente es implementado como un archivo en Lenguaje de Marcado Extensible (X L) [Extensible Markup Lenguaje] que describe ciertos atributos de un r componente como por ejemplo un reproductor de DVD, televisión, amplificador u otro tipo de componente que puede interconectarse con el sistema de la presente invención. Un perfil de componente describe típicamente por lo menos algunas de las características físicas del componente (por ejemplo, los conectores de entrada/salida localizados en la parte posterior del componente) , la configuración del componente (por ejemplo, todos los tipos posibles de módulos que pueden estar presentes en las ranuras o bahías de un receptor modular), el grupo .de comandos que el componente reconoce (por ejemplo, encendido, apagado, abrir charola de discos) , así como las funciones que e^l componente puede desempañar (por ejemplo, reproducción, pausa, parada) . El uso de archivos XML para perfiles de componentes, así como otros aspectos de la presente invención comentados abajo, ofrecen varias ventajas que incluyen particularmente la facilidad con la cual archivos de componentes pueden ser creados para nuevos componentes introducidos en el mercado en el futuro. Además, el uso de XML facilita el proceso de adaptación a través de la edición de perfiles de componentes existentes en comparación con escribir o modificar un código fuente. Por consiguiente, la presente invención incluye una herramienta de programación para ayudar a los instaladores o usuarios que desean crear perfiles de componentes adaptados a sus necesidades o modificar perfiles disponibles en la biblioteca . La biblioteca de perfiles de componentes puede almacenarse en una unidad de disco duro u otro medio de almacenamiento que forma físicamente parte del sistema o bien disponible de otra forma al sistema a través de una red o bien por medio de enlace de comunicación. Uno o varios perfiles de componentes* o hasta toda la biblioteca puede adquirirse, o actualizarse según lo necesario, mediante el hecho de acceder a un sitio web designado a través de la Internet y descargar los archivos apropiados. La actualización de la biblioteca de perfiles de componentes puede implementarse como un proceso automático o bien como un proceso en el cual un usuario inicia o controla el proceso. Utilizando la biblioteca de perfiles de componentes, la presente invención permite a un usuario describir interactivamente cómo una instalación particular está realmente cableada, a través de un tutorial en pantalla. En el caso de una nueva instalación, la presente invención puede hacer recomendaciones al usuario sobre cómo cablear una instalación. Una vez establecido el cableado, la presente invención puede informar al usuario los servicios disponibles . El entorno de programación incluye también configuraciones de zona que son también preferentemente implementadas como archivos XML. Una configuración de zona es esencialmente una descripción que incluye una identificación de qué componentes están presentes en un cuarto particular o en otro espacio, qué módulos están presentes actualmente dentro de un componente modular, cómo estos componentes están interconectados y una especificación de qué tipo de controlador está disponible al usuario en este espacio. El entorno de programación incluye también configuraciones de conexión, otra vez preferentemente implementadas como archivos XML. Una configuración de conexión es esencialmente un archivo que almacena la información de cableado de instalación mencionada arriba y se utiliza para determinar los servicios que pueden ser soportados por una instalación particular . El entorno de programación puede incluir reglas de servicio. Una regla de servicio, preferentemente implementadas como un archivo XML, define esencialmente los componentes requeridos para implementar un servicio particular y cómo un componente particular o grupo de componentes interactuará con el objeto de proporcionar el servicio. Dentro del entorno de programación, perfiles de componentes, configuraciones de zonas, configuraciones de conexiones y estas reglas de servicios se proporcionan todos como entradas a un compilador de configuraciones que produce una implementación de servicio, preferentemente implementada también como archivo XML. La implementación de servicio a su vez se suministra como entrada a un generador de flujo de trabajo que produce tanto una forma ejecutable de la implementación de servicio como una representación gráfica de la forma ejecutable. La representación gráfica ofrece provechosamente un formato cómodo y fácil de utilizar que puede ser desplegado y editado utilizando la computadora para propósitos generales. Mediante la edición de la representación gráfica, un usuario está efectivamente modificando directamente la forma ejecutable correspondiente. De esta manera un usuario con pocos o ningún conocimiento de programación puede crear y adecuar servicios programables según lo deseado. Otro aspecto de la presente invención y que incrementa también la facilidad de uso y facilidad de programación de sistema es una interfaz de usuario que, en una modalidad preferida, se basa en la funcionalidad de un reproductor de DVD conectado a un software de autor de DVD ampliamente disponible. En* este aspecto, la presente invención maneja dos consideraciones importantes: un reproductor de DVD (es decir, la funcionalidad de un reproductor de DVD de conformidad con lo incorporado en un chip de codificador de video) es muy económico; y los usuarios están generalmente muy familiarizados con la operación de un reproductor de DVD para seleccionar elementos a partir de menús desplegados. Por consiguiente, una interfaz de usuario que es económica, y sin embargo fácilmente entendida por una gran mayoría de usuarios, puede implementarse utilizando un software de autor de DVD comercialmente disponible. Dicho software puede utilizarse para crear videos que, cuando son reproducidos, presentan información, menús o elecciones con las cuales el usuario interactúa utilizando un control remoto sencillo, reproductor de DVD portátil, pantalla táctil o cualquier otro de varios dispositivos de control soportados ! con la presente invención. Como parte de configuración de sistema y ajuste, un video de este tipo puede ser utilizado para recopilar la información necesaria para crear uno o varios perfiles de usuario . Otro aspecto de la presente invención es su capacidad de expansión. Múltiples controladores multimedia pueden interconectarse con el objeto de formar un sistema de mayor tamaño en el cual cualquier controlador de señales de audio o video puede ser conmutado a cualquier salida en el mismo controlador o en un controlador diferente. En un sistema expandido de esta manera, diferentes controladores pueden ser programados para proporcionar servicios diferentes, Por ejemplo, un controlador puede ser programado para proporcionar servicios relacionados con video mientras que un segundo controlador interconectado puede ser programado para proporcionar servicios relacionados de audio. Los servicios que la presente invención puede implementar son diversos y amplios en cuanto a su número. Por ejemplo, vamos a considerar que un usuario tiene el sistema de la presente invención interconectado con un reproductor de DVD, un televisor y una linea telefónica. Con estos componentes un servicio simple puede ser definido como, por ejemplo, cuando un usuario está viendo una película DVD y recibe una llamada telefónica, entonces el sistema de la presente invención comandará automáticamente al reproductor de DVD que efectúe una pausa y hará que la ID de la persona que llama sea desplegada en el cuadro de video en la televisión. Como resultado, el usuario puede decidir si contesta la llamada sin ir físicamente al teléfono o bien controlando manualmente el reproductor de DVD. Si se contesta la llamada, el reproductor de DVD permanecerá en pausa. Si no se contesta la llamada telefónica o bien si se contesta entonces una vez terminada la contestación, la película se reanudará automáticamente después de un lapso de tiempo que puede ser programado por el usuario. Otro ejemplo de un servicio sencillo que la presente invención puede implementar incluye la combinación de un televisor y acceso a Internet. La presente invención puede ser utilizada para accesar información a partir de Internet, como por ejemplo cotizaciones bursátiles, resultados deportivos o información del tiempo, y presentar esta información en cualquier lugar en una imagen de video en la pantalla del televisor o bien, alternativamente, como una "barra de noticias" que se desplaza a lo largo del fondo de la imagen conforme el usuario ve un programa de televisión deseado . Otro ejemplo de un servicio que la presente invención puede implementar incluye la combinación de un televisor y un inalámbrico (teléfono celular) . La presente invención puede ser utilizada para detectar la llegada de un mensaje de texto de servicio de mensaje corto (SMS) por el teléfono celular y desplegar el mensaje de texto como superposición en la imagen desplegada por el televisor. De esta manera, el usuario puede ver el mensaje de texto sin manipular el teléfono celular. BREVE DESCRIPCIÓN DE LOS DIBUJOS La descripción de la invención abajo se refiere a los dibujos adjuntos en los cuales: la Figurá 1 es un diagrama de bloques de un controlador multimedia doméstico 100 interconectado a varios dispositivos, de conformidad con una modalidad ilustrativa de la presente invención; la Figura 2 es un diagrama de bloques esquemáticos que muestra la arquitectura de hardware de alto nivel del sistema de la Figura 1; la Figura 3 es un diagrama de bloques esquemáticos que muestra la arquitectura de software de alto nivel del sistema de la Figura 1; la Figura 4 es un diagrama de- bloques que muestra los componentes de software principales involucrados en la creación de servicios que pueden ser efectuados por el sistema de la Figura 1; la Figura 5A-5M muestran un perfil de componentes para un reproductor de DVD, la Figura 6 muestra una configuración de zona para un receptor; las Figuras 7A-7C muestran una configuración de conexión para un receptor; las Figuras 8A-8H muestran una regla de servicios para escuchar una radio difusión; las Figuras 9A-9H muestran una implementación de servicio para reproducir un CD en un reproductor de DVD conectado con un receptor que está también conectado a bocinas de sonido ambiental; la Figura 10 es una captura de pantalla del flujo de trabajo automático; la Figura 11 es un diagrama de una estructura de mensaje para una interfaz de programación de aplicación (API) para el controlador de la Figura 1; la Figura 12 es un diagrama de flujo de mensaje que muestra cómo un dispositivo que utiliza Mac OS X interactúa con la API de la Figura 11; la Figura 13 es un diagrama de flujo de mensaje que muestra cómo un control remoto que transmite comandos de radio frecuencia (RF) interactúa con la API de la Figura 11; la Figura 14 es un diagrama de flujo de mensaje que muestra cómo un reproductor de DVD con salida S/PDIF puede utilizarse para un dispositivo de control con la API de la Figura 11. DESCRIPCIÓN DETALLADA DE UNA MODALIDAD ILUSTRATIVA La Figura 1 es un diagrama de bloques de un controlador multimedia programable 100, interconectado a varios dispositivos de conformidad con una modalidad ilustrativa de la presente invención. El término "controlador multimedia programable" debe interpretarse en sentido amplio como un dispositivo que puede controlar, conmutar datos, y/o interoperar, con varios dispositivos electrónico como por ejemplo dispositivos de audio, video, telefonía, datos, seguridad, impulsados por motor, impulsados por relevador, y/o otros tipos de dispositivos electrónicos. Mediante la interacción con estos dispositivos, el controlador multimedia programable puede implementar una solución de control multimedia integrada. En la modalidad ilustrativa, el controlador multimedia programable 100 está conectado a una amplia variedad de componentes de audio/video como por ejemplo, un reproductor de disco compacto (CD) 105, un reproductor de disco versátil digital (DVD) 110, un receptor de audio/video 115, un televisor 120, un reproductor de medios personal 125, bocinas 122, un micrófono 123, y/o una cámara de video 124. El controlador multimedia programable puede también estar conectado a dispositivos de telefonía como por ejemplo una red de telefonía 130 y aparatos telefónicos 132. La red de telefonía 130 puede ser una red de telefonía públicamente conmutada (PSTN) , una Red Digital Servicios Integrados (ISDN) u otra red de comunicaciones. Además, el controlador multimedia programable puede intercomunicar con varios sistemas de automatización de luz y/o domésticos 135. Estos dispositivos pueden operar a través del protocolo X10 desarrollado por Pico Electronics, el protocolo INSTEON™ desarrollado por SmartHome, Inc, el estándar CEBus administrado por CEBus Industry Council, o bien otro protocolo bien conocido de automatización o control doméstico. Similarmente, el controlador puede estar conectado a dispositivos operados por motor y/o relevador 137 que pueden incluir, por ejemplo, un sistema de calefacción, ventilación y acondicionamiento de aire (HVAC) , un sistema de irrigación, un sistema de persianas o celosías automáticas, un cierre electrónico de puertas, u otros tipos de dispositivos . Una red de computadoras, como por ejemplo Internet 140, está conectada al controlador multimedia. Además, una computadora personal (PC) 145, sistemas de juegos de video 150, equipo de grabación doméstico 165 u otros dispositivos pueden también estar conectados. Además, una o varias unidades de control remoto 170 pueden proporcionarse con el objeto de administrar la funcionalidad del controlador, y/o para controlar dispositivos conectados al controlador. Las unidades de control remoto pueden estar interconectadas al controlador a través de una conexión de red alámbrica, un enlace infrarrojo, un enlace de radio ~ frecuencia, un enlace Buetooth™, un enlace ZigBee™ u otra conexión de datos apropiada . Además de proporcionar una interconexión con una amplia gama de dispositivos, el controlador multimedia programable puede combinar, sintetizar, o procesar de otra forma varios tipos de datos para implementar una solución multimedia integrada para un usuario. Para facilitar las interconexiones y procesamientos descritos arriba, el controlador multimedia programable 100 puede arreglarse de forma modular. Por ejemplo, en una modalidad, el controlador multimedia programable 100 está arreglado de tal manera que tiene doce módulos de entrada y salida separados, cada uno teniendo varios puertos de conexión. Los módulos de entrada y salida están insertados en ranuras o bahías de módulo del controlador multimedia programable 100. Los módulos están interconectados con un plano medio que proporciona conexión con el resto del sistema. Mediante el hecho de utilizar un enfoque modular, un usuario puede seleccionar los módulos específicos deseados, y el sistema puede ser adaptado para adecuarse a una aplicación particular. Además, el nivel de precio de inicio puede ser reducido permitiendo a un usuario adquirir una configuración de base, con capacidades limitadas, y después agregar al sistema mediante la compra de módulos adicionales. Varios ejemplos de módulo se comentan abajo, con referencia a las Figuras 4-10, 12 y 13. Se contempla expresamente que una amplia gama de módulos adicionales pueda proporcionarse, y por consiguiente, esta divulgación debe interpretarse como abarcando tales otras configuraciones posibles. Se contempla también que varios controladores multimedia programables puedan estar interconectados con el objeto de crear un sistema de mayor tamaño, implementando de hecho una solución de tipo modular a nivel de controlador. Detalles adicionales sobre dicha interconexión y expansión pueden encontrarse abajo con referencia a las Figuras 18 y 19. La Figura 2 es un diagrama de ^bloques esquemático que muestra una arquitectura de hardware de alto nivel del controlador multimedia programable. Los varios componentes mostrados pueden estar arreglados en una "tarjeta maestra" del controlador, o bien en varias tarjetas interconectadas por un plano posterior (no ilustrado) . Un microcontrolador 210 maneja la operación general del sistema. En la modalidad ilustrativa, el microcontrolador es un microcontrolador CF5234 de 32 bit disponible en Freescale Semiconductor Inc. El microcontrolador 210 está conectado a un conmutador de audio 215 y a un conmutador de video 220 a través de un bus 218. El conmutador de audio 215 y el conmutador de video 220 son preferentemente conmutadores cruzados capaces de conmutar varias conexiones simultáneamente. Sin embargo, muchos otros tipos de conmutadores capaces de conmutar señales digitales pueden emplearse, por ejemplo, .los conmutadores de ultiplexión por División de Tiempo (TDM) . Para comentarios adicionales sobre estos conmutadores, véase abajo con referencia a la Figura 3 y a la Figura 11. Un plano medio 235 interconecta los conmutadores y otros dispositivos a varios módulos de entrada y salida como por ejemplo Módulos de Entrada de Video Digital con HDMI 600, Módulo de Salida de Video con HDMI 1000, Módulo de Entrada de Audio digital 400, Módulos de Salida de Audio Digital 900. El plano medio 235 está conectado adicionalmente a un conmutador FM 230 que permite conmutar señales Ethernet lObaseT, lOObaseT o Gigabyte. El conmutador Ethernet FM 230 Interconecta puertos Ethernet FM232 y un subsistema de procesamiento 240 al microcontrolador . En una modalidad, el subsistema de procesamiento 240 incluye varias computadoras personales para propósitos generales que ofrecen una operación redundante y/o equilibrio de carga. En ciertas modalidades, el subsistema de procesamiento 240 puede incluir uno o varios dispositivos de almacenamiento, externos con relación a las computadoras personales, con el objeto de proporcionar una capacidad de almacenamiento expandida, para almacenar medios digitales. Comentarios adicionales sobre las varias modalidades del sistema de procesamiento de datos 240 pueden encontrarse abajo con referencia a las Figuras 14-16.
Asimismo, varios puertos de Bus Universal en Serie (USB) 240 están interconectados con un concentrador USB243 para interconexión con el subsistema de procesamiento 240. Una interfaz de tarjeta de memoria 225 puede también estar conecta al concentrador USB243. La interfaz acepta uno o varios formatos de tarjetas de memoria bien conocidos, como por ejemplo tarjetas CompactFlash™, tarjetas Stick™, tarjetas Secure Digital™ (SD) u otros formatos. Un conmutador de USB 244 se emplea para conmutar enlaces USB entre los varios componentes de procesamiento que pueden estar presentes. De manera similar, varios puertos IEEE1394 (FireWire™) 246 están interconectados a un concentrador IEEE1394 247 y a un conmutador IEEE1394 248. El microcontrolador 210 está conectado adicionalmente a un circuito de distribución 250 de Interfaz Periférica en Serie (SPI) y Circuito Inter-Integrado (I2C) , que proporciona una interfaz de comunicación en serie con dispositivos de velocidad de transferencia de datos relativamente baja. El controlador 250 SPI/I2C está conectado a un conector de plano medio 235 y ofrece por consiguiente comandos de control del microcontrolador 210 a los módulos y a otros dispositivos en el controlador multimedia programable 100. Conexiones adicionales del controlador SPI/I2C 250 se proporcionan a dispositivos, como por ejemplo un controlador de ventilador 251, un sensor de temperatura 252 y un circuito de manejo de energía 253, que manejan las características térmicas del sistema y evitan un sobrecalentamiento. El microcontrolador 210 está también conectado una interfaz infrarroja (IR) 260, una interfaz RS232 265, y una interfaz RF 267 que permiten interconexión con dispositivos externos. Dicha interacción permite que un controlador multimedia programable 100 controle dispositivos externos. Además, las interfaces pueden recibir señales de control que controlan la operación del controlador multimedia programable mismo. Se contempla expresamente que varios otras interfaces, incluyendo I-FI, Bluetooth™, ZigBee™ y otras interfaces alámbricas e inalámbricas puedan utilizarse con el controlador multimedia 100. Comentarios adicionales sobre estas interfaces, pueden encontrarse abajo con referencia con la figura 17. Además, un Puerto de Audio/Video Auxiliar 700 se proporciona para interconexión con uno o varios sistemas de video juegos, grabadoras, computadoras o a máquinas karaoke y otros dispositivos. Una interfaz de teléfono 270 se proporciona para conexión con la red de telefonía conmutada pública o con una red privada, y con aparatos telefónicos. Además, una interfaz de control de dispositivos 275 se proporciona para comunicar con dispositivos de alumbrado, automatización' doméstica, y dispositivos operados con motor y/o relevador. Como se comenta con mayores detalles abajo, un puerto de expansión 280 se proporciona para enlazar varios controladores multimedia programables conjuntamente con el objeto de formar un sistema expandido. Finalmente, una pantalla de panel frontal 1150 permite la presentación de estado, configuración, y/o otra información a un usuario. En una modalidad, el panel frontal puede desplegar datos de video que provienen de cualquier fuente de entrada conectada al sistema, de tal manera que se pueda ver previamente contenido de video en la pantalla. En otra modalidad, la pantalla de panel frontal 1150 incluye una pantalla sensible al tacto, y un usuario puede ingresar selecciones de control mediante la selección de iconos en la pantalla. La Figura 3 es un diagrama de bloques de la arquitectura de software de alto nivel del controlador 100. La arquitectura del software está organizada en forma de una serie de planos que incluyen un plano de control de sistema 302, un plano de interfaz de usuario (UI) 304, un acceso de interfaz de programación de aplicación de control (API) 306, un plano de servicio 308, un plano de medios 310, un plano de control de componente 312 y un plano de configuración/ajuste 314. El plano de control de sistema 302 incluye las funcionalidades de un administrador de sistemas 316, un lanzador de sistemas 318, un administrador de redundancia 320, un servidor de web 322, un servidor de pantalla de tacto/PDA 324, un administrador de acceso de sistemas remoto 326 y registros de sistema 328. El plano UI 304 comparte un servidor de UI , 330 con el plano de servicio 308. El plano de servicio 308 incluye las funcionalidades de un, controlador de servicio 332 que incluye un tiempo de funcionamiento de automotor 334. El plano de servicio 308 incluye también las funcionalidades de controlador de pantalla Mac 336, una aplicación de despliegue en pantalla (OSD) 338, aplicaciones de terceros 340, aplicaciones Mac 342 y un controlador de componente de audio 344. A través del tiempo de funcionamiento de automotor 334, el controlador de servicio 332 puede controlar aplicaciones Mac que incluyen Tunes, Chat, Photo y DVD que soportan Applescript, lo que permite un control de aplicación a aplicación. De manera similar a través de un tiempo de funcionamiento de automotor 334, un controlador de servicio 332 puede controlar otras aplicaciones de terceros que soportan AppleScript. El Plano de medios 310 incluye la funcionalidad de entrada/salida (I/O) de Mac en todos los formatos soportados (es decir, DVI, Ethernet, FireWire™) . Un plano de control de componente 312 incluye la funcionalidad de control de componentes de audio/video 348. Un plano de configuración/ajuste 314 incluye las funcionalidades de una aplicación de configuración de usuario 350, un compilador de configuración 352, la aplicación de control de servicio de usuario 354, un generador de flujo de trabajo 356 y una aplicación 358 de buscador de flujo de trabajo de control de servicio/motor de búsqueda/adecuación. El plano de configuración/ajuste 314 transmite también varios tipos de información a un plano de UI 304 y plano de servicio 308 incluyendo configuración de sistema 360, flujo de trabajo de automator 362, definiciones de servicios 364, perfiles de componentes 366 y ajustes de Mac 368. De conformidad con lo descrito con detalles abajo con relación a las Figuras 5-11, en una modalidad preferida, archivos XML son utilizados para representar configuración de sistema 360, flujo de trabajo de automator 362, definiciones de servicios 364 y perfiles de componentes 366. Las responsabilidades funcionales globales de los varios planos mostrados en la Figura 3 se comentarán a continuación. En general., un plano de control de sistema 302 'tiene la responsabilidad de tareas y procesos de sistema de alto nivel. Un administrador de redundancia 320 tiene la responsabilidad global para arreglos de redundancia que pueden ser provechosamente utilizados en un controlador multimedia 100. Por ejemplo, un subsistema de procesamiento 240 puede ser implementado utilizando dos computadoras Mac Mini™ de conformidad con lo indicado arriba. El uso de dos computadoras proporciona tanto la capacidad de compartir carga como un nivel de redundancia en caso de falla de una de las computadoras. Para que las dos computadoras funcionen correctamente cuando las dos están operando correctamente así como cuando una de las dos falla, los datos almacenados en las unidades de disco duro normalmente accesadas por solamente una de las computadoras deben ser sincronizados. Esto se efectúa preferentemente utilizando rsync, una capacidad que es parte del sistema OS X. Además una de las computadoras será diseñada como la computadora "primaria" con base en un arbitraje que se efectúa al encenderse el controlador multimedia 100. La computadora "secundaria" opera en una función subordinada con relación a la computadora primaria. Una modalidad de un arbitraje empieza con cada computadora anunciando su presencia utilizando el Bonjour Ñame Service. Cuando una computadora descubre otra computadora, se conectará con la computadora. Si ambas computadoras son candidatos para volverse primarias, entonces la computadora con la dirección de Ethernet de control de acceso más alta se volverá la computadora primaria. Cada computadora mantendrá una conexión abierta y "ping" (Agrupador de Paquetes de Internet) entre ellas. Si la computadora primaria no responde a pings (Agrupadores de paquetes de Internet), entonces la computadora secundaria asumirá la función de computadora primaria. ,La computadora primaria es responsable de asignar los flujos de recursos entre dicha computadora primaria y la computadora "secundaria". Medios insertables/removibles (por ejemplo, unidades Fire ire o USB, cámaras iPods) están conectados a la computadora primaria. Los datos recopilados por la computadora primaria a partir de tales dispositivos pueden ser transferidos a la computadora secundaria a través de puntos de montaje compartidos o bien a través de otra técnica . El acceso de API de control 306 tiene la responsabilidad de una API a través de la cual el contralor multimedia 100 puede estar controlado por un usuario que puede seleccionar o utilizar dispositivo habilitado por Web, un dispositivo de tipo control remoto RF, una pantalla táctil, un PDA o un teléfono celular. El plano de UI 304 tiene responsabilidad funcional para una interfaz de usuario con el controlador multimedia 100. Un plano de servicio 308 tiene responsabilidad funcional para implementar servicios de conformidad con lo descrito arriba. En tiempo de funcionamiento de automator 334 tiene la responsabilidad de recibir peticiones o comandos de usuarios y mapearlos en un flujo de trabajo para un servicio particular. El plano de medios 310 tiene la responsabilidad funcional para Mac I/O así como las demás interfaces de comunicaciones internas y externas soportadas por un controlador multimedia 100. El plano de control de componentes 312 tiene responsabilidad funcional para el control de las operaciones de componentes de audio o video que pueden estar interconectados con el controlador multimedia 100. El plano de configuración/ajuste 314 tiene la responsabilidad funcional de habilitar los usuarios para que configuren el controlador multimedia 100; para seleccionar, crear o modificar servicios; y para seleccionar, crear o modificar perfiles de componentes. Con referencia ahora a la Figura 4, se muestran con mayores detalles las relaciones lógicas entre ciertas unidades funcionales ilustradas en la Figura 3. Una recopilación de datos almacenados internamente en el sistema de controlador multimedia 100 u obtenidos a partir de una fuente externa (por ejemplo, un sitio Web designado que tiene una biblioteca de perfiles de componentes) se indica a través del número de referencia 402. Una recopilación de datos 402 incluye perfiles de componentes, tipos de medios y reglas de servicios, preferentemente en forma de archivos XML . como se comentó arriba. Una segunda recopilación de datos es proporcionada por el usuario y se indica a través del número de referencia 404. Una recopilación de datos 404 incluye información de configuración de conexión e información de configuración de sistemas, otra vez preferentemente en forma -de archivos XML. Un usuario que interactúa con la aplicación de configuración de usuario 350 que es implementada^ preferentemente en formas de un tutorial interactivo en pantalla, generará los datos contenidos en la recopilación de datos 40. El tutorial puede estas desplegado en la pantalla de panel frontal 1150 (Figura 1) o bien en un televisor u otro despliegue conectado a un controlador multimedia 100. Además, mediante la utilización de un micrófono y bocinas conectadas al controlador multimedia 100 y mediante la utilización de las capacidades de reconocimiento/síntesis de voz que forman parte del sistema operativo Mac OS X, el tutorial en pantalla puede ser mejorado para los usuarios con deficiencia visual. De esta manera, en lugar de indicaciones en pantalla, preguntas de voz sintética pueden ser planteadas al usuario que contesta simplemente con la voz. Alternativamente, una aplicación de configuración de usuario 350 puede ser implementada en forma de un programa "fuera de linea" que puede funcionar en la computadora Mac u otro dispositivo no necesariamente conectado al controlador multimedia 100. Esta implementación será provechosa para instaladores profesionales que desean preparar una configuración antes de la instalación fisica del controlador. La aplicación de configuración 350 puede ser utilizada para crear perfiles de usuario comentados arriba. Los perfiles de usuario permiten a cada 'usuario personalizar sus entornos de sistemas, estilos, colores y similares para el despliegue en pantalla que el controlador multimedia 100 presentará a este usuario. Los perfiles de usuario pueden incluir también restricciones de servicio. Por ejemplo, un perfil de usuario para un niño puede contener cierta información que bloquea el acceso a video para adultos o canales por cables para adultos. Un perfil de usuario puede ser implementado en forma de un archivo XML u otro archivo de datos o estructura que es compatible con otros aspectos de sistemas que requieren acceso a el. Un usuario que interactúa con una herramienta de perfil de componente 400 seleccionará efectivamente perfiles de componente entre los perfiles disponibles en la biblioteca de controlador multimedia 100, dará instrucciones al controlador para descargar un perfil requerido a partir de un sitio Web designado u otra fuente, o bien modificará posiblemente un perfil existente o creará un perfil totalmente nuevo si se desea . La herramienta de 400 de perfil de componente puede incluir también una funcionalidad para "aprender" los comandos IR o RF transmitidos por un control remoto convencional. Por consiguiente, un usuario que está creando un nuevo perfil de componentes para un componente que tiene un control remoto puede enseñar rápidamente el conjunto de comandos de control remoto a una herramienta 400 de perfil de componente. La herramienta 400 de perfil de componente puede también funcionar en combinación con un lápiz óptico (no ilustrado) mediante la cual un usuario puede escanear uno códigos de barras de un fabricante colocados en un chasis de componente o posiblemente en el empaque del componente. Una vez que un código de barras ha sido escaneado, la herramienta 400 de perfil de componente intenta encontrar una correspondencia en la biblioteca de perfiles de componente o busca el perfil apropiado de un sitio Web designado u otra fuente. La recopilación de datos 402 puede incluir también perfiles de aplicaciones, también preferentemente implementados como archivos XML, para controlar aplicaciones de terceros (como por ejemplo iTunes, iChat) como parte de un servicio. En una modalidad preferida, un perfil de aplicación puede ser implementado esencialmente en forma de una lista de acciones ejecutadas mediante la utilización de un Applescript. Sin embargo perfiles de aplicaciones, como los demás constructos descrito, pueden ser implementados en varias otras formas. Recopilaciones de datos 402 y 404 se suministran como entradas al compilador de configuración 352, que, en respuesta, genera una implementación de servicio. La implementación de servicio a su vez es suministrada como entrada a definición de servicios 364. Una aplicación de control de servicios de usuario 354 permite a un usuario revisar los servicios implementados y modificarlos o removerlos. La definición de servicios 364 proporciona definiciones de servicio al controlador de servicios 332 y al generador de flujo de trabajo 356. Definiciones de servicio incluyen especificaciones de qué zonas, servicios y componentes se encuentran en la configuración de sistema. Un controlador de servicio 332 responde a las definiciones de servicio mediante la creación de estados internos y objetos para manejar la zona, servicios y componentes. Un controlador de servicios 332 utiliza también las definiciones de servicio para ayudar a identificar qué conjuntos de flujo de trabajo de automator existirán. Utilizando la información contenida en las definiciones de servicios, el generador de flujo de trabajo 356 genera un conjunto de flujo de trabajo "por omisión" inicial tanto en forma de un ejecutable como en forma de una representación gráfica. Cada zona y servicio en las definiciones de servicios tiene un flujo de trabajo implementado para cada solicitud que el servicio implementa. La forma ejecutable del flujo de trabajo es ejecutada por el controlador de servicios 332 (Figura 3) . Una aplicación de buscador de flujo de trabajo/motor de búsqueda/adaptación 358 puede utilizarse para desplegar, inspeccionar y modificar las representaciones gráficas de los flujos de trabajo. Cuando un usuario edita una representación gráfica, la forma ejecutable correspondiente es automáticamente cambiada de conformidad con las ediciones del usuario. Por consiguiente, un usuario puede trabajar fácilmente con flujos de trabajo y adaptarlos en un entorno de programación gráfica, mientas edita la lógica compleja y los detalles de los ejecutables subyacentes. Además, capacidades de reconocimiento/síntesis de voz que son parte del sistema operativo Mac OS X pueden utilizarse en combinación o alternativamente a la aplicación de buscador de flujo de trabajo/motor de búsquedas/adaptación 358. Las Figuras 5A-5M muestran un ejemplo de un perfil de componente implementado en una modalidad preferida como archivo XML. Se entenderá por parte de las personas con conocimientos en la materia que los perfiles de componente, asi como cualquiera de los demás constructos descritos aquí, pueden implementarse de varias formas utilizando técnicas bien conocidas, lenguajes y estructuras de datos que incluyen bases de datos accesibles a través de lenguajes de solicitud estándares, representaciones binarias cerradas, archivos de texto, archivos HTML en hojas de cálculo u otros métodos de almacenamiento de datos basados en archivos. Más específicamente las Figuras 5A-5M muestran un perfil de componente para un reproductor de DVD Integra modelo DPS-5.5. La sección indicada por el número de referencia 500 especifica que el reproductor de DVD tiene un puerto de comunicación en serie RS232 que puede ser utilizado para controlar el reproductor. La sección 502 especifica que el reproductor de DVD tiene salidas de audio digital disponibles en un conector coaxial asi como un conector óptico. La sección 504 especifica que el reproductor de DVD tiene una salida de video de componente disponible tanto en un conector BNC como en un conector coaxial, y que salidas compuestas S-video (izquierdo y derecha) están disponibles. La sección 506 especifica varias condiciones de estado posibles que el reproductor de DVD puede reportar: espera, reproducción, pausa, parada y desconocido. Similarmente, la sección 508 especifica varios tipos de medios que el reproductor de DVD puede reportar que han sido cargados en el reproductor: DVD, VCD, CD, datos o desconocido. Cualquiera de estos posibles reportes puede ser mapeado en un servicio dado y utilizado como evento de activación para cierta acción por el controlador multimedia 100. Por ejemplo, un reporte en el sentido que un DVD ha sido cargado en el reproductor podría causar que el controlador 100 encienda el televisor (u otro despliegue especificado) así como el sistema de sonido ambiental anticipándose al deseo de un usuario de ver un DVD. La sección 510 especifica las etiquetas de entrada/salida físicamente presentes en el chasis del reproductor de DVD. La sección 512 especifica el comando que, cuando es enviado al puerto RS232 del reproductor de DVD encenderá el equipo. A la inversa, la sección 514 especifica el comando que apagará el equipo. La sección 516 especifica el comando para reproducir. Las secciones restantes, de las Figura 5C-5M especifican otros comandos RS232 a los cuales este reproductor de DVD particular responderá. La Figura 6 muestra una configuración de zona, implementada como un archivo XML, para una zona marcada "Lab" que utiliza un receptor Integra modelo DTR-10.5 como el maestro de zona. La zona contiene también un monitor de pantalla de plasma NEC px_42xr3a, un receptor de cable Motorola 62000, un reproductor de DVD/CD Integra DPS-5.5 y bocinas de sonido ambiental Bay Audio, todo de conformidad por lo especificado por la sección 606. La sección 600 especifica los módulos de entrada/salida físicos (y las ranuras que ocupan cada uno de ellos) instalados en el receptor. La sección 602 describe el formato de una entrada definida por el receptor llamado "DVD" puesto que este receptor Integra particular tiene entradas asignables, un usuario puede proporcionar a la entrada un nombre simple. Asi, las secciones 602 y 604 son necesarias para informar a la función de configuración de la presente invención cómo el usuario ha asignado realmente las entradas en el receptor. La configuración muestra que el receptor ha asignado un nombre de entrada asignable "DVD" para corresponder a las entradas nombradas "Entrada de Estéreo 1" para audio "Entrada de Componente 2" para video. La sección 604 especifica el formato de una entrada definida por el receptor llamado "vides 1." La configuración muestra que el usuario ha asignado la entrada "Video 1" para ser mapeada en las entradas nombradas "Entrada de Estéreo 2" para audio y "Entrada de Componente 2" para video. Las Figuras 7A-7C muestran un ejemplo de una configuración de conexión para un receptor Integra modelo DTR-10.5. La sección 700 especifica que una salida de audio analógica (Conector RCA) desde un reproductor de DVD Integra está conectada a una entrada de estero 1 (Conector RCA) en el receptor Integra. La sección 702 especifica que una salida de audio (Conector RCA) de una caja de televisión por cable Motorola está conectada a una entrada de estero 2 (Conector RCA) en el receptor Integra. La sección 704 especifica que una salida de video de componente (conector coaxial) de reproductor de DVD Integra está conectada a la entrada de video 1 (Conector coaxial) en el receptor Integra. La sección 706 especifica que una salida de video (conector coaxial) en la caja de televisión por cable Motorola está conectada a la entrada de video de componente 2 (conector coaxial) en el conector Integra. La sección 708 especifica que una salida de video de componente (conector coaxial) en el receptor Integra está conectada a una entrada de video de componente (conector coaxial) en un televisor de plasma NEC. La sección 710 especifica que un conjunto de bocinas de sonido ambiental 7.1 están conectadas a las terminales de "Bocinas, A" en el receptor Integra. La sección 712 especifica que el receptor Integra tiene un puerto RS232 a través del cual puede ser controlado. De manera similar, la sección 714 especifica que el televisor de plasma NEC tiene un puerto RS232 a través del cual puede ser controlado. Las Figuras 8A-8H muestran una regla de servicio para escuchar una radiodifusión que puede ser procesada por un procesador de señales digitales para decodificación o efectos deseados. La sección 800 especifica los recursos necesarios para implementar este servicio. Una fuente de radio; una función de conmutación de audio (para conmutar la señal de audio de entrada al dispositivo de salida (bocinas) ) ; una función de procesador de sonido ambiental y bocinas de sonido ambiental; o una fuente de radio; una función de conmutación de audio; una función de control de volumen; una función de amplificador; y bocinas estéreo. La sección 802 especifica dos solicitudes universales, específicamente encendido y apagado. La sección 804 especifica solicitudes de control de volumen que incluyen condición muda activada y desactivada. La sección 806 especifica una serie de solicitudes que se relacionan con opciones de procesamiento de sonido ambiental. La sección 808 especifica solicitud relacionada con control de radio incluyendo selección de frecuencias, selección preestablecida, despliegue y escaneo.
Las FIGURAS 9A-9H muestran una implementación de servicio para reproducir un CD en un reproductor de DVD en donde el reproductor de DVD está conectado a un receptor que puede procesar sonido ambiental. La sección 900 especifica los siguientes componentes (audio) que son necesarios para implementar el servicio: un reproductor de DVD Integra modelo DPS-5.5; y un receptor Integra modelo DTR-10.5 (que incluye una capacidad de procesamiento de sonido ambiental); y un grupo de bocinas para sonido ambiental. La sección 902 especifica todas las solicitudes de usuario o comandos que el reproductor de DVD y receptor reconocerán. La FIGURA 10 es una captura de pantalla que muestra un ejemplo de un flujo de trabajo cuando se observa utilizando la aplicación Automator de Apple Computer, Inc. La aplicación Automator que es suministrada como parte del sistema operativo Mac OS X, ofrece una capacidad de programación gráfica sencilla. Dicho entorno ofrece un entorno cómodo, más fácil de utilizar para ver y modificar flujos de trabajo creados utilizando la presente invención. Sin embargo, las personas con conocimientos en la materia entenderán que otros entornos de programación gráfica de terceros pueden utilizarse o adaptarse para su uso con la presente invención o dicho entorno puede ser creado específicamente para su uso con el controlador multimedia 100.
En la FIGURA 10, los paneles numerados 1000, 1002 representan acciones discretas que deben ser ejecutadas consecutivamente. Por ejemplo, en el panel 1000, la acción especificada es para encender un reproductor de DVD Integra modelo DPS-5.5. En el panel 1002, la acción especifica es encender un receptor Integra modelo DTR-10.5. La FIGURA 11 es un diagrama de una estructura de mensaje para una interfaz de programación de aplicación (API) para el controlador de la FIGURA 1. Cada mensaje incluye una porción de encabezado 1100, que puede ser implementada utilizando cualquier encabezado de Ethernet, IP, TCP o UDP. Una porción de encabezado 1100 está seguida por una porción de carga útil 1102. Una porción de carga útil 1102 incluye información que identifica una zona, servicio, evento y tipo de evento. Una porción de carga útil 1102 puede implementarse simplemente como series de longitud variable de caracteres ASCII, puede también implementarse utilizando cualquier otro tipo de estructura de datos bien conocidos. La FIGURA 12 es un diagrama de flujo de mensaje que muestra cómo un dispositivo que utiliza MAC OS X interactúa con la API de la FIGURA 11 y se utiliza para controlar la operación del controlador multimedia 100. Un dispositivo que utiliza MAC OS X es indicado por el número de referencia 1200. En una modalidad preferida, el dispositivo 1200 intentará inicialmente auto-detectar un servidor (es decir, servidor de interfaz 330 (FIGURA 3) ) por medio de la difusión de búsqueda 1202 Bonjour Ñame Service que es parte de OS X. Un servidor de interfaz de usuario 330 incluye Bonjour Ñame Registration 1204. Un mensaje Bonjour Service Discovery 1206 es expedido por el dispositivo 1200 y recibido por el servidor de interfaz de usuario 330. Esto es seguido por una solicitud de registro 1208 que es procesado por Bonjour Ñame Registration 1204 y reconocida a través del mensaje de confirmación de registro 1210. Una vez registrado el dispositivo 1200, subsiguientemente un usuario oprime un botón 1212 (por ejemplo incrementa el volumen del televisor) lo que provoca la expedición de una indicación de comando 1214 al servidor de interfaz de usuario 330. La indicación de comando 1214, asi como la solicitud de comando 1220, confirmación de comando 1222 e indicación de comando 1226 estarán construidas, en general, de conformidad con la estructura de mensaje mostrada en la FIGURA 12. Un servidor de interfaz de usuario 330 reconoce indicación de comando 1214 como un comando de control o solicitud y responde mediante la expedición de un mensaje de envía comando al controlador de servicio 332 (FIGURA 3) que reacciona según la implementación de servicio aplicable para elevar el volumen del televisor. En el caso de un comando interactivo 1218 (por ejemplo, un usuario desea ver una presentación gráfica de la carátula de un álbum) , que requiere datos provenientes de un servidor de interfaz de misma área 330, una solicitud de comando 1220 es expedida por el dispositivo 1200 hacia el servidor de interfaz. de usuario 330. El servidor de interfaz de usuario 330 responde con una confirmación de comando 1222 que devuelve los datos solicitados al dispositivo 1200. En el caso de un comando interactivo no solicitado 1224 (por ejemplo, un usuario carga un DVD en un reproductor de DVD o desconecta un componente) , un servidor de interfaz de usuario 330 expide simplemente una indicación de comando 226 para informar al dispositivo 1200 del evento. La FIGURA 13 es un diagrama de flujo de mensaje que muestra cómo el dispositivo 1300, como por ejemplo un control remoto, que transmite comandos de radio frecuencia (RF) interactúa con la API de la FIGURA 11. Un comando RF "bruto" 1302 es inicialmente transmitido por el dispositivo 1300. Un servidor de interfaz de usuario 330 recibió el comando de RF y lo convierte 1304 en un mensaje de zona/servicio/evento/tipo de evento como se muestra en la FIGURA 11. El mensaje convertido es entonces enviado 1306 al controlador de servicios 332 que reacciona según la implementación de servicio aplicable. La FIGURA 14 es un diagrama de flujo de mensaje que muestra cómo un reproductor de DVD con una salida de formato Sony/Philips Digital Interconnect (S/PDIF) puede utilizarse como dispositivo de control con la API de la FIGURA 11. Un reproductor de DVD convencional (o bien simplemente un chip de decodificador de video que implementa la funcionalidad básica de un reproductor de DVD) 1400 es alimentado con un DVD especial que puede contener, por ejemplo, un video interactivo o impulsado por menú que presenta una serie de menús, un "panel de control" de sistema o bien opciones de control similares a un usuario. Como se describe con detalles en la solicitud copen-diente mencionada arriba, conforme el usuario selecciona opciones de control, el reproductor de DVD 1400 responde mediante la producción de una corriente de audio de salida en donde está integrada la información de control. El archivo de sonido de salida S/PDIF es convertido por un adaptador 1402 a música WiFi S/PDIF 1408 que es - transmitida de manera inalámbrica a un receptor S/PDIF 1404 que es parte del controlador multimedia 100 (FIGURA 1) . El receptor 1404 convierte la música S/PDIF recibida 1408 en un comando 1410 que es pasado al servidor de interfaz de usuario 330. Ejemplos de Servicios A continuación se describirán ejemplos representativos de servicios que pueden ser implementados utilizando la presente invención. Se entenderá por parte de las personas con conocimientos en la materia que la siguiente descripción se ofrece solamente a titulo de ejemplo y que la presente invención puede proporcionar mucho más servicios, tanto en cuanto a tipos como a cantidades, más allá de los ejemplos específicos descritos aquí. Servicios relacionados con video Un servicio que proporciona videoconferencias, incluyendo videoconferencias entre varias partes, puede crearse y utilizarse dentro del marco de la presente invención. Señales de video y señales de audio para una conferencia de video pueden provenir ya sea de Internet 140 (FIGURA 1), PSTN 130 u otra fuente interconectada con un controlador multimedia 100. Si se desea, señales de video pueden ser transportadas en Internet mientras que señales de audio correspondientes pueden ser transportadas por PSTN. Este arreglo proporciona una calidad de audio superior en comparación con la videoconferencia en donde las señales de audio son transportadas a través de Internet. Otro servicio que la presente invención soporta es el video charla que incluye charla entre varias partes. Dicho servicio puede basarse en su totalidad o en parte en iChat o funcionalidad similar disponible de terceros. Otro servicio que soporta la presente invención es correo de video, que puede considerarse como un correo electrónico en el cual el contenido es video a diferencias de textos o gráficas . Otro servicio que soporta la presente invención es video con características de telefonía integradas. Dicho servicio proporciona una presentación de "imagen en imagen" en un televisor u otro dispositivo de despliegue para mostrar la identidad de la persona que efectúa la llamada u otra iriformación relacionada con una llamada entrante. Dicho servicio puede también ofrecer el despliegue de mensajes de texto o proporcionar una mensajería unificada a través de un solo buzón en el cual un usuario recibiría correos electrónicos, correos de video, correos de voz, fax, etc. Otro servicio que soporta la presente invención es video sobre pedido (VoD) o video podcasting ya sea de alta definición o bien de definición estándar. Otro servicio que soporta la presente invención es procesamiento de video incluyendo una o varias de las funciones siguientes: conversión de espacio de color; tamaño de captura de entrada flexible; conversión gamma ajustable; introducción con teclas; procesamiento de movimiento; zonificación; compensación diagonal; entradas en vivo múltiples; reducción de ruido 3D; mezclado alfa; afinación inteligente de imágenes; cambio transparente; conversión video ascendente; escalamiento de video y redefinición de tamaño; grabación, reproducción y edición de HD-DVD; reproducción de DVD; capacidades DVR/PVR; decodificación/codificación MPEG; trans-codificación de video; y decodificación de sonido ambiental (es decir, Dolby y DTS) .
En general, cualquiera de los anteriores u otros servicios relacionados con video puede ser creado para funcionar con cualquiera de los estándares de codificación de video digital principales incluyendo MPEG-2, MPEG-a AVC, DivX, JPEG, BMP y PNG para imágenes. Servicios relacionados con mensajería Un servicio que ofrece mensajería instantánea es soportado por la presente invención. Dicho servicio puede ofrecer una funcionalidad de servicio de mensaje corto (SMS) . Servicios relacionados con audio Un servicio que soporta la presente invención ofrece una o varias de las funciones o varias de las funciones de radio siguientes: radio Internet; radio de alta definición; FM; AM; y radio satelital. Otro servicio que soporta la presente invención es una rocola digital que incluye la capacidad de crear listas de reproducción "inteligentes" basadas en preferencias de usuario. Dicho servicio puede incluir organización y despliegue de meta-datos con relación a artista y título así como recuperación automática de tales meta-datos en la Internet (por ejemplo, Gracenote® MusicID u otro servicio) . Otro servicio que soporta la presente invención es el karaoke, que puede implementarse ya sea con micrófonos alámbricos o inalámbricos.
Otro servicio que soporta la presente invención es reconocimiento de voz/síntesis, cuya funcionalidad básica es parte del sistema operativo MAC OS X. Dicho servicio puede también basarse total o parcialmente en reconocimiento/síntesis de dos de terceros que es compatible con el controlador multimedia 100. Servicios relacionados con juegos Un servicio que soporta la presente invención es juegos interactivos que incluyen juegos en línea y juegos de casa entera . Servicios de automatización domestica y servicios relacionados con seguridad Un servicio que la presente invención soporta es seguridad, incluyendo vigilancia a distancia a través de Internet, seguridad inteligente, control de sistema de alarma, control de alumbrado, control de HVAC, control de sistema de riego y uso de DVR/PVR para video-grabación de seguridad. La presente invención soporta un servicio para monitoreo remoto y detección de la salud del usuario así como telemedicina . Servicios de configuración, administración y relacionados con control . Como se comento con detalles arriba, la presente invención ofrece asistencia sustancial y comodidad a un usuario con relación a la configuración de un controlador multimedia 100 a través de un tutorial en linea y similares. Una vez que un sistema es inicialmente configurado y funcionando, la presente invención soporta un servicio en el cual cuando una computadora u otro dispositivo que puede contener medio digital está conectado a un controlador multimedia 100, carpetas designadas o áreas de está computadora o dispositivo pueden ser exploradas para nuevos medios antes no disponibles al controlador. Cualquier nuevo medio puede ser automáticamente descargado al controlador y almacenado de conformidad con una biblioteca u otra organización especificada por el usuario. De manera similar la presente invención soporta un servicio en el cual un controlador multimedia 100 está siempre encendido/siempre monitoreando y divulga automáticamente e identifica nuevos componentes cuando están interconectados con el controlador. Además, una vez identificado el nuevo componente, dicho servicio puede informarle al usuario a través de información en pantalla, correo electrónico u otro medio en el sentido que el nuevo componente está reconocido e informarle además sobre los nuevos servicios que el usuario puede desear activar y utilizar con relación al componente. Otro servicio que soporta la presente invención es el control de televisión en vivo y televisión grabada, incluyendo cambios de tiempo.
Otro servicio que soporta la presente invención es la sincronización remota de dispositivos portátiles incluyendo reproductores de audio y video portátiles como PDAs, computadoras y similares. De la misma manera, la presente invención soporta un servicio en donde contenido remoto es programado para recuperación y almacenamiento en DVR/PVR. Servicios relacionados con música digital La presente invención soporta un servicio para grabar audio I ya sea en vivo o bien de otra fuente. Dicho servicio puede basarse, totalmente o en parte, en GarageBand de Apple Computer . Otro servicio que soporta la presente invención es integración con servicios de compra de música incluyendo la tienda de música iTunes, Napster ToGo, Yahoo! Music y similares. Otro servicio que soporta la presente invención es una plataforma de mezclado DJ que incluye una o varias de las funciones siguientes: mezclado automático; correspondencia de ritmo de un clic; bucle transparente; contador de BP automático; simulación de vinilo incluyendo ruidos, tonos y reproducción , inversa; salida de audífonos separada y pre-escucha de canciones; y grabación mezclada. Otro servicio que soporta la presente invención es un estilo de música electrónica que incluye una o varias de las funciones siguientes: ruta; mapa; filtro; conversión; despliegue; mensajes de entrada y salida MIDI en tiempo real. Otro servicio que soporta la presente invención es una máquina de tambor interna y generador de bucles. Otro servicio que soporta la presente invención es un generador de vibra de acordes de despliegue en pantalla interactiva . Otro servicio que soporta la presente invención es herramientas de música integradas incluyendo una o varias de las capacidades siguientes: sintonizador de guitarra; cromático y tonal; editor de sintonización alternativa; biblioteca de acordes; organizador de tablatura; máquina de mezclado; y metrónomo. Dicho servicio puede incluir también colaboración musical y reproducción que puede basarse en totalidad o en parte en eJamming™ u otro software de tercero. Servicios relacionados con servidor de medios digitales La presente invención soporta un servicio que ofrece un concentrador de medios digitales con adaptador de medios digitales integrado. Dicho servicio puede ofrecer también un servidor de medios digitales capaz de dar servicios de video, audio, efectos digitales, datos, voz y soportar técnicas principales de compresión de audio incluyendo MP3, ACC, Apple Lossless Compression, FLAC, Ogg Vorbis y Monkey' s Audio. Servicios relacionados con distribución de medios digitales para toda la casa La presente invención soporta un servicio que ofrece una o varias de las funcionalidades siguientes: audio para toda la casa incluyendo distribución de audio a toda la casa en zonas múltiples; video para toda la casa incluyendo distribución de video para toda la casa en zonas múltiples; juegos para toda la casa incluyendo distribución de juegos para toda la casa en zonas múltiples; y visualizador para toda la casa para distribuir diferentes visualizadores a diferentes zonas (cuartos) en donde se reproduce independientemente contenido diferente de música (audio) . Dicho servicio puede ofrecer también un reloj despertador digital para' toda la casa y una funcionalidad de recordatorio que incluye desplegar recordatorios o efectuar tareas automáticas; integración con Digital Jukebox (QuickTime/iTunes ) ; reproducir archivos de medios, difusiones web y CDs/DVDs; efectuar indicaciones de despertar y recordar con contenidos de medios digitales especificados por usuario incluyendo radio Internet, MP3 así como Digital Jukebox Playlist [lista de reproducción de rocola digital] ; y redactar/enviar automáticamente correos electrónicos que incluyen recordatorios de correo de video. Servicios relacionados con VOIP/Telefonía/IP PBX La presente invención soporta un "servicio que ofrece voz a través de capacidades IP (VOIP) incluyendo un adaptador de telefonía analógico integrado (ATA) , central de sucursales privadas IP (PBX) y sistema de teclas de IP. Dicho servicio puede ofrecer también el paisaje inteligente de llamadas, marcado, activado por voz, integración de tono de devolución de llamada con color, servicios de sigúeme/encuéntrame asi como administración de llamadas entrantes/salientes. Para manejar llamadas telefónicas entrantes, un servicio puede ser implementado en el cual se recopila información de ID de la persona que efectúa la llamada (esta capacidad está presente en la interfaz telefónica 270 (en la FIGURA 2) que incluye una interfaz FXO, seguro descrito en la solicitud copen-diente) . El servicio puede reportar o desplegar la información de la ID de la persona que efectúa la llamada a una o varias interfaces de usuario, según lo deseado. Además, mediante la utilización de la información de ID de la persona que efectúa la llamada, se puede efectuar una búsqueda en un directorio de usuario con el objeto de determinar si la parte que efectúa la llamada aparece en esa lista. Si existe una correspondencia en el directorio, el controlador multimedia 100 puede ^desplegar en la interfaz de usuario el nombre de la parte que efectúa la llamada, su fotografía u otra información en lugar del número de teléfono por además de dicho número. De manera provechosa, el usuario no tiene que hacer nada más que operar un aparato telefónico de manera habitual. Para manejar llamadas telefónicas salientes, una vez descolgado un aparato telefónico y una vez que el usuario empieza a marcar, los dígitos pueden ser recopilados (capacidad de detección de tono DTMF presente en la interfaz de teléfono 270 que incluye una interfaz FXS) . Otra vez, una búsqueda en el directorio del usuario determinara sí la llamada está siendo efectuada por alguien que aparece en la lista en el directorio. Si es el caso, el usuario puede recibir opciones particulares (se le puede anunciar simplemente al usuario a través del teléfono o bien se pueden desplegar en una pantalla de video) , asociadas con la parte a quien se está efectuando la llamada, para efectuar la llamada. Por ejemplo, si el directorio muestra que la parte a quien se está efectuando la llamada tiene una capacidad de video teléfono una cuenta Skipe, iChat o un servicio similar, el usuario puede seleccionar cualquiera de esas opciones para efectuar la llamada. El usuario puede seleccionar una opción de efectuación de llamada oprimiendo simplemente un botón en el teléfono, haciendo una selección en una pantalla táctil o bien a través de cualquiera de varias interfaces de usuario soportadas por la presente invención. Otra vez, el usuario no tiene que conocer ningún comando especial ni pasos complicados de operación puesto que está simplemente utilizando un teléfono de manera habitual . Otros servicios pueden ser implementados ' en donde los cuales un usuario opera un teléfono de manera normal, pero está habilitado para abrir o cerrar una reja, una puerta de garaje, o luces y similares. Servicios relacionados en linea La presente invención soporta un servicio que ofrece un servicio de asistente personal o un servicio de conserje para obtener, organizar y desplegar información relacionada con entretenimiento u otra información dentro del domicilio o en otro entorno. Dicho servicio puede proporcionar un despliegue en pantalla u otra información de medios especificada por usuario en materia de tiempo, deporte, acciones, compras de boletos en linea, reservaciones en linea, correo electrónico, creación de lista de compras y sincronización PDA u otros dispositivos portátiles, recetas y reportes de tráfico incluyendo video. Mientras que algunas de las modalidades de la presente invención descrita arriba utilizan varias funcionalidades proporcionadas por el sistema operativo MAC OS X (por ejemplo, Automotor, Applescript) , la presente invención no requiere' de este sistema operativo particular de ninguna manera. La presente invención, que incluye en particular el aspecto de servicios programables de la presente invención, puede implementarse con relación a cualquier sistema operativo deseado incluyendo sin limitación Windows y Linux. La descripción anterior a sido enfocada a modalidades particulares de está invención. Será aparente, sin embrago, que otras variaciones y modificaciones pueden efectuarse a las modalidades descritas logrando algunas o todas sus ventajas. Además, los procedimientos o procesos pueden ser implementados en hardware, software, incorporados como medio legible en computadora que tiene instrucciones de programa, firmware, o una combinación de ellos. Por consiguiente, es el objeto de las reivindicaciones adjuntas abarcar todas las variaciones y modificaciones que están dentro del espíritu y alcance verdadero de la invención.