СРЕДА ПРОГРАММИРОВАНИЯ И УПРАВЛЕНИЕ МЕТАДАННЫМИ ДЛЯ ПРОГРАММИРУЕМОГО МУЛЬТИМЕДИЙНОГО КОНТРОЛЛЕРА
PROGRAMMING ENVIRONMENT AND METADATA MANAGEMENT FOR PROGRAMMABLE MULTIMEDIA CONTROLLER

Смежные заявки
Данная заявка является смежной («родственной») по отношению к заявке, одновременно поданной на рассмотрение и озаглавленной «System and Method for a Programmable Multimedia Controller» (Система и способ для программируемого мультимедийного контроллера), поданной 20 декабря 2005 под номером 11/314664, и к заявке, одновременно поданной на рассмотрение и озаглавленной «Programmable Multimedia Controller With Programmable Services» (Программируемый мультимедийный контроллер с программируемыми функциями), поданной 20 декабря 2005 под номером 11/314112.
Область техники, к которой относится изобретение
Настоящее изобретение относится в целом к области мультимедиа и связи и в частности к программируемому мультимедийному контроллеру, используемому для домашнего, коммерческого и профессионального аудио (звука) и видео (изображения), в вещательной студии или киностудии, для обеспечения безопасности, автоматизации или в иных целях, который позволяет подключаться, контролировать и управлять широким кругом аудиоустройств, видеоустройств, телекоммуникационных устройств, устройств передачи данных и т.п.
Уровень техники
В ответ на резкое снижение стоимости электронного оборудования и появление новых носителей информации значительно возросло коммерческое предложение изделий бытовой электроники. Например, всего за несколько лет технология компакт-дисков (CD, compact disk) почти полностью вытеснила виниловые грампластинки и магнитные ленты в качестве предпочтительного носителя музыкальной записи, но, в свою очередь, была вытеснена технологией МР3. Подобным образом, технология цифровых многоцелевых дисков (DVD, digital versatile disk) почти полностью вытеснила видеокассеты в качестве предпочтительного носителя видеозаписи, в то время как цифровые камеры практически заменили пленочные камеры. Наступление новых технологий и носителей информации и соответствующий потребительский спрос на изделия, созданные по последнему слову науки и техники, побуждают производителей к быстрому выведению на рынок новых изделий. В результате огромное количество видов и моделей изделий наводняют рынок.
Одна давняя проблема, преследующая многих потребителей, заключается в сложности соединения различных электронных устройств, которые, как правило, продаются отдельно и не являются частями интегрированной системы. Например, потребитель может приобрести радиоприемник, приемник кабельного телевидения, телевизор, проигрыватель DVD и систему объемного звука, изготовленные различными производителями. Основной проблемой для многих пользователей является соединение между собой группы компонентов с помощью комплекта кабелей, не говоря уже о достаточном понимании различных режимов работы и функциональных возможностей, которые, при верном использовании, позволяют компонентам работать совместно наилучшим образом и доставлять наибольшее удовольствие от развлечений.
Другая давняя проблема большинства, если не всех, предыдущих подходов к интеграции разнородных компонентов заключается в использовании центрального контроллера с применением программного обеспечения, написанного на языке программирования высокого уровня. Применение языка программирования высокого уровня создает определенные сложности. Во-первых, почти все, за редким исключением, производители не предоставляют пользователям исходный код, таким образом делая практически невозможной доработку системы пользователем. Во-вторых, даже при доступности исходного кода, абсолютное большинство пользователей не имеют технических знаний, времени или склонности к написанию или изменению исходного кода. В-третьих, выведение производителями на рынок новых устройств почти неизбежно приводит к изменению исходного кода для обеспечения совместимости центрального контроллера с такими устройствами.
И еще одна давняя проблема - это отсутствие какого-либо широко распространенного промышленного стандарта на интерфейсы управления изделиями бытовой электроники. Производители применяют изменяющиеся протоколы связи, большинство которых, по сути, являются частными (самодельными), не соответствуют никаким стандартам и реализуются с использованием предельно подробного исходного кода. Такое отсутствие стандартов значительно усложняет проблему интеграции и централизованного управления широким диапазоном изделий бытовой электроники, чтобы они работали совместно и могли управляться среднестатистическим пользователем, не обладающим широкими техническими знаниями.
Раскрытие изобретения
В целом, в настоящем изобретении предлагается мультимедийный контроллер на основе компьютера общего назначения, способный подключаться, контролировать или управлять широким кругом аудиоустройств, видеоустройств, телекоммуникационных устройств, устройств передачи данных и т.п. В соответствии с одним аспектом настоящего изобретения средство для конфигурирования на основе графического интерфейса пользователя обеспечивает простой «схематический» способ для конфигурирования даже весьма сложных систем, состоящих из множества компонентов или устройств, которые должны соединяться с мультимедийным контроллером или подключаться к нему.
Средство для конфигурирования имеет доступ к библиотеке профилей компонентов. Профиль компонента обычно описывает по меньшей мере некоторые из физических характеристик компонента, конфигурацию компонента, набор команд, распознаваемых компонентом, а также функции, которые компонент способен выполнять. В одном осуществлении библиотека компонентов может обновляться посредством доступа через Интернет к определенному Web-сайту или к сетевой (онлайновой) службе.
При использовании такого средства для конфигурирования пользователь, продавец, установщик (инсталлятор) или другое лицо выбирает, обычно методом «перетаскивания», интересующие компоненты из библиотеки компонентов. В ответ отображается фотография или другое изображение каждого компонента и его соединителей, включая обозначения соединителей, имеющиеся на физических компонентах. Если выбрано несколько компонентов, средство для конфигурирования использует цветовое кодирование для графического и визуального отображения возможных соединений компонентов между собой. Например, выходной аудиосоединитель компонента может быть выделен тем же цветом, что и совместимый с ним входной аудиосоединитель другого компонента. Средство для конфигурирования можно также использовать для выбора интересующего соединителя и отображения информации о допустимых и недопустимых соединениях для такого соединителя.
Интерактивно работая с отображаемыми компонентами, пользователь графически «рисует» желаемые соединения между компонентами. После указания всех желаемых соединений вся информация о компонентах и соединениях направляется в компилятор конфигурации. Компилятор конфигурации формирует список функций (сервисов), которые мультимедийный контроллер может обеспечить, используя указанные компоненты и конфигурацию. Пользователь может выбирать желаемые функции, а также настраивать различные функции с учетом индивидуальных предпочтений.
Такое средство для конфигурирования также может формировать выходной отчет, содержащий подробные указания относительно соединений или установки для установщика, перечень компонентов, список материалов для заказа и выставления счета, указания по конфигурированию, информацию об оборудовании прочих поставщиков, такую как назначение входов приемников, примечания для пользователей, этикетки для кабелей и другую информацию.
В соответствии с другим аспектом данного изобретения средство для конфигурирования и графический интерфейс пользователя могут быть использованы для конфигурирования отдельных компонентов или устройств, подключаемых к программируемому мультимедийному контроллеру, включая пульт дистанционного управления с сенсорным экраном.
В соответствии с другим аспектом данного изобретения мультимедийный контроллер включает в себя средство управления метаданными, способное работать с различными видами носителей информации, включая CD и МР3 среди прочих. В одном осуществлении средство управления метаданными автоматически собирает метаданные, доступные в мультимедийном контроллере, автоматически определяет наличие нового носителя информации и собирает метаданные с него, а также может использовать интернет-ресурсы для поиска дополнительных подходящих метаданных. Средство управления метаданными сохраняет метаданные в виде, удобном для поиска, благодаря использованию файловой системы, связанной с компьютером общего назначения, который является частью мультимедийного контроллера. Кроме того, средство управления метаданными делает метаданные доступными для всех видов удаленных котроллеров пользователя, которые могут подключаться к мультимедийному контроллеру.
В соответствии с еще одним аспектом данного изобретения предлагается графическая среда программирования, позволяющая пользователю настраивать внешний вид и функции интерфейса пользователя мультимедийного контроллера. Графическая среда программирования включает в себя библиотеку графических переключателей (radio buttons) и других графических средств управления, доступных через API (application programming interface, интерфейс прикладного программирования). Используя API, пользователь может добавлять или удалять переключатель или средство управления из пользовательского интерфейса, а также изменять внешний вид, функции или другие свойства (атрибуты) кнопки или средства управления.
Краткое описание чертежей
Описание данного изобретения ссылается на следующие прилагаемые чертежи:
фиг.1 представляет собой схему соединения программируемого мультимедийного контроллера с несколькими устройствами в соответствии с иллюстративным осуществлением настоящего изобретения;
фиг.2 представляет собой блок-схему, отражающую высокоуровневую аппаратную архитектуру мультимедийного контроллера, представленного на фиг.1;
фиг.3 представляет собой блок-схему, отражающую высокоуровневую программную архитектуру системы, представленной на фиг.1;
фиг.4 представляет собой вид экрана графической среды программирования, в которой пользователь может создавать конфигурацию системы, используя средство для конфигурирования, представленное на фиг.3;
фиг.5 представляет собой вид экрана библиотеки компонентов, используемой совместно со средством для конфигурирования;
фиг.6А и 6В представляют собой вид экрана для двухкомнатной конфигурации, созданной с использованием средства для конфигурирования;
фиг.6С представляет собой вид экрана средства для управления компонентами, используя который пользователь может видеть подробную информацию о компоненте или настраивать или конфигурировать компонент;
фиг.7 представляет собой вид экрана, демонстрирующий создание (компиляцию) конфигурации, представленной на фиг.6А и 6 В;
фиг.8 представляет собой вид экрана, демонстрирующий средство для настройки пользователем функций;
фиг.9 представляет собой функциональную блок-схему средства для управления метаданными, которое может включаться в состав программируемого мультимедийного контроллера, представленного на фиг.1;
фиг.10 представляет собой вид экрана, демонстрирующий графическую среду программирования, представленную на фиг.4, в которой пользователь может создавать конфигурацию компонента или изменять внешний вид интерфейса пользователя или профиль пользователя (user profile) с использованием средства для конфигурирования;
фиг.11 представляет собой диаграмму последовательности действий, отражающую высокоуровневую архитектуру программного обеспечения, используемого для определения и отображения графического интерфейса пользователя программируемого мультимедийного контроллера, представленного на фиг.1;
фиг.12 представляет собой графическую среду программирования, отображающую ряд программных модулей (patches), которые используются для реализации графического интерфейса пользователя программируемого мультимедийного контроллера, представленного на фиг.1; и
фиг.13 представляет собой вид экрана, демонстрирующий графически программируемые свойства кнопки для выполнения функции «воспроизведение».
Осуществление изобретения
Фиг.1 представляет собой схему соединения программируемого мультимедийного контроллера 100 с несколькими устройствами в соответствии с иллюстративным осуществлением настоящего изобретения. Термин «программируемый мультимедийный контроллер» следует понимать в широком смысле - как устройство, способное управлять, коммутировать данные и/или взаимодействовать с рядом электронных устройств, таких как аудиоустройства, видеоустройства, телефонные устройства, устройства данных, устройства безопасности, устройства с сервоприводом, устройства с магнитным приводом и/или другие виды электронных устройств. Путем взаимодействия с этими устройствами программируемый мультимедийный контроллер способен обеспечить интегрированное управление в мультимедийной среде.
В примерном осуществлении программируемый мультимедийный контроллер 100 подключается к широкому диапазону аудио-/видеокомпонентов, например к проигрывателю 105 компакт-дисков (CD), проигрывателю 110 цифровых многоцелевых дисков (DVD), приемнику 115 аудио/видео, телевизору 120, персональному медиапроигрывателю 125, громкоговорителям 122, микрофону 123 и/или видеокамере 124. Программируемый мультимедийный контроллер также может подключаться к телефонным устройствам, таким как телефонная сеть 130 и телефонные аппараты 132. Телефонная сеть 130 может быть телефонной сетью общего пользования - ТФОП (PSTN, Public Switched Telephone Network), цифровой сетью с комплексными услугами (ISDN, Integrated Services Digital Network) или другой сетью связи.
Кроме того, программируемый мультимедийный контроллер может поддерживать обмен данными с множеством систем 135 управления освещением и/или домашней автоматизации. Эти устройства могут функционировать с использованием протокола X10, разработанного компанией Pico Electronics, протокола INSTEON™, разработанного компанией SmartHome, Inc, стандарта CEBus, находящегося под управлением Промышленного совета CEBus (CEBus Industry Council), или другого хорошо известного протокола домашней автоматизации или управления. Подобным образом, контроллер может подключаться к устройствам 137 с сервоприводом или магнитным приводом, включая, например, систему отопления, вентиляции и кондиционирования воздуха (HVAC, Heating, Ventilation and Air Conditioning), систему полива, автоматическую систему управления затенением или затемнением (shade or blind system), электронный дверной замок или другие виды устройств.
К мультимедийному контроллеру подключается компьютерная сеть, такая как, например, Интернет 140. Кроме того, также могут подключаться персональный компьютер 145 (PC, Personal Computer), игровые видеосистемы 150, домашние записывающие устройства 165 или другие устройства. Кроме того, для управления функциями контроллера и/или другими устройствами, подключенными к контроллеру, можно использовать одно или несколько устройств 170 дистанционного управления. Такие устройства дистанционного управления могут подключаться к контроллеру посредством проводного сетевого соединения, инфракрасного канала, радиоканала, канала Bluetooth™, канала ZigBee™ или другого подходящего соединения для передачи данных. Примерами таких устройств дистанционного управления могут служить пульт 112 дистанционного управления с сенсорным экраном, простой пульт 114 дистанционного управления, который может быть электромеханическим, и проигрыватель МР3 или другое устройство 116.
Фиг.2 представляет собой блок-схему, отражающую высокоуровневую аппаратную архитектуру программируемого мультимедийного контроллера. Различные показанные компоненты могут размещаться на основной плате (motherboard) контроллера или на нескольких платах, подключаемых к объединительной плате (backplane), которая не показана. Работой системы в целом управляет микроконтроллер 210. В иллюстративном осуществлении применен 32-разрядный микроконтроллер модели MCF5234 производства Freescale Semiconductor Inc. Микроконтроллер 210 подключен к аудиокоммутатору 215 и видеокоммутатору 220 посредством шины 218. Предпочтительно, чтобы аудиокоммутатор 215 и видеокоммутатор 220 представляли собой матричные коммутаторы, способные коммутировать нескольких соединений одновременно. Тем не менее, может применяться множество других видов коммутаторов, пригодных для коммутации цифровых сигналов, например коммутаторы с временным мультиплексированием (TDM, Time Division Multiplexing).
Центральная объединительная плата 235 соединяет коммутаторы и другие устройства с множеством модулей ввода и вывода, таких как, например, модули 600 ввода цифрового видео с интерфейсом HDMI (High-Definition Multimedia Interface -мультимедийный интерфейс высокого разрешения), модули 1000 вывода цифрового видео с интерфейсом HDMI, модули 400 ввода цифрового аудио и модули 900 вывода цифрового аудио. Кроме того, центральная объединительная плата 235 подключается к коммутатору 230 Ethernet, обеспечивающему коммутацию сигналов 10BaseT, 100BaseT или Gigabyte Ethernet. Коммутатор 230 Ethernet соединяет порты 232 Ethernet и подсистему 240 обработки с микроконтроллером 210. В одном осуществлении подсистема 240 обработки включает в себя несколько малогабаритных персональных компьютеров общего назначения, которые обеспечивают резервирование и/или балансировку нагрузки. В некоторых осуществлениях подсистема 240 обработки может включать в себя одно или несколько устройств хранения данных, внешних по отношению к персональным компьютерам, для обеспечения дополнительной емкости хранилища, например, для хранения цифровых носителей информации.
Также для подключения к подсистеме 240 обработки несколько портов 242 шины USB (Universal Serial Bus, универсальная последовательная шина) подключаются к концентратору 243 USB. К концентратору 243 USB также может быть подключен интерфейс 225 карт памяти. Этот интерфейс поддерживает один или несколько широко известных форматов карт памяти, например карты CompactFlash™, карты Memory Stick™, карты Secure Digital™ (SD) или другие форматы. Коммутатор 244 USB используется для коммутации каналов USB между несколькими компонентами для обработки данных, которые могут присутствовать в системе. Подобным образом, несколько портов 246 шины IEEE 1394 (Fire Wire™) подключаются к концентратору 247 IEEE 1394 и к коммутатору 248 IEEE 1394.
2
2
2
Микроконтроллер 210, кроме того, подключается к распределительному устройству 250 интерфейса SPI (Serial Peripheral Interface - последовательный интерфейс периферийных устройств) и шины IС (Inter-Integrated Circuit - [связь] между интегральными схемами), которое обеспечивает последовательный интерфейс связи для устройств со сравнительно низкой скоростью передачи данных. Контроллер 250 SPI/IC подключается к соединителю центральной объединительной платы 235 и, таким образом, обеспечивает передачу команд управления от микроконтроллера 210 к модулям и другим устройствам программируемого мультимедийного контроллера 100. Кроме того, контроллер 250 SPI/IC подключается к таким устройствам, как контроллер 251 вентилятора, датчик 252 температуры и устройство 253 управления питанием, которые контролируют температурные характеристики системы и предотвращают перегрев.
Микроконтроллер 210 также подключается к инфракрасному (IR, Infra-Red) интерфейсу 260, интерфейсу 265 RS232 и радиочастотному интерфейсу 267, обеспечивающему соединение с внешними устройствами. Такое взаимодействие позволяет программируемому мультимедийному контроллеру 100 управлять внешними устройствами. Кроме того, эти интерфейсы могут принимать сигналы управления, управляющие работой самого программируемого мультимедийного контроллера. Совершенно очевидно, что с мультимедийным контроллером 100 могут использоваться и другие интерфейсы, включая WI-FI, Bluetooth™, ZigBee™ и другие проводные и беспроводные интерфейсы.
Кроме того, для подключения одной или нескольких игровых видеосистем, видеокамер, компьютеров, устройств для караоке и других устройств существует вспомогательный аудио-/видеопорт 700 (Auxiliary Audio/Video Port). Для подключения к ТФОП (PSTN) или сети местной связи и телефонным аппаратам предусмотрен телефонный интерфейс 270. Кроме того, для связи с устройствами управления освещением, устройствами домашней автоматизации, устройствами с сервоприводами и/или устройствами с магнитными приводами реализован интерфейс 275 управления устройствами. Как более подробно описывается ниже, для соединения воедино нескольких программируемых мультимедийных контроллеров при создании расширенной системы предусмотрен порт 280 расширения. И, наконец, дисплей 1150 на лицевой панели позволяет показывать пользователю состояние, конфигурацию и/или другую информацию. В одном осуществлении на передней панели могут отображаться видеоданные от любого источника, подключенного к системе, так что на дисплее можно осуществлять предварительный просмотр видеоконтента. В другом осуществлении дисплей 1150 на лицевой панели оснащается сенсорным экраном и пользователь может выбирать команды путем выбора пиктограмм на экране.
Фиг.3 представляет собой блок-схему, отражающую высокоуровневую программную архитектуру контроллера 100. Программная архитектура представляет собой ряд уровней, включая уровень 302 системного управления, уровень 304 интерфейса пользователя (UI, User Interface), уровень доступа 306 к интерфейсу прикладного программирования (API) органов управления, функциональный уровень 308 (уровень сервисов), уровень 310 носителей информации, уровень 312 управления компонентами и уровень 314 конфигурации/настройки.
Уровень 302 системного управления объединяет функции модуля 316 управления системой, модуля 318 запуска системы, модуля 320 управления резервированием, Web-сервера 322, сервера 324 сенсорных экранов и PDA (Personal Digital Assistant - персональный цифровой секретарь), модуля 326 управления удаленным доступом к системе и модуля системных журналов регистрации событий (system logs). Уровень 304 интерфейса пользователя использует сервер 330 интерфейса пользователя совместно с функциональным уровнем 308. Функциональный уровень 308 реализует функции контроллера 332 функций (сервисов), который, в свою очередь, включает в себя «автоматор» 334 (automator runtime - виртуальная машина для автоматизированного исполнения прикладных программ в операционной системе Mac OS). Функциональный уровень 308 также объединяет функции контроллера 336 дисплея Mac (Macintosh), прикладной программы 338 экранного меню (OSD, On-Screen Display), прикладных программ 340 третьих лиц (third party applications), прикладных программ 342 для Mac (Macintosh) и контроллера 344 аудио-/видеокомпонентов. Посредством «автоматора» 334 контроллер 332 функций может управлять прикладными программами для Mac (Macintosh), включая iTunes, iChat, iPhoto и iDVD, которые поддерживают язык сценариев Applescript, позволяющий одним прикладным программам управлять другими прикладными программами. Подобным образом, «автомотор» 334 и контроллер 332 функций (сервисов) могут управлять прикладными программами третьих лиц, поддерживающими Applescript.
Уровень 310 носителей информации реализует в Mac (Macintosh) функции ввода/вывода во всех поддерживаемых форматах (т.е. DVI, Ethernet, Fire Wire™, USB и т.д.). Уровень 312 управления компонентами включает в себя функции управления аудио-/видеокомпонентами 348.
Уровень 314 конфигурации/настройки объединяет функции средства 350 пользовательского конфигурирования, компилятора 352 конфигурации, прикладной программы 354 управления пользовательскими функциями, формирователя 356 скриптов (workflow generator) и прикладной программы 358 для просмотра/поиска/настройки скриптов управления функциями (сервисами). Уровень 314 конфигурации/настройки также передает несколько видов информации уровню 304 пользовательского интерфейса и функциональному уровню 308, включая конфигурацию 360 системы, скрипты 362 «автоматора», определения 364 функций, профили 366 компонентов и настройки 368 для Mac (Macintosh). Как описано в вышеупомянутой одновременно поданной на рассмотрение заявке №11/314112, в предпочтительном осуществлении для представления конфигурации 360 системы, скриптов 362 «автоматора», определений 364 функций, профилей 366 компонентов используются файлы формата XML.
Уровень доступа 306 к API органов управления отвечает за интерфейс прикладного программирования, посредством которого пользователь может управлять мультимедийным контроллером 100, выбирая при этом между использованием устройства с Web-доступом, радиочастотного устройства дистанционного управления, сенсорного экрана, PDA или сотового телефона. Уровень 304 пользовательского интерфейса функционально отвечает за интерфейс пользователя для мультимедийного контроллера 100. Функциональный уровень 308 функционально отвечает за реализацию описанных выше функций. «Автоматор» 334 отвечает за получение запросов или команд от пользователей и преобразование их в скрипт (workflow) для конкретной функции.
Уровень 310 носителей информации функционально отвечает в Mac (Macintosh) за ввод/вывод, а также за другие внутренние и внешние интерфейсы связи, поддерживаемые мультимедийным контроллером 100. Уровень 312 управления компонентами функционально отвечает за управление работой аудио- или видеокомпонентов, которые могут подключаться к мультимедийному контроллеру 100. Уровень 314 конфигурации/настройки функционально отвечает за возможность конфигурирования пользователем мультимедийного контроллера 100, возможность выбора, создания или изменения функций и возможность выбора, создания или изменения профилей компонентов.
Фиг.4 представляет собой вид экрана, показывающий, как пользователь может использовать средство 350 конфигурирования для начала создания конфигурации системы. На экране среды 400 графического программирования отображается рабочая область 402 конфигурирования, зональная карта 404 и инструментарий 406. Пиктограмма, названная «Rosie» и обозначенная номером 410, представляет программируемый мультимедийный контроллер 100 (фиг.1). Пиктограмма, названная «Room 1» и обозначенная номером 412, представляет в конфигурации первую зону, которая физически может включать в себя одну или несколько комнат.
Для того чтобы начать создание конфигурации, пользователь щелкает на экранной кнопке 408 «Show Palette» (показать палитру). Как показано на фиг.5, в результате этого действия появляется палитра пиктограмм, представляющих компоненты из библиотеки 500 компонентов. В данном примере в библиотеке 500 доступно несколько моделей плоских телевизоров 502, цифровой приемник 504 объемного звучания, коммутатор 506 HDMI и другие многочисленные компоненты. Пользователь может просто перетаскивать (drag and drop) пиктограммы из библиотеки 500 в желаемую зону на зональной карте 404. Путем последовательности таких перетаскиваний пользователь может указать все компоненты, которые он должен или желает установить в указанной зоне. Для ускорения процесса пользователь может обращаться к меню 508 для отображения только определенного вида компонентов (например, приемники, проигрыватели DVD, громкоговорители, конверторы кабельного телевидения и т.д.) или к меню 510 для отображения только компонентов определенного производителя.
После перетаскивания компонентов на зональную карту 404 эти компоненты перетаскиваются с зональной карты 404 в рабочую область 402. После попадания компонента в рабочую область 402 появляется окно, показанное на фиг.6. Например, окно 602 представляет программируемый мультимедийный контроллер 100 в графической среде 400 программирования. Подобным же образом, окно 604 представляет плоский телевизор. Как видно, каждое окно содержит соответствующую фотографию или другое изображение физического компонента, обеспечивающее пользователю удобный визуальный ориентир. Кроме того, каждое окно содержит текст и изображения, идентифицирующие все входы, выходы и порты управления, имеющиеся на соответствующем компоненте. В тексте также указываются вид сигнала, тип соединителя и другая уместная информация о каждом входе, выходе и порте управления. Изображения также могут содержать цветовые коды, соответствующие цветам, присутствующим на физическом компоненте.
В помощь пользователю при конфигурировании предназначено также средство для управления компонентами. Как показано на фиг.6, пользователь может выбрать интересующий компонент на зональной карте 404 и затем щелкнуть экранную кнопку «Show Inspector» (показать «инспектора»), обозначенную номером 614. В ответ появляется экран 616, показанный на фиг.6С. Меню 618 позволяет пользователю изучить подробную информацию о входах, выходах, портах управления и другие аспекты выбранного оборудования. На экране 616 пользователь также может конфигурировать (компоненты, требующие конфигурирования, такие как программируемые мультимедийные контроллеры, модульные приемники с программируемыми гнездами (слотами) ввода/вывода и т.п.) или настраивать выбранный компонент.
Используя манипулятор «мышь», пользователь рисует соединения между прямоугольниками (компонентами), появляющимися в рабочей области 402. Эти соединения выглядят как линии, подобные линии 606, представляющей соединение между выходом усилителя 608 и комплектом громкоговорителей 610 объемного звука. Другой способ, которым пользователь может выполнять соединения, заключается в том, чтобы щелкнуть правой кнопкой «мыши» на соединителе (отображаемом в виде прямоугольника) и открыть выпадающее меню, отображающее информацию о совместимых видах соединителей (совместимых непосредственно или с использованием преобразователей (переходников)), а также информацию о несовместимых видах соединителей, и затем выбрать из этого меню желаемое соединение.
Пользователь также может щелкнуть на экранной кнопке «Make Report» (сформировать отчет), обозначенной номером 616. Это действие приводит к тому, что базовое программное обеспечение (underlying software) формирует выходной отчет, который может содержать подробные указания по выполнению соединений для указанной конфигурации, список компонентов в конфигурации, особые указания, сделанные пользователем примечания и т.п. Выходной отчет может служить в качестве списка материалов, списка соединений и инструкции по установке.
Завершив необходимые соединения, пользователь щелкает на экранной кнопке 612 «Compile» (компилировать). Это действие приводит к тому, что базовое программное обеспечение автоматически анализирует указанную конфигурацию для определения того, какие функции данная конфигурация способна выполнять (реализуемые функции), и определения других функций, которые могут выполняться при изменении конфигурации. За более подробным описанием «функций», а также «ресурсов» и «запросов», использованных в данном документе, следует обратиться к одновременно поданной на рассмотрение заявке под номером 11/314112.
Как показано на фиг.7, пользователю демонстрируется список реализуемых функций 700. При выделении реализуемой функции с помощью «мыши» ее описание появляется на панели 704. Пользователь может запретить любую реализуемую функцию, используя флажок (checkbox) 702. Панель 706 отображает все ресурсы, связанные с выбранной функцией. Щелкнув на экранной кнопке 708 «Show Unrealized» (показать нереализуемые), пользователь может увидеть нереализуемые функции, представляющие собой функции, которые могут быть реализованы при изменении указанной конфигурации. Просмотр нереализуемых функций полезен в качестве средства для исправления ошибок в конфигурации, а также для оптимизации использования компонентов и пользовательских опытов (экспериментов) для данного набора компонентов.
Если пользователь удовлетворен конфигурацией и настройкой, он щелкает на экранной кнопке 710 «Generate» (сформировать). Это действие приводит к тому, что базовое программное обеспечение создает действующую конфигурацию системы для программируемого мультимедийного контроллера 100 и отображает экран, подобный показанному на фиг.8. Как показано на фиг.8, запросы, связанные с реализацией функции «TV Service» (телевизионные функции), отображаются на панели 800. На панели 800 пользователь может настраивать реализуемую функцию путем добавления и удаления запросов.
В дополнение к описанному выше, среда 400 графического программирования и средство 350 конфигурирования могут быть использованы для конфигурирования отдельных компонентов или устройств, подключаемых к программируемому мультимедийному контроллеру 100. Например, как показано на фиг.10, в библиотеку 500 компонентов (показанную на фиг.5) может включаться пульт 1000 дистанционного управления с сенсорным экраном, поставляемый владельцем прав на настоящее изобретение. После перетаскивания на зональную карту 404 для конфигурирования специфических для такого сенсорного экрана возможностей, включая внешний вид интерфейса пользователя (например, цветовую гамму (theme) и оболочку (skin)), и профилей пользователя может использоваться средство 350 конфигурирования. Подробную информацию о профилях пользователя можно найти в одновременно поданной на рассмотрение заявке под номером 11/314112.
В соответствии с другим аспектом настоящего изобретения программируемый мультимедийный контроллер 100 может содержать средство управления метаданными для сбора, систематизации и распределения метаданных в контроллере 100, а также в пультах дистанционного управления пользователя, подключенных к контроллеру 100. Фиг.9 представляет собой функциональную блок-схему средства 900 управления метаданными. Модуль 902 управления метаданными отвечает за выполнение нескольких функций, включая ответы на запросы на метаданные, получаемые от модуля 912 контроллера интерфейса, получение новых метаданных от модуля 904 управления данными или модуля 916 управления источниками контента и передачу новых метаданных модулю 910 управления хранением.
Модуль 908 слежения за данными отвечает за мониторинг всех возможных источников носителей информации на предмет загрузки новых носителей информации. Например, модуль 908 слежения за данными определяет загрузку нового компакт-диска в проигрыватель CD, подключенный к мультимедийному контроллеру 100, подключение к контроллеру 100 проигрывателя МР3, подключение к контроллеру 100 портативного накопителя и т.д.
Определив наличие нового носителя информации, модуль 908 слежения за данными формирует уведомление модуля 904 управления данными. Модуль 904 управления данными отвечает на такое уведомление созданием медиаобъекта, первоначально содержащего информацию о типе файла, его местонахождении (если применимо) и физическом источнике нового носителя информации. Затем модуль 904 управления данными направляет этот медиаобъект интерпретатору 906 данных, соответствующему типу обнаруженного носителя информации (например, файла МР3). Интерпретатор 906 данных извлекает как можно больше метаданных из нового источника носителей информации. Например, в случае файла МР3 интерпретатор 906 данных может извлечь как можно больше метаданных из тэга ID3, являющегося частью файла. Все извлеченные метаданные помещаются в объект и возвращаются модулю 904 управления данными, который передает их модулю 902 управления метаданными.
Во многих случаях новый источник носителей информации, обнаруженный модулем 908 слежения за данными, не содержит всех существующих метаданных для определенной песни или альбома. Для получения недостающих метаданных модуль 902 управления метаданными может отправить запрос модулю 916 управления источниками контента, который, в свою очередь, может обратиться к одному или нескольким источникам 914 контента, внешним по отношению к программируемому мультимедийному контроллеру 100. Источник 914 контента может представлять собой Web-сайт или другой удаленный источник информации, доступный через Интернет или другую сеть. Дополнительные метаданные, получаемые модулем 916 управления источниками контента, передаются модулю 902 управления метаданными и в конечном счете передаются для хранения модулю 910 управления хранением.
Модуль 910 управления хранением в целом отвечает за хранение, извлечение, обновление или удаление метаданных в ответ на запросы или сообщения, принимаемые от модуля 902 управления метаданными. В одном осуществлении, где программируемый мультимедийный контроллер 100 включает в себя компьютер Mac (Macintosh) производства компании Apple Computer, Inc., как подробно описано в одновременно поданной на рассмотрение заявке под номером 11/314664, модуль 910 управления хранением можно реализовать как базу данных, содержащую файлы-заглушки (stub files). Такие файлы можно индексировать и весьма эффективно осуществлять их поиск с использованием программы Spotlight, инструмента поиска метаданных, входящего в состав операционной системы Mac OS X.
Модуль 912 контроллера интерфейса отвечает за обмен информацией между модулем 902 управления метаданными и контроллерами пользователя, такими как пульт 112 дистанционного управления с сенсорным экраном (фиг.1). Модуль 912 контроллера интерфейса также отвечает за обеспечение того, что все контроллеры пользователя имеют доступ к максимуму имеющихся метаданных. Это можно реализовать с использованием функции синхронизации rsync, являющейся частью операционной системы Mac OS X.
В соответствии с другим аспектом настоящего изобретения графический интерфейс пользователя для использования с программируемым мультимедийным контроллером 100 основан на программной архитектуре, позволяющей легко изменять внешний вид, функции и другие свойства интерфейса. На фиг.11 представлена программная архитектура 1100 графического интерфейса пользователя. В предпочтительном осуществлении, в котором компьютер Mac (Macintosh) является частью программируемого мультимедийного контроллера 100, для создания файлов 1102 используется программа Adobe Photoshop, являющаяся частью операционной системы Mac OS X. Предпочтительно создавать файл 1102 Photoshop для каждого элемента экрана графического интерфейса пользователя, подобного экрану, показанному на фиг.13, или для другой удобной единицы, вплоть до и включая интерфейс пользователя целиком.
Каждый файл 1102 Photoshop содержит информацию, предпочтительно объединенную в «группы» и «слои», которые определяют внешний вид, функции и другие свойства каждого элемента графического интерфейса пользователя. Информация, содержащаяся в файле 1102, может среди прочего включать в себя заметки, метки, команды синтеза речи, команды управления системой, изображения, соответствующие различным состояниям переключателя или другого пользовательского органа управления (например, «доступно», «нажато», «наведен указатель мыши»), отображаемый текст, размер шрифта, цвет, звуковой эффект и тип кнопки/органа управления.
Файлы 1102, обычно хранящиеся на энергонезависимом носителе информации, таком как жесткий диск, считываются (1104) программой Quartz Composer, которая также является частью операционной системы Mac OS X, и виртуальной машиной (runtime environment), загружающей композиции Quartz Composer. Quartz Composer анализирует файлы 1102 Photoshop для извлечения всех групп и слоев, имеющих отношение как ко всему файлу, так и к каждому переключателю или другому органу управления.
Программные модули (patches) программы Quartz Composer обращаются к извлеченной информации и, используя функцию программы Quartz Composer, именуемую «выходные порты» (output ports), передают соответствующие команды и информацию от модуля к уровню 306 доступа к API органов управления (фиг.3) и к серверу 330 интерфейса пользователя. Такая структура предоставляет широкие возможности для программирования, поскольку обеспечивает автору композиции Quartz Composer прямой доступ к нескольким слоям изображений, а также к любой другой информации, хранящейся в файле 1102. Другими словами, простым изменением информации, содержащейся в файле 1102, автор, используя широко распространенное и знакомое программное обеспечение, может легко и быстро конфигурировать, изменять или настраивать любую сторону графического интерфейса пользователя, представляемого этим файлом.
В ответ на команды и информацию, получаемую от модулей через выходные порты, уровень 306 доступа к API органов управления и сервер 330 интерфейса пользователя отправляют соответствующие команды и информацию контроллеру 332 функций (фиг.3). Контроллер 332 функций, в свою очередь, подает соответствующие команды внешним компонентам 1106 для выполнения функций, которые пользователь указал посредством графического интерфейса пользователя.
Фиг.12 демонстрирует экранное меню 1200 ряда модулей Quartz Composer. Файл 1102 Photoshop поступает на вход модуля 1202 импорта (Import). Модуль 1202 импорта формирует несколько выходных файлов, один из которых представляет собой обработанный файл Photoshop («outputPSfile»), и наименования всех экранных кнопок, имеющихся в файле 1102 («outputAllButtonNames»). Обработанный файл Photoshop передается четырем модулям 1204 (LayersFromFile, слои из файла). Несколько выходных файлов от каждого из модулей 1204 передаются соответственно четырем «патчам» 1206 (Structure Key Member, структура-кнопка-элемент).
Выходной файл от одного из модулей 1206 передается модулю 1210 (Say Text, произнести текст), выполняющему функцию речевого синтеза. Подобным образом выходной файл от другого модуля 1206 передается модулю 1212 (Send Service Request to SVC, отправить запрос на функцию контроллеру функций), который отвечает за отправку соответствующих команд и данных контроллеру 332 функций. Выходной файл от третьего из модулей 1206 передается модулю 1214 (Image With String, изображение со строкой), который преобразует текст, извлеченный из файла 1102, в изображение для отображения. Выходной файл от оставшегося модуля 1206 передается модулю 1216 (Display, отобразить), который отвечает за отображение переключателя.
Фиг.13 представляет собой вид экрана среды графического программирования 1300, в которой представлен графический интерфейс 1302 пользователя для аудио- или видеокомпонента. В области 1304 среды 1300 показаны программируемые «слои» функций и свойства экранной кнопки 1306 «Play» (воспроизвести). Во время работы программы, когда загружается файл Photoshop, соответствующий экранной кнопке 1306, и модуль Quartz Composer запрашивает слой «команды» («Command» layer), результатом будет команда на воспроизведение связанному с кнопкой аудио- или видеокомпоненту.
Приведенное выше описание ориентировано на определенные осуществления данного раскрытия изобретения. Однако очевидно, что могут быть выполнены другие вариации и модификации описанных осуществлений с достижением некоторых или всех преимуществ этих осуществлений. Кроме того, описанные выше процедуры или процессы могут быть реализованы аппаратно, программно, осуществлены как носитель информации для считывания компьютером, содержащий программные команды, встраиваемое программное обеспечение или их сочетание. Поэтому целью последующей формулы изобретения является покрытие всех таких вариаций и модификаций, как соответствующих существу и объему данного изобретения.