Программируемый мультимедийный контроллер с программируемыми функциями

Иллюстрации

Показать все

Изобретение относится к областям мультимедиа и связи и более конкретно к программируемому мультимедийному контроллеру, предназначенному для домашнего и коммерческого применения, профессиональной работы с аудио или видео, вещания или студийной работы, обеспечения безопасности, автоматизации или других сфер применения, который выполнен с возможностью взаимодействия, контроля и управления широким спектром аудио- и видеоустройств, устройств связи, передачи данных и другими устройствами. Техническим результатом является обеспечить наилучшую совместную работу аудио- и видеоустройств и предоставить наиболее качественные развлекательные функции. Указанный технический результат достигается тем, что предложена интегрированная система, которая базируется на универсальном компьютере и обеспечивает связь, контроль или управление широким спектром аудио- и видеоустройств, устройств связи, передачи данных или других устройств. Система включает в себя среду программирования, позволяющую создавать функции или пользовательские события, которые могут включать в себя характеристики или функциональные возможности нескольких устройств, традиционно используемых отдельно как независимые устройства. 17 з.п. ф-лы, 42 ил.

Реферат

Настоящая заявка связана с параллельной заявкой «Система и способ реализации программируемого мультимедийного контроллера», поданной 20 декабря 2005 г. от имени того же заявителя и идентифицируемой как заявка Cesari и McKenna №104215-0003, которая тем самым включается в настоящий документ посредством ссылки.

Область техники, к которой относится изобретение

Настоящее изобретение в целом относится к областям мультимедиа и связи и более конкретно к программируемому мультимедийному контроллеру, предназначенному для домашнего и коммерческого применения, профессиональной работы с аудио или видео, вещания или студийной работы, обеспечения безопасности, автоматизации или других сфер применения, который выполнен с возможностью взаимодействия, контроля и управления широким спектром аудио- и видеоустройств, устройств связи, передачи данных и другими устройствами.

Уровень техники

Быстрый рост объема предложения потребительских электронных устройств на рынке возник в результате падения стоимости электронной аппаратуры и появлением новых носителей информации. Например, в течение всего нескольких лет технология компакт-дисков (CD) в значительной степени сместила виниловые пластинки и магнитные ленты с позиции наиболее популярных носителей музыкальных записей, но была, в свою очередь, вытеснена технологией МРЗ. Аналогичным образом бывший наиболее популярным носитель для видеозаписи, видеопленка, в значительной степени уступила место технологии цифровых универсальных дисков (digital versatile disk, DVD); одновременно цифровые фотокамеры фактически заменили пленочные фотокамеры. Появление новых технологий и носителей информации и соответствующего потребительского спроса на продукцию, основанную на новейших разработках, заставляет производителей быстро внедрять новые продукты. В результате на рынок попадает огромное количество типов и моделей различных изделий.

Одной из старейших проблем, влиянию которой подвержены многие потребители, является сложность соединения между собой различных электронных устройств, которые обычно продаются по отдельности и не являются компонентами интегрированной системы. Например, потребитель может приобрести приемник (аудиоресивер), приставку кабельного телевидения, телевизор, DVD-проигрыватель и систему объемного звука, причем эти устройства будут изготовлены различными производителями. Для многих пользователей большую проблему представляет даже соединение группы компонентов набором кабелей, не говоря уже о достаточном понимании различных режимов работы и характеристик, которые при должном использовании позволяют получить наилучшую совместную работу компонентов и наиболее качественные развлекательные функции.

Другая давняя проблема большинства, если не всех, предыдущих подходов к объединению различных компонентов состоит в том, что используется какой-либо тип центрального контроллера, который функционирует на основе программного обеспечения, написанного на машинном языке высокого уровня. Использование машинного языка высокого уровня представляет несколько трудностей. Прежде всего, вероятность того, что производитель предоставит пользователю исходный код, очень мала, что фактически не позволит пользователю настроить систему по своему желанию. Во-вторых, даже если исходный код будет доступен, подавляющее большинство пользователей не имеют соответствующих технических знаний, времени или склонности к написанию или изменению исходного кода. В-третьих, представление новых устройств производителями почти наверняка будет требовать изменения этого исходного кода для обеспечения совместимости центрального контроллера с такими устройствами.

Еще одна давняя проблема состоит в отсутствии какого-либо общепринятого промышленного стандарта интерфейсов управления для бытовых электронных устройств. Производители применяют различные протоколы связи, большинство из которых являются закрытыми, не соответствуют какому-либо стандарту и реализуются посредством чрезвычайно сложного исходного кода. Такое отсутствие стандартов заметно усложняет проблему интеграции и центрального управления большим набором различных бытовых электронных устройств, необходимого для их совместной работы и управления среднестатистическим пользователем, который не обладает большими техническими знаниями.

Раскрытие изобретения

В основном настоящее изобретение предлагает программируемый мультимедийный контроллер с программируемыми функциями. Основой мультимедийного контроллера является универсальный компьютер, который управляет специализированной встроенной компьютерной системой. Универсальному компьютеру может быть придан второй универсальный компьютер для обеспечения избыточности. Мультимедийный контроллер выполнен с возможностью взаимодействия, контроля или управления широким спектром различных аудио- и видеоустройств, устройств связи, передачи данных или других устройств.

Мультимедийный контроллер включает в себя среду программирования, предназначенную для создания функций или пользовательских представлений, которые могут включать в себя характеристики или функциональные возможности нескольких устройств, в традиционном варианте работающих как отдельные автономные устройства. Сложность таких функций может варьироваться от простых функций управления до мультимедиа-представлений, сочетающих в себе высокопроизводительное аудио- и видеооборудование с графическими возможностями универсального компьютера, Web-сервисами и различными видами связи.

Функции могут реализовываться в соответствии с различными зонами в большем физическом пространстве. Например, пользователь может задать, что определенные функции должны быть доступны в гостиной в доме, а другие функции должны быть доступны в кухне, в зависимости от компонентов, имеющихся в каждой комнате, или пользовательских предпочтений. Кроме того, функции могут также быть реализованы для отдельного пользователя согласно профилю пользователя, который задает настройки, ограничения (например, родительский контроль) и т.п.

Среда программирования включает в себя библиотеку профилей компонентов. Профили компонентов могут быть реализованы несколькими способами в зависимости от требуемых атрибутов исходных структур данных. В предпочтительном варианте осуществления профиль компонента реализован как XML-файл (Extensible Markup Language, расширяемый язык разметки), описывающий определенные атрибуты компонента, такого как DVD-проигрыватель, телевизор, усилитель или любой другой тип компонента, способного взаимодействовать с системой по настоящему изобретению. Как правило, профиль компонента описывает по меньшей мере некоторые из физических характеристик компонента (например, разъемы ввода/вывода на задней стороне компонента), конфигурацию компонента (например, все возможные типы модулей, которые могут присутствовать в слотах или отсеках модульного ресивера), набор команд, распознаваемых компонентом (например, включение, выключение, открытие лотка диска), а также функции, поддерживаемые компонентом (например, воспроизведение, пауза, остановка).

Использование XML-файлов для профилей компонентов, а также другие особенности настоящего изобретения, описываемые ниже, обеспечивает несколько преимуществ, в частности легкость создания профилей компонентов для новых компонентов, которые будут появляться на рынке в будущем. Далее, использование XML чрезвычайно упрощает процесс настройки за счет редактирования существующих профилей компонентов по сравнению с написанием или изменением исходного кода. Соответственно, настоящее изобретение включает в себя программное средство, предназначенное для предоставления соответствующих возможностей специалистам по установке или пользователям, которые хотят создавать собственные профили компонентов или изменять профили, имеющиеся в библиотеке.

Библиотека профилей компонентов может храниться на жестком диске или других носителях данных, которые являются физической частью системы или доступны системе по сети или другому каналу связи. Один или большее количество профилей компонентов или даже вся библиотека может запрашиваться или обновляться по мере необходимости путем обращения к определенному Web-сайту через Интернет и загрузки соответствующих файлов. Обновление библиотеки профилей компонентов может происходить автоматически, или по команде пользователя, или под управлением пользователя.

Использование библиотеки профилей компонентов в настоящем изобретении позволяет пользователю описывать подключение кабелей конкретной установки в интерактивном режиме по указаниям экранного руководства. В случае новой установки согласно настоящему изобретению пользователю могут выдаваться рекомендации по подключению кабелей в установке. После подключения кабелей согласно настоящему изобретению пользователь может получить информацию о том, какие функции доступны.

Среда программирования также включает в себя конфигурации зон, которые также предпочтительно реализованы как XML-файлы. Конфигурация зоны по существу представляет собой описание, в котором содержатся указания на то, какие компоненты находятся в конкретной комнате или ином месте, какие модули фактически присутствуют в составе модульного компонента, как соединены между собой эти компоненты, а также описание типа (типов) контроллеров, доступных пользователю в данном месте.

Среда программирования также включает в себя конфигурации соединений, также предпочтительно в форме XML-файлов. Конфигурация соединений по существу представляет собой файл, содержащий установочную информацию о подключении кабелей и используемый при определении того, какие функции могут поддерживаться данной установкой.

Кроме того, среда программирования включает в себя правила функций. Правило функции, предпочтительно реализованное как XML-файл, по существу определяет, какие компоненты необходимы для реализации конкретной функции и каким образом будут взаимодействовать конкретный компонент или группа компонентов для обеспечения функции.

Профили компонентов, конфигурации зон, конфигурация соединений и правила функций в среде программирования являются входными данными для компилятора конфигурации, который создает реализацию функции, также предпочтительно в форме XML-файла. Реализация функции, в свою очередь, передается в качестве входных данных в генератор рабочего процесса, который создает исполняемую форму реализации функции и графическое представление исполняемой формы. Графическое представление выгодным образом обеспечивает удобный и легко используемый формат, который может отображаться и редактироваться с помощью универсального компьютера. Путем редактирования графического представления пользователь фактически непосредственно изменяет соответствующую исполнимую форму. Таким образом, пользователь с небольшими или отсутствующими знаниями в программировании получает возможность создавать и настраивать программируемые функции по желанию.

Другим аспектом настоящего изобретения, также повышающим легкость использования и удобство программирования системы, является пользовательский интерфейс, который в предпочтительном варианте осуществления основан на функциональных возможностях DVD-проигрывателя в сочетании с широко доступным программным обеспечением для создания DVD. В данном аспекте в настоящем изобретении используются два важных обстоятельства: DVD-проигрыватель (т.е. функциональность DVD-проигрывателя, реализованная в микросхеме видеодекодера) имеет низкую стоимость, и пользователи обычно хорошо знакомы с управлением DVD-проигрывателем путем выбора пунктов из отображаемых меню. Таким образом, на основе программного обеспечения для создания DVD, имеющегося на рынке, может быть реализован недорогой пользовательский интерфейс, который при этом будет без труда понятен подавляющему большинству пользователей. С помощью такого программного обеспечения можно создавать видеоизображения, при воспроизведении которых будет появляться информация, меню или варианты выбора, с которыми пользователь взаимодействует с помощью простого пульта дистанционного управления, портативного DVD-проигрывателя, сенсорного экрана или любого из множества других устройств управления, поддерживаемых согласно настоящему изобретению. Одно такое видеоизображение может использоваться для сбора необходимой информации для создания одного или нескольких профилей пользователя, как часть конфигурации и установки системы.

Еще одним аспектом настоящего изобретения является его расширяемость. Множество мультимедийных контроллеров может быть соединено между собой с формированием большей системы, в которой любой входной аудио- или видеосигнал одного контроллера может быть переключен на любой выход этого же или другого контроллера. В такой расширенной системе различные контроллеры могут быть запрограммированы на выполнение различных функций. Например, один контроллер может быть запрограммирован на предоставление функций, относящихся к видеоизображению, в то время как соединенный с ним второй контроллер может быть запрограммирован на предоставление функций, относящихся к звуку.

В соответствии с настоящим изобретением может быть реализовано множество различных функций. Например, предположим что пользователь имеет систему по настоящему изобретению, связанную с DVD-проигрывателем, телевизором и телефонной линией. На этих компонентах может быть определена простая функция, состоящая в том, что если пользователь смотрит фильм на DVD и в это время поступает телефонный звонок, система по настоящему изобретению автоматически подает DVD-проигрывателю команду постановки на паузу и выводит идентификатор звонящего абонента на экран телевизора. Таким образом, пользователь может решить, отвечать на вызов или нет, не подходя к телефону и не управляя DVD-проигрывателем вручную. Если пользователь ответит на вызов, DVD-проигрыватель останется в режиме паузы. Если пользователь не ответит на вызов или же ответит и после того завершит соединение, то воспроизведение фильма автоматически возобновится по истечении периода, который может быть запрограммирован пользователем.

Другой пример простой функции, реализуемой согласно настоящему изобретению, предполагает применение комбинации телевизора и доступа в Интернет. Настоящее изобретение может использоваться для обращения к информации в Интернете, такой как биржевые котировки, результаты спортивных соревнований или информация о погоде, и отображения этой информации в какой-либо области видеоизображения на экране телевизора или, в альтернативном варианте, в бегущей строке в нижней части изображения, в то время как пользователь будет смотреть желаемую телевизионную программу.

Еще один пример простой функции, реализуемой согласно настоящему изобретению, предполагает применение комбинации телевизора и радиотелефона (сотового телефона). Настоящее изобретение может использоваться для определения поступления короткого текстового сообщения (SMS-сообщения) на сотовый телефон и отображения этого текстового сообщения поверх изображения, демонстрируемого на телевизоре. Таким образом, пользователь может просмотреть текстовое сообщение без выполнения каких-либо действий с сотовым телефоном.

Краткое описание чертежей

Далее приводится описание изобретения со ссылками на следующие прилагаемые чертежи:

на фиг.1 представлена блок-схема домашнего мультимедийного контроллера 100, соединенного с рядом устройств согласно примерному варианту осуществления настоящего изобретения;

на фиг.2 приведена блок-схема высокоуровневой аппаратной архитектуры системы на фиг.1;

на фиг.3 приведена блок-схема высокоуровневой программной архитектуры системы на фиг.1;

на фиг.4 приведена блок-схема, демонстрирующая основные программные компоненты, участвующие в реализации функций, предоставляемых системой на фиг.1;

на фиг.5А-5М показан профиль компонента для DVD-проигрывателя;

на фиг.6 приведена конфигурация зоны для ресивера;

на фиг.7А-7С приведена конфигурация соединений для ресивера;

на фиг.8А-8Н приведено правило функции для прослушивания радиотрансляции;

на фиг.9А-9Н представлена реализация функции для проигрывания компакт-диска в DVD-проигрывателе, соединенном с ресивером, который также соединен с динамиками системы объемного звука;

на фиг.10 приведен снимок экрана рабочего процесса в приложении Automator;

на фиг.11 приведена диаграмма структуры сообщения для интерфейса прикладного программирования (API) контроллера на фиг.1;

на фиг.12 приведена блок-схема процесса обработки сообщения, демонстрирующая, каким образом устройство под управлением Mac OS X взаимодействует с API на фиг.11;

на фиг.13 приведена блок-схема процесса обработки сообщения, демонстрирующая, каким образом пульт дистанционного управления, передающий радиочастотные команды, взаимодействует с API на фиг.11;

на фиг.14 приведена блок-схема процесса обработки сообщения, демонстрирующая, каким образом DVD-проигрыватель с выходом S/PDIF может использоваться в качестве устройства управления с API на фиг.11.

Осуществление изобретения

На фиг.1 приведена блок-схема программируемого мультимедийного контроллера 100, соединенного с рядом устройств, согласно примерному варианту осуществления настоящего изобретения. Термин "программируемый мультимедийный контроллер" следует понимать широко, как устройство, выполненное с возможностью управления различными электронными устройствами, переключения между ними данных и/или взаимодействия с ними, где указанные устройства могут представлять собой аудио- и видеоустройства, устройства телефонии, устройства обработки данных, защиты, устройства с использованием двигателей, реле и/или другие типы электронных устройств. При взаимодействии с этими устройствами программируемый мультимедийный контроллер может осуществлять интегрированное мультимедийное решение по управлению.

В примерном варианте осуществления программируемый мультимедийный контроллер 100 связан с широким спектром аудио/видеокомпонентов, такими как проигрыватель 105 компакт-дисков (CD), проигрыватель 110 цифровых универсальных дисков (DVD), аудио/видеоресивер 115, телевизор 120, персональный мультимедиа-проигрыватель 125, динамики 122, микрофон 123 и/или видеокамера 124. Программируемый мультимедийный контроллер может также быть соединен с устройствами телефонии, такими как телефонная сеть 130 и телефонные трубки 132. Телефонная сеть 130 может представлять собой телефонную сеть общего пользования (publicly switched telephone network, PSTN), цифровую сеть комплексного обслуживания (Integrated Services Digital Network, ISDN) или другую сеть связи.

Кроме того, программируемый мультимедийный контроллер может взаимодействовать с разнообразными системами 135 освещения и/или домашней автоматизации. Эти устройства могут работать по протоколу Х10, разработанному Pico Electronics, протоколу INSTEON™, разработанному SmartHome, Inc, стандарту CEBus, контролируемому Промышленным советом CEBus, или другому известному протоколу домашней автоматизации или управления. Аналогичным образом контроллер может быть связан с устройствами 137, приводимыми двигателями и/или реле, которые могут включать в себя, например, систему отопления, вентиляции и кондиционирования воздуха (heating, ventilation and air conditioning, HVAC), систему орошения, систему автоматического затенения или жалюзи, электронный дверной замок и другие типы устройств.

С мультимедийным контроллером соединена компьютерная сеть, такая как Интернет 140. Кроме того, он может быть соединен с персональным компьютером (PC) 145, системами 150 видеоигр, домашним оборудованием 165 для записи и другими устройствами. Далее, может быть предусмотрен один или большее количество пультов 170 дистанционного управления, предназначенные для управления функциями контроллера и/или управления устройствами, соединенными с контроллером. Такие пульты дистанционного управления могут быть связаны с контроллером по проводному сетевому соединению, инфракрасному каналу, радиочастотному каналу, каналу Bluetooth™, каналу ZigBee™ или другому подходящему каналу передачи данных.

В дополнение к обеспечению взаимодействия с широким кругом устройств программируемый мультимедийный контроллер может комбинировать, синтезировать и обрабатывать другими способами различные типы данных с целью реализации интегрированного мультимедийного решения для пользователя.

В целях облегчения вышеописанных соединений и обработки программируемый мультимедийный контроллер 100 может иметь модульную конструкцию. Например, в одном из вариантов осуществления программируемый мультимедийный контроллер 100 выполнен с двенадцатью отдельными модулями ввода и вывода, каждый из которых имеет набор соединительных портов. Модули ввода и вывода вставляются в разъемы или модульные отсеки программируемого мультимедийного контроллера 100. Модули соединяются с общей платой, которая обеспечивает подключение к остальной части системы. Применение модульной конструкции позволяет пользователю выбирать конкретные модули по потребностям, и система может быть адаптирована к конкретной сфере применения. Кроме того, может быть снижена стоимость начальной покупки за счет того, что пользователь сможет купить базовую конфигурацию с ограниченными возможностями и затем расширять систему путем покупки дополнительных модулей. Ниже описывается несколько примеров модулей со ссылками на фиг.4-10, 12 и 13. Следует понимать, что может быть предусмотрено множество разнообразных дополнительных модулей, и, соответственно, данное описание может относиться и к другим возможным конфигурациям. Кроме того, нужно понимать, что несколько программируемых мультимедийных контроллеров могут быть соединены между собой с образованием большей системы, фактически реализуя решение модульного типа на уровне контроллеров. Дальнейшие сведения относительно такой взаимосвязи и расширения приводятся далее со ссылками на фиг.18 и 19.

На фиг.2 приведена блок-схема высокоуровневой аппаратной архитектуры программируемого мультимедийного контроллера. Представленные различные компоненты могут размещаться на системной плате («материнской плате») контроллера или на нескольких платах, соединенных соединительной платой (не показаны). Микроконтроллер 210 управляет функционированием системы в целом. В примерном варианте осуществления микроконтроллер представляет собой 32-битный микроконтроллер модели MCF5234, поставляемый Freescale Semiconductor Inc. Микроконтроллер 210 соединен с аудиокоммутатором 215 и видеокоммутатором 220 посредством шины 218. Аудиокоммутатор 215 и видеокоммутатор 220 предпочтительно представляют собой матричные коммутаторы, обеспечивающие одновременную коммутацию множества соединений. Однако может использоваться множество других типов коммутаторов, обеспечивающих коммутацию цифровых сигналов, например, коммутаторы TDM (Time Division Multiplexing, мультиплексирование по времени). Более подробное описание этих коммутаторов приведено далее со ссылками на фиг.3 и фиг.11.

Общая плата 235 соединяет коммутаторы и другие устройства с разнообразными модулями ввода и вывода, такими как модули 600 ввода цифрового видео с разъемом HDMI, модули 1000 вывода видео с разъемом HDMI, модули 400 ввода цифрового звука и модули 900 вывода цифрового звука. Общая плата 235 также подключается к Ethernet-коммутатору 230, который выполняет коммутацию сигналов Ethernet 10 BaseT, 100 BaseT или Gigabyte Ethernet. Ethernet-коммутатор 230 соединяет Ethernet-порты 232 и подсистему 240 обработки с микроконтроллером 210. В одном из вариантов осуществления подсистема 240 обработки включает в себя несколько универсальных персональных компьютеров малого форм-фактора, которые обеспечивают функционирование с избыточностью и/или распределением нагрузки. В некоторых вариантах осуществления подсистема 240 обработки может содержать одно или большее количество устройств хранения, внешних по отношению к персональным компьютерам и предназначенных для расширения емкости устройств хранения, например, для хранения цифрового мультимедийного содержания. Более подробное описание различных вариантов осуществления подсистемы 240 обработки данных приведено далее со ссылками на фиг.14-16.

Кроме того, ряд USB-портов 242 (Universal Serial Bus, универсальная последовательная шина) подключен к USB-концентратору 243 для соединения с подсистемой 240 обработки. К USB-концентратору 243 может быть также подключен интерфейс 225 карт памяти. Этот интерфейс поддерживает один или несколько распространенных форматов карт памяти, например, карты CompactFlash™, карты Memory Stick™, карты Secure Digital™ (SD) и другие форматы. Для коммутации USB-соединений между несколькими обрабатывающими компонентами, присутствие которых возможно в системе, используется USB-коммутатор 244. Аналогичным образом используется набор портов 246 стандарта IEEE 1394 (FireWire™), подключаемых к концентратору 247 IEEE 1394 и к коммутатору 248 IEEE 1394.

Далее, микроконтроллер 210 соединяется с распределительной схемой 250 стандарта SPI (последовательный интерфейс периферии, Serial Peripheral Interface) и I2С (Inter-lntegrated Circuit), которая реализует последовательный интерфейс связи для устройств с относительно низкой скоростью передачи данных. Контроллер 250 SPI/I2C подключается к разъему общей платы 235 и таким образом передает команды управления от микроконтроллера 210 в модули и другие устройства в программируемом мультимедийном контроллере 100. Другие соединения контроллера 250 SPI/I2C предназначены для таких устройств, как контроллер 251 вентилятора, температурный датчик 252 и схема 253 управления питанием, которые контролируют тепловые характеристики системы и предотвращают перегрев.

Микроконтроллер 210 также соединяется с интерфейсом 260 инфракрасной связи, интерфейсом 265 RS232 и радиочастотным интерфейсом 267, обеспечивающими связь с внешними устройствами. Такая взаимосвязь позволяет программируемому мультимедийному контроллеру 100 управлять внешними устройствами. Кроме того, интерфейсы могут принимать сигналы управления, которые управляют работой самого программируемого мультимедийного контроллера. Очевидно, что в мультимедийном контроллере 100 могут использоваться различные другие интерфейсы, в том числе WI-FI, Bluetooth™, ZigBee™ и другие проводные и беспроводные интерфейсы. Более подробное описание таких интерфейсов приведено ниже со ссылками на фиг.17.

Далее, для подключения одной или нескольких систем видеоигр, видеокамер, компьютеров, устройств караоке или других устройств предусмотрен вспомогательный аудио/видео порт 700. Для соединения с телефонной сетью общего пользования или с частной сетью, а также телефонными трубками предусмотрен телефонный интерфейс 270. Далее, предусмотрен интерфейс 275 управления устройствами, предназначенный для связи с устройствами освещения, домашней автоматизации и устройствами, приводимыми двигателями и/или реле. Как более подробно описано ниже, предусматривается порт 280 расширения, предназначенный для соединения нескольких программируемых мультимедийных контроллеров с формированием расширенной системы. Наконец, дисплей 1150 лицевой панели позволяет отображать состояние, конфигурацию и/или другую информацию для пользователя. В одном из вариантов осуществления на переднюю панель могут выводиться видеоданные, поступающие от любого входного источника, соединенного с системой, что позволяет выводить видеосодержание на дисплей для предварительного просмотра. В другом варианте осуществления дисплей 1150 лицевой панели имеет сенсорный экран, и пользователь может указывать варианты выбора путем выбора значков на экране.

На фиг.3 приведена блок-схема высокоуровневой программной архитектуры контроллера 100. Программная архитектура организована как последовательность уровней, в том числе уровень 302 управления системой, уровень 304 пользовательского интерфейса (U1, user interface), доступ 306 к API управления, уровень 308 функций, уровень 310 среды, уровень 312 управления компонентами и уровень 314 конфигурации/настройки.

Уровень 302 управления системой включает в себя функциональность системного менеджера 316, приложения 318 запуска системы, менеджера 320 избыточности, Web-сервера 322, сервера 324 сенсорного экрана/КПК, менеджера 326 удаленного доступа к системе и системные журналы 328.

Уровень 304 Ul вмещает сервер 330 Ul совместно с уровнем 308 функций. Уровень 308 функций включает в себя функциональность контроллера 332 функций, который сам, в свою очередь, включает в себя процесс 334 приложения Automator. Уровень 308 функций также включает в себя функциональность контроллера 336 дисплея Мас, приложение 338 вывода данных на экран (on-screen display, OSD), сторонние приложения 340, приложения 342 Mac и контроллер 344 аудио/видеокомпонентов. Посредством процесса 334 приложения Automator контроллер 332 функций осуществляет управление приложениями Мас, в том числе iTunes, iChat, iPhoto и iDVD, которые поддерживают интерфейс Applescript, обеспечивающий управление последовательностью приложений. Аналогичным образом посредством процесса 334 приложения Automator контроллер 332 функций осуществляет управление другими сторонними приложениями, поддерживающими AppleScript.

Уровень 310 среды включает в себя функциональные возможности ввода-вывода (I/O) Мас во всех поддерживаемых форматах (таких как DVI, Ethernet, FireWire™, USB и т.д.). Уровень 312 управления компонентами включает в себя функциональность управления аудио/видеокомпонентами 348.

Уровень 314 конфигурации/настройки включает в себя функциональность приложения 350 пользовательских конфигураций, компилятор 352 конфигураций, приложение 354 управления пользовательскими функциями, генератор 356 рабочих процессов и приложение 358 просмотра рабочих процессов/механизма поиска/настройки. Уровень 314 конфигурации/настройки также передает информацию нескольких типов на уровень 304 UI и уровень 308 функций, в том числе системную конфигурацию 360, рабочий процесс 362 приложения automator, определения 364 функций, профили 366 компонентов и настройки 368 Mac. Как подробно описано далее со ссылками на фиг.5-11, в предпочтительном варианте осуществления для представления системной конфигурации 360, рабочего процесса 362 приложения automator, определений 364 услуг и профилей 366 компонентов используются XML-файлы.

Далее рассматриваются общие функции различных уровней, представленных на фиг.3. В общем случае уровень 302 управления системой отвечает за работу системных задач и процессов высокого уровня. Менеджер 320 избыточности отвечает в целом за обеспечение избыточности, которое может с выгодой использоваться в мультимедийном контроллере 100. Например, подсистема 240 обработки может быть реализована на основе двух компьютеров Mac Mini™, как отмечено выше. Использование двух компьютеров обеспечивает возможность распределения нагрузки, а также один уровень избыточности в случае, если один из компьютеров выйдет из строя.

Для правильной работы этих двух компьютеров, как в случае нормальной работы обоих компьютеров, так и при отказе одного из них, необходима синхронизация данных, хранящихся на жестких дисках, к которым обычно обращается только один из компьютеров. Предпочтительно она реализуется с использованием приложения rsync, возможности, являющейся частью операционной системы OS X. Кроме того, один из компьютеров будет назначен "основным" компьютером на основе арбитража, который выполняется при включении мультимедийного контроллера 100. "Вспомогательный" компьютер функционирует в подчинении у основного компьютера.

Один из вариантов осуществления арбитража начинается с сообщения каждого компьютера о своем присутствии посредством службы Bonjour Name. Когда один из компьютеров обнаруживает другой компьютер, он соединяется с этим другим компьютером. Если оба компьютера являются кандидатами на роль основного компьютера, таковым становится компьютер с большим Ethernet-адресом управления доступом к среде передачи. Каждый компьютер поддерживает открытое соединение и периодически опрашивает другой компьютер. Если основной компьютер не отвечает на запросы, вспомогательный компьютер принимает роль основного компьютера на себя.

Основной компьютер отвечает за распределение потоковых ресурсов между ним и "вспомогательным" компьютером. Подключаемые и съемные носители (такие как диски FireWire или USB, фотоаппараты, устройства iPod) подключаются к основному компьютеру. Данные, собранные основным компьютером с таких устройств, могут передаваться на вспомогательный компьютер посредством общих точек монтирования или другим способом.

Доступ 306 к API управления отвечает за API, посредством которого мультимедийный контроллер 100 может управляться пользователем, который может выбрать использование устройства с Web-функциями, радиочастотного устройства дистанционного управления, сенсорного экрана, КПК или сотового телефона. Уровень 304 UI функционально отвечает за пользовательский интерфейс мультимедийного контроллера 100. Уровень 308 функций функционально отвечает за реализацию функций, что описано выше. Процесс 334 приложения Automator отвечает за прием запросов или команд от пользователей и их отображение в рабочий процесс для конкретной функции.

Уровень 310 среды функционально отвечает за ввод-вывод для Мас, а также за другие внутренние и внешние интерфейсы связи, поддерживаемые мультимедийным контроллером 100.

Уровень 312 управления компонентами функционально отвечает за управление действиями аудио- или видеокомпонентов, с которыми может взаимодействовать мультимедийный контроллер 100. Уровень 314 конфигурации/настройки функционально отвечает за предоставление пользователям возможности конфигурирования мультимедийного контроллера 100; выбора, создания или изменения функций; выбора, создания или изменения профилей компонентов.

Далее со ссылками на фиг.4 приводится более подробное описание логических связей между определенными функциональными модулями, представленными на фиг.3. Совокупность данных, хранящихся внутри системы мультимедийного контроллера 100 или полученных из внешнего источника (например, определенного Web-сайта, содержащего библиотеку профилей компонентов), обозначена ссылочным номером 402. Совокупность 402 данных включает в себя профили компонентов, типы среды и правила функций, предпочтительно в форме XML-файлов, как указано выше. Вторая совокупность данных поступает от пользователя и обозначена ссылочным номером 404. Совокупность 404 данных включает в себя конфигурацию соединений и информацию о конфигурации системы, также предпочтительно в форме XML-файлов.

Пользователь, взаимодействующий с приложением 350 пользовательских конфигураций, которое предпочтительно реализуется в виде экранного интерактивного руководства, генерирует данные, содержащиеся в совокупности 404 данных. Руководство может отображаться на дисплее 1150 лицевой панели (фиг.1) или на телевизоре или другом дисплее, соединенном с мультимедийным контроллером 100. Кроме того, при использовании микрофона и динамиков, соединенных с мультимедийным контроллером 100, и применении функций распознавания и синтеза речи, встроенных в операционную систему Mac OS X, в экранном руководстве может быть реализована поддержка для пользователей со слабым зрением. При этом вопросы пользователю, взамен экранных подсказок, могут задаваться синтезированным голосом, и пользователь может просто произносить ответы.

В альтернативном варианте приложение 350 пользовательских конфигураций может быть реализовано в виде "автономной" программы, которая может выполняться на компьютере Мас или другом устройстве, не обязательно соединенном с мультимедийным контроллером 100. Такой вариант осуществления может быть предпочтительным для специалистов по установке, которым требуется подготовить конфигурацию перед физической установкой контроллера.

Приложение 350 пользовательских конфигураций может использоваться для создания профилей пользователей, как описано выше. Профили пользователей позволяют каждому пользователю индивидуализировать свои настройки системы, стили, цвета и т.п. для отображения на дисплее, представляемого этому пользователю мультимедийным контроллером 100. Профили пользователей могут также вк