СЕМАНТИЧЕСКОЕ МАСШТАБИРОВАНИЕ
SEMANTIC ZOOM

Уровень техники
[0001] Пользователи имеют доступ к постоянно растущему разнообразию контента. Дополнительно, объем контента, который доступен пользователю, постоянно растет. Например, пользователь может осуществлять доступ к множеству различных документов на работе, множеству песен дома, хранить множество фотографий на мобильном телефоне и т.д.
[0002] Тем не менее, традиционные технологии, которые используются вычислительными устройствами навигации по этому контенту, могут становиться излишне сложными, если они сталкиваются с огромным объемом контента, к которому даже легкомысленный пользователь может весь день осуществлять доступ. Следовательно, для пользователя может быть затруднительным находить интересующий контент, что может приводить к неудобству пользователя и затруднять восприятие пользователя и использование вычислительного устройства.
Сущность изобретения
[0003] Описываются технологии семантического масштабирования. В одной или более реализациях, описываются технологии, которые могут быть использованы пользователем для навигации к интересующему контенту. Эти технологии также могут включать в себя множество различных функциональных возможностей, к примеру, чтобы поддерживать семантические перестановки и увеличение и уменьшение масштаба. Эти технологии также могут включать в себя множество различных функциональных возможностей ввода, к примеру, чтобы поддерживать жесты, вводы с помощью устройства управления курсором и вводы с помощью клавиатуры. Также поддерживается множество других функциональных возможностей, как дополнительно описано в подробном описании и на чертежах.
[0004] Данное краткое изложение сущности изобретения предоставлено для того, чтобы представлять в упрощенной форме подвыборку концепций, которые дополнительно описаны ниже в подробном описании. Это краткое изложение сущности изобретения не имеет намерение идентифицировать ключевые или важнейшие признаки заявляемого изобретения, а также не имеет намерение использоваться в качестве помощи при определении объема заявляемого изобретения.
Краткое описание чертежей
[0005] Подробное описание поясняется со ссылкой на прилагаемые чертежи. На чертежах самая левая цифра(ы) номера ссылки идентифицирует чертеж, на котором номер ссылки впервые появляется. Использование одинаковых номеров ссылок в различных случаях в описании и на чертежах может указывать похожие или идентичные элементы.
[0006] Фиг. 1 является иллюстрацией окружения в примерной реализации, которое сконфигурировано с возможностью использовать технологии семантического масштабирования.
[0007] Фиг. 2 является иллюстрацией примерной реализации семантического масштабирования, в котором жест используется для навигации между представлениями базового контента.
[0008] Фиг. 3 является иллюстрацией примерной реализации первого высокоуровневого семантического порогового значения.
[0009] Фиг. 4 является иллюстрацией примерной реализации второго высокоуровневого семантического порогового значения.
[0010] Фиг. 5 является иллюстрацией примерной реализации первого низкоуровневого семантического порогового значения.
[0011] Фиг. 6 является иллюстрацией примерной реализации второго низкоуровневого семантического порогового значения.
[0012] Фиг. 7 иллюстрирует примерный вариант осуществления корректирующей анимации, которая может быть использована для семантического масштабирования.
[0013] Фиг. 8 иллюстрирует примерную реализацию, в которой показывается анимация в виде плавного перехода, которая может быть использована в качестве части семантической перестановки.
[0014] Фиг. 9 является иллюстрацией примерной реализации семантического представления, которое включает в себя семантические заголовки.
[0015] Фиг. 10 является иллюстрацией примерной реализации шаблона.
[0016] Фиг. 11 является иллюстрацией примерной реализации другого шаблона.
[0017] Фиг. 12 является блок-схемой последовательности операций способа, иллюстрирующей процедуру в примерной реализации, в которой операционная система представляет функциональность семантического масштабирования для приложения.
[0018] Фиг. 13 является блок-схемой последовательности операций способа, иллюстрирующей процедуру в примерной реализации, в которой пороговое значение используется для того, чтобы инициировать семантическую перестановку.
[0019] Фиг. 14 является блок-схемой последовательности операций способа, иллюстрирующей процедуру в примерной реализации, в которой жесты на основе манипуляций используются для того, чтобы поддерживать семантическое масштабирование.
[0020] Фиг. 15 является блок-схемой последовательности операций способа, иллюстрирующей процедуру в примерной реализации, в которой жесты и анимации используются для того, чтобы поддерживать семантическое масштабирование.
[0021] Фиг. 16 является блок-схемой последовательности операций способа, иллюстрирующей процедуру в примерной реализации, в которой вектор вычисляется, чтобы переносить список прокручиваемых элементов, и корректирующая анимация используется для того, чтобы удалять перенос списка.
[0022] Фиг. 17 является блок-схемой последовательности операций способа, иллюстрирующей процедуру в примерной реализации, в которой анимация в виде плавного перехода используется в качестве части семантической перестановки.
[0023] Фиг. 18 является блок-схемой последовательности операций способа, иллюстрирующей процедуру в примерной реализации интерфейса программирования для семантического масштабирования.
[0024] Фиг. 19 иллюстрирует различные конфигурации для вычислительного устройства, которые могут быть сконфигурированы с возможностью реализовывать технологии семантического масштабирования, описанные в данном документе.
[0025] Фиг. 20 иллюстрирует различные компоненты примерного устройства, которое может быть реализовано как любой тип портативного и/или компьютерного устройства, как описано со ссылкой на фиг. 1-11 и 19, чтобы реализовывать варианты осуществления технологий семантического масштабирования, описанных в данном документе.
Подробное описание изобретения
Обзор
[0026] Объем контента, к которому даже случайные пользователи могут осуществлять доступ в течение обычного дня, постоянно растет. Следовательно, традиционные технологии, которые используются для навигации по этому контенту, могут становиться излишне сложными и приводить к неудобству пользователя.
[0027] В нижеприведенном пояснении описываются технологии семантического масштабирования. В одной или более реализаций, технологии могут быть использованы для навигации в пределах представления. С помощью семантического масштабирования пользователи могут осуществлять навигацию по контенту посредством "перескока" к нужным местам в представлении. Дополнительно, эти технологии могут давать возможность пользователям регулировать то, сколько контента представляется в данное время в пользовательском интерфейсе, а также объем информации, предоставляемой для описания контента. Следовательно, они могут предоставлять пользователям уверенность в активировании семантического масштабирования для перескока и затем возврата в их контент. Дополнительно, семантическое масштабирование может быть использовано для предоставления обзора контента, что может повысить уверенность пользователя при навигации по контенту. Дополнительное обсуждение технологий семантического масштабирования приведено в связи со следующими разделами.
[0028] В нижеприведенном пояснении сначала описывается примерное окружение, которое сконфигурировано с возможностью использовать технологии семантического масштабирования, описанные в данном документе. Далее описываются примерные иллюстрации жестов и процедур, заключающих в себе жесты и другие вводы, которые могут использоваться в примерном окружении, а также в других окружениях. Соответственно, примерное окружение не ограничивается выполнением примерных технологий. Аналогично, примерные процедуры не ограничены реализацией в примерном окружении.
Примерное окружение
[0029] Фиг. 1 является иллюстрацией окружения 100 в примерной реализации, которое сконфигурировано с возможностью использовать технологии семантического масштабирования, описанные в данном документе. Проиллюстрированное окружение 100 включает в себя пример вычислительного устройства 102, которое может быть сконфигурировано множеством способов. Например, вычислительное устройство 102 может быть сконфигурировано с возможностью включать в себя систему обработки и запоминающее устройство. Таким образом, вычислительное устройство 102 может быть сконфигурировано как традиционный компьютер (например, настольный персональный компьютер, переносной компьютер и т.д.), мобильная станция, электронное бытовое устройство, абонентская приставка, функционально соединенная с телевизионным приемником, беспроводной телефон, нетбук, игровая приставка и т.д., как дополнительно описано в связи с фиг. 19 и 20.
[0030] Соответственно, вычислительное устройство 102 может варьироваться в диапазоне от полноресурсного устройства со значительными ресурсами запоминающего устройства и процессора (к примеру, персональные компьютеры, игровые приставки) до малоресурсных устройств с ограниченными ресурсами запоминающего устройства и/или обработки (к примеру, традиционные абонентские приставки, карманные игровые приставки). Вычислительное устройство 102 также может быть связано с программным обеспечением, которое инструктирует вычислительному устройству 102 выполнять одну или более операций.
[0031] Вычислительное устройство 102 также иллюстрируется как включающее в себя модуль 104 ввода-вывода. Модуль 104 ввода-вывода представляет функциональность, связанную с вводами, обнаруженными посредством вычислительного устройства 102. Например, модуль 104 ввода-вывода может быть сконфигурирован как часть операционной системы, чтобы абстрагировать функциональность вычислительного устройства 102 для приложений 106, которые выполняются на вычислительном устройстве 102.
[0032] Модуль 104 ввода-вывода, например, может быть сконфигурирован с возможностью распознавать жест, обнаруженный через взаимодействие с устройством 108 отображения (например, с использованием функциональности сенсорного экрана) посредством руки 110 пользователя. Таким образом, модуль 104 ввода-вывода может представлять функциональность для того, чтобы идентифицировать жесты и инструктировать выполнение операций, которые соответствуют жестам. Жесты могут быть идентифицированы посредством модуля 104 ввода-вывода множеством различных способов. Например, модуль 104 ввода-вывода может быть сконфигурирован с возможностью распознавать сенсорный ввод, к примеру, палец руки 110 пользователя в качестве ближайшего к устройству 108 отображения вычислительного устройства 102 с использованием функциональности сенсорного экрана.
[0033] Сенсорный ввод также может быть распознан как включающий в себя атрибуты (например, перемещение, точку выбора и т.д.), которые являются применимыми для того, чтобы отличать сенсорный ввод от других сенсорных вводов, распознанных посредством модуля 104 ввода-вывода. Это отличие затем может служить в качестве основы для того, чтобы идентифицировать жест из сенсорных вводов, и, следовательно, операцию, которая должна быть выполнена на основе идентификации жеста.
[0034] Например, палец руки 110 пользователя проиллюстрирован как размещенный рядом с устройством 108 отображения и перемещаемый влево, что представлено посредством стрелки. Соответственно, обнаружение пальца руки 110 пользователя и последующего перемещения может быть распознано посредством модуля 104 ввода-вывода в качестве жеста "панорамирования", чтобы осуществлять навигацию по образам контента в направлении перемещения. В проиллюстрированном случае, образы сконфигурированы как плитки, которые представляют элементы контента в файловой системе вычислительного устройства 102. Элементы могут быть сохранены локально в запоминающем устройстве вычислительного устройства 102, удаленно доступными через сеть, представлять устройства, которые функционально соединяются с вычислительным устройством 102, и т.д. Таким образом, множество различных типов жестов может быть распознано посредством модуля 104 ввода-вывода, такие как жесты, которые распознаются из одного типа ввода (например, жесты касания, такие как вышеописанный жест перетаскивания), а также жесты, заключающие в себе несколько типов вводов, например, составные жесты.
[0035] Множество других вводов также может быть обнаружено и обработано посредством модуля 104 ввода-вывода, к примеру, с клавиатуры, устройства управления курсором (например, мыши), стилуса, сенсорной панели и т.д. Таким образом, приложения 106 могут функционировать без сведений по тому, как операции реализуются посредством вычислительного устройства 102. Хотя нижеприведенное пояснение может описывать конкретные примеры жестов, вводов с помощью клавиатуры и устройства управления курсором, должно быть очевидным, что это только некоторые из множества различных примеров, которые рассматриваются для использования в технологиях семантического масштабирования, описанных в данном документе.
[0036] Модуль 104 ввода-вывода дополнительно иллюстрируется как включающий в себя модуль 114 семантического масштабирования. Модуль 114 семантического масштабирования представляет функциональность вычислительного устройства 102, чтобы использовать технологии семантического масштабирования, описанные в данном документе. Традиционные технологии, которые используются для того, чтобы осуществлять навигацию через данные, может быть затруднительным реализовывать с использованием сенсорных вводов. Например, пользователям может быть затруднительным находить конкретный фрагмент контента с использованием традиционной линейки прокрутки.
[0037] Технологии семантического масштабирования могут быть использованы для навигации в пределах представления. С помощью семантического масштабирования пользователи могут осуществлять навигацию по контенту посредством "перескока" к нужным местам в представлении. Дополнительно, семантическое масштабирование может быть использовано без изменения первичной структуры контента. Следовательно, они могут предоставлять пользователям уверенность в активировании семантического масштабирования для перескока и затем возврата в контент. Дополнительно, семантическое масштабирование может быть использовано, чтобы предоставлять обзор контента, что может помочь повысить уверенность пользователя при навигации по контенту. Модуль 114 семантического масштабирования может быть сконфигурирован с возможностью поддерживать множество семантических представлений. Дополнительно, модуль 114 семантического масштабирования может формировать семантическое представление "заранее", так чтобы оно было готово к отображению, как только инициируется семантическая перестановка, как описано выше.
[0038] Устройство 108 отображения проиллюстрировано как отображающее множество образов контента в семантическом представлении, что также может упоминаться в качестве "представления с уменьшенным масштабом" в нижеприведенном пояснении. Образы сконфигурированы как плитки (tile) в проиллюстрированном случае. Плитки в семантическом представлении могут быть сконфигурированы с возможностью отличаться от плиток в других представлениях, к примеру, на начальном экране, который может включать в себя плитки, используемые для запуска приложений. Например, размер этих плиток может задаваться равным 27,5 процентам от "нормального размера".
[0039] В одной или более реализациях это представление может быть сконфигурировано как семантическое представление начального экрана. Плитки в этом представлении могут состоять из цветных блоков, которые являются идентичными цветным блокам в нормальном представлении, но не содержат пространство для отображения уведомлений (например, текущая температура для плитки, включающей в себя погоду), хотя другие примеры также рассматриваются. Таким образом, обновления уведомлений в виде плиток могут быть задержаны и обработаны в пакетном режиме для последующего вывода, когда пользователь выходит из семантического масштабирования, т.е. "представления с увеличенным масштабом".
[0040] Если новое приложение устанавливается или удаляется, модуль 114 семантического масштабирования может добавлять или удалять соответствующую плитку из сетки независимо от уровня "масштабирования", как дополнительно описано ниже. Дополнительно, модуль 114 семантического масштабирования затем может заново располагать плитки соответствующим образом.
[0041] В одной или более реализациях, форма и макет групп в сетке остаются неизменными в семантическом представлении, как в "нормальном" представлении, например, в стопроцентном представлении. Например, число строк в сетке может оставаться идентичным. Тем не менее, поскольку может просматриваться больше плиток, больше информации на плитках может загружаться посредством модуля 114 семантического масштабирования по сравнению с нормальным представлением. Дополнительное пояснение этих и других технологий приведено с началом в связи с фиг. 2.
[0042] В общем, любые из функций, описанных в данном документе, могут быть реализованы с помощью программного обеспечения, микропрограммного обеспечения, аппаратных средств (к примеру, неизменяемой логической схемы) или комбинации этих реализаций. Термины "модуль", "функциональность" и "логика" при использовании в данном документе обычно представляют программное обеспечение, микропрограммное обеспечение, аппаратные средства или комбинацию вышеозначенного. В случае программной реализации модуль, функциональность или логика представляют программный код, который выполняет заданные задачи при выполнении в процессоре (к примеру, в CPU или в нескольких CPU). Программный код может быть сохранен на одном или более машиночитаемых запоминающих устройств. Признаки технологий семантического масштабирования, описанных ниже, являются независимыми от платформы, что означает то, что технологии могут быть реализованы на множестве коммерческих вычислительных платформ, имеющих множество процессоров.
[0043] Например, вычислительное устройство 102 также может включать в себя объект (например, программное обеспечение), который инструктирует аппаратным средствам вычислительного устройства 102 выполнять операции, к примеру, процессоры, функциональные блоки и т.д. Например, вычислительное устройство 102 может включать в себя машиночитаемый носитель, который может быть сконфигурирован с возможностью поддерживать инструкции, которые инструктируют вычислительному устройству, а более конкретно, аппаратным средствам вычислительного устройства 102 выполнять операции. Таким образом, инструкции функционируют с возможностью конфигурировать аппаратные средства, чтобы выполнять операции и в силу этого приводить к преобразованию аппаратных средств таким образом, чтобы выполнять функции. Инструкции могут предоставляться посредством машиночитаемого носителя в вычислительное устройство 102 через множество различных конфигураций.
[0044] Одной такой конфигурацией машиночитаемого носителя является среда передачи сигналов и в силу этого сконфигурирована с возможностью передавать инструкции (например, в качестве несущей) в аппаратные средства вычислительного устройства, к примеру, через сеть. Машиночитаемый носитель также может быть сконфигурирован как машиночитаемый носитель хранения данных и в силу этого не является средой передачи сигналов. Примеры машиночитаемого носителя хранения данных включают в себя оперативное запоминающее устройство (RAM), постоянное запоминающее устройство (ROM), оптический диск, флэш-память, запоминающее устройство на основе жесткого диска и другие запоминающие устройства, которые могут использовать магнитные, оптические и другие технологии для того, чтобы сохранять инструкции и другие данные.
[0045] Фиг. 2 иллюстрирует примерную реализацию 200 семантического масштабирования, в котором жест используется для навигации между представлениями базового контента. Представления проиллюстрированы в этой примерной реализации с использованием первой, второй и третьей стадий 202, 204, 206. На первой стадии 202 вычислительное устройство 102 проиллюстрировано как отображающее пользовательский интерфейс на устройстве 108 отображения. Пользовательский интерфейс включает в себя образы элементов, доступных через файловую систему вычислительного устройства 102, проиллюстрированные примеры чего включают в себя документы и почтовые сообщения, а также соответствующие метаданные. Тем не менее, должно быть очевидным, что широкий спектр другого контента, включая устройства, может быть представлен в пользовательском интерфейсе, как описано выше, который затем может быть обнаружен с использованием функциональности сенсорного экрана.
[0046] Рука 110 пользователя проиллюстрирована на первой стадии 202 как инициирующая жест на основе "сжатия", чтобы "уменьшать масштаб" представления для образов. Жест сжатия инициируется в этом случае посредством помещения двух пальцев руки 110 пользователя в непосредственной близости к устройству 108 отображения и перемещения их друг к другу, что затем может быть обнаружено с использованием функциональности сенсорного экрана вычислительного устройства 102.
[0047] На второй стадии 204 контактные точки пальцев пользователя проиллюстрированы с использованием фантомных кругов со стрелками, чтобы указывать направление перемещения. Как проиллюстрировано, представление первой стадии 202, которая включает в себя значки и метаданные в качестве отдельных образов элементов, переходит в представление групп элементов с использованием одиночных образов на второй стадии 204. Другими словами, каждая группа элементов имеет один образ. Групповые образы включают в себя заголовок, который указывает критерий для формирования группы (например, общую черту), и имеют размеры, которые служат признаком относительного размера совокупности.
[0048] На третьей стадии 206 контактные точки еще больше сближаются по сравнению со второй стадией 204, так что большее число образов групп элементов может отображаться одновременно на устройстве 108 отображения. После прекращения жеста пользователь может осуществлять навигацию по образам с использованием множества технологий, таких как жест панорамирования, операция нажатия и перетаскивания с помощью устройства управления курсором, одной или более клавиш клавиатуры и т.п. Таким образом, пользователь может легко осуществлять навигацию до требуемого уровня детализации в образах, осуществлять навигацию по образам на этом уровне и т.д., чтобы находить интересующий контент. Должно быть очевидным, что эти этапы могут выполняться в противоположном порядке, чтобы "увеличивать масштаб" представления для образов, например, контактные точки могут отдаляться друг от друга в качестве "жеста растяжения", чтобы управлять уровнем детализации отображения в семантическом масштабировании.
[0049] Таким образом, технологии семантического масштабирования, описанные выше, заключают в себе семантическую перестановку, которая означает семантический переход между представлениями контента при увеличении и уменьшении масштаба. Технологии семантического масштабирования дополнительно могут повышать качество взаимодействия, приводя к переходу посредством увеличения/уменьшения масштаба каждого представления. Хотя описан жест сжатия, управление данной технологией может осуществляться с использованием множества различных вводов. Например, также может быть использован жест в виде "короткого касания". В жесте короткого касания короткое касание может приводить к тому, что для представления осуществляется переход между представлениями, например, представление уменьшается и увеличивается по масштабу при постукивании по одному или более образам. Этот переход может использовать ту же самую анимацию перехода, которую использует жест сжатия, как описано выше.
[0050] Жест растяжения также может поддерживаться модулем 114 семантического масштабирования. В этом примере, пользователь может инициировать жест сжатия и затем решить отменить жест посредством перемещения пальцев в противоположном направлении. В ответ, модуль 114 семантического масштабирования может поддерживать сценарий отмены и переход к предыдущему представлению.
[0051] В другом примере, управление семантическим масштабированием также может осуществляться с использованием колесика прокрутки и сочетания клавиш с использованием "Ctrl", чтобы увеличивать и уменьшать масштаб. В другом примере, сочетание клавиш "Ctrl" и "+" или "-" на клавиатуре может быть использовано для того, чтобы увеличивать или уменьшать масштаб, соответственно. Также подразумевается множество других примеров.
Пороговые значения
[0052] Модуль 114 семантического масштабирования может использовать множество различных пороговых значений, чтобы управлять взаимодействием с технологиями семантического масштабирования, описанными в данном документе. Например, модуль 114 семантического масштабирования может использовать семантическое пороговое значение, чтобы указывать уровень масштабирования, при котором возникает перестановка в представлениях, например, между первой и второй стадиями 202, 204. В одной или более реализаций он является основанным на расстоянии, например, зависит от величины перемещения в контактных точках в жесте в виде щипка.
[0053] Модуль 114 семантического масштабирования также может использовать пороговое значение непосредственной манипуляции, чтобы определять то, на каком уровне масштабирования следует "привязывать" представление, когда заканчивается ввод. Например, пользователь может подать жест сжатия, как описано выше, чтобы осуществить навигацию до требуемого уровня масштабирования. Пользователь затем может прекращать жест, чтобы осуществлять навигацию по образам контента в этом представлении. Таким образом, пороговое значение непосредственной манипуляции может быть использовано для того, чтобы определять то, на каком уровне должно оставаться представление, чтобы поддерживать эту навигацию, и степень масштабирования, выполняемого между семантическими "перестановками", примеры чего показаны на второй и третьей стадиях 204, 206.
[0054] Таким образом, как только представление достигает семантического порогового значения, модуль 114 семантического масштабирования может инструктировать перестановку в семантических визуальных элементах. Дополнительно, семантические пороговые значения могут изменяться в зависимости от направления ввода, который задает масштабирование. Это может быть сконфигурировано с возможностью уменьшать мерцание, которое может возникать в противном случае, когда направление масштабирования изменяется на противоположное.
[0055] В первом примере, проиллюстрированном в примерной реализации 300 по фиг. 3, первое высокоуровневое семантическое пороговое значение 302 может задаваться, например, равным приблизительно восьмидесяти процентам от перемещения, которое может быть распознано для жеста модулем 114 семантического масштабирования. Например, если пользователь первоначально находится в стопроцентном представлении и начинает уменьшение масштаба, семантическая перестановка может быть инициирована, когда ввод достигает восьмидесяти процентов, как задано посредством первого высокоуровневого семантического порогового значения 302.
[0056] Во втором примере, проиллюстрированном в примерной реализации 400 по фиг. 4, второе высокоуровневое семантическое пороговое значение 402 также может быть задано и использовано модулем 114 семантического масштабирования, которое может задаваться выше первого высокоуровневого семантического порогового значения 302, к примеру, приблизительно равным восьмидесяти пяти процентам. Например, пользователь может начинать при стопроцентном представлении и инициировать семантическую перестановку при первом высокоуровневом семантическом пороговом значении 302, но не "переставать действовать" (например, по-прежнему предоставлять вводы, которые задают жест) и решать изменять на противоположное направление масштабирования. В этом случае, ввод должен инициировать перестановку обратно к обычному представлению по достижению второго высокоуровневого семантического порогового значения 402.
[0057] Низкоуровневые пороговые значения также могут быть использованы модулем 114 семантического масштабирования. В третьем примере, проиллюстрированном в примерной реализации 500 по фиг. 5, первое низкоуровневое семантическое пороговое значение 502 может задаваться, к примеру, приблизительно равным сорока пяти процентам. Если пользователь находится первоначально в семантическом представлении в 27,5% и предоставляет ввод, чтобы начинать "увеличение масштаба", семантическая перестановка может быть инициирована, когда ввод достигает первого низкоуровневого семантического порогового значения 502.
[0058] В четвертом примере, проиллюстрированном в примерной реализации 600 по фиг. 6, второе низкоуровневое семантическое пороговое значение 602 также может быть задано, к примеру, приблизительно равным тридцати пяти процентам. Аналогично предыдущему примеру, пользователь может начинать в семантическом представлении в 27,5% (например, начальный экран) и инициировать семантическую перестановку, например, процентное отношение масштабирования превышает сорок пять процентов. Кроме того, пользователь может продолжать предоставлять ввод (например, кнопка мыши остается "нажатой", продолжается "ввод жестами" и т.д.) и затем решать изменять на противоположное направление масштабирования. Перестановка обратно к представлению в 27,5% может быть инициирована посредством модуля 114 семантического масштабирования после достижения второго низкоуровневого семантического порогового значения.
[0059] Таким образом, в примерах, показанных и поясненных в связи с фиг. 2-6, семантические пороговые значения могут быть использованы для того, чтобы задавать, когда возникает семантическая перестановка во время семантического масштабирования. Между этими пороговыми значениями, представление может продолжать оптически увеличивать масштаб и уменьшать масштаб в ответ на непосредственную манипуляцию.
Точки привязки
[0060] Когда пользователь предоставляет ввод, чтобы увеличивать или уменьшать масштаб (например, перемещает пальцы согласно жесту сжатия), отображаемая поверхность может оптически масштабироваться, соответственно, посредством модуля 114 семантического масштабирования. Тем не менее, когда ввод прекращается (например, пользователь перестает выполнять жест), модуль 114 семантического масштабирования может формировать анимацию до определенного уровня масштабирования, что может упоминаться в качестве "точки привязки". В одной или более реализациях, это основано на текущем процентном отношении масштабирования, при котором прекращается ввод, например, когда пользователь "перестает действовать".
[0061] Множество различных точек привязки может быть задано. Например, модуль 114 семантического масштабирования может задавать стопроцентную точку привязки, в которой контент отображается в "обычном режиме", который не масштабируется, например, имеет полную точность. В другом примере, модуль 114 семантического масштабирования может задавать точку привязки, которая соответствует "режиму масштабирования" в 27,5%, который включает в себя семантические визуальные элементы.
[0062] В одной или более реализациях, если контента меньше, чем фактически использует доступная область отображения устройства 108 отображения, точка привязки может задаваться автоматически и без вмешательства пользователя посредством модуля 114 семантического масштабирования равным любому значению, которое приводит к тому, что контент будет практически "заполнять" устройство 108 отображения. Таким образом, в этом примере контент не должен масштабироваться меньше, чем "режим масштабирования" в 27,5%, но может быть большим. Естественно, также рассматриваются другие примеры, к примеру, когда модуль 114 семантического масштабирования выбирает один из множества предварительно заданных уровней масштабирования, который соответствует текущему уровню масштабирования.
[0063] Таким образом, модуль 114 семантического масштабирования может использовать пороговые значения в сочетании с точками привязки, чтобы определять то, где представление застывает, когда ввод прекращается, например, пользователь "перестает выполнять" жест, отпускает кнопку мыши, прекращает предоставление ввода с помощью клавиатуры после указанного количества времени и т.д. Например, если пользователь уменьшает масштаб, и процентное отношение уменьшения масштаба превышает высокоуровневое пороговое процентное отношение, и прекращает ввод, модуль 114 семантического масштабирования может приводить к тому, что представление обратно привязывается к 100%-ной точке привязки.
[0064] В другом примере, пользователь может предоставлять вводы для уменьшения масштаба, и процентное отношение уменьшения масштаба меньше высокоуровневого порогового процентного отношения, после чего пользователь может прекращать вводы. В ответ, модуль 114 семантического масштабирования может анимировать представление в точке привязки в 27,5%.
[0065] В дополнительном примере, если пользователь начинает в масштабированном представлении (например, в 27,5%) и начинает увеличение масштаба при процентном отношении, которое меньше низкоуровневого семантического порогового процентного отношения, и останавливается, модуль 114 семантического масштабирования может приводить к тому, что представление обратно привязывается к семантическому представлению, например, в 27,5%.
[0066] В еще одном другом примере, если пользователь начинает в семантическом представлении (в 27,5%) и начинает увеличение масштаба при процентном отношении, которое превышает низкоуровневое пороговое процентное отношение, и останавливается, модуль 114 семантического масштабирования может приводить к тому, что представление привязывается к 100%-ному представлению.
[0067] Точки привязки также могут выступать в качестве границы масштабирования. Если пользователь предоставляет ввод, который указывает, что пользователь пытается выйти за эти границы, например, модуль 114 семантического масштабирования может выводить анимацию, чтобы отображать "резкое изменение размера в результате избыточного масштабирования". Это может служить для того, чтобы предоставлять обратную связь, чтобы позволять пользователю знать, что масштабирование работает, а также не допускать масштабирования пользователем за границу.
[0068] Дополнительно, в одной или более реализациях модуль 114 семантического масштабирования может быть сконфигурирован с возможностью реагировать на перевод вычислительного устройства 102 в режим бездействия. Например, модуль 114 семантического масштабирования может быть в режиме масштабирования (например, представлении в 27,5%), во время которого сеанс переходит в режим бездействия, к примеру, вследствие экранной заставки, блокировки экрана и т.д. В ответ, модуль 114 семантического масштабирования может выходить из режима масштабирования и возвращаться на уровень стопроцентного представления. Также рассматривается множество других примеров, к примеру, использование скорости, обнаруженной посредством перемещений, чтобы распознавать один или более жестов.
Манипуляция на основе жестов
[0069] Жесты, используемые для того, чтобы взаимодействовать с семантическим масштабированием, могут быть сконфигурированы множеством способов. В первом примере, поддерживается режим, в котором при обнаружении ввода, который приводит к манипуляции представления "сразу". Например, снова ссылаясь на фиг. 2 представления могут начинать сжиматься, как только обнаруживается такой ввод, что пользователь перемещает пальцы согласно жесту сжатия. Дополнительно, масштабирование может быть сконфигурировано с возможностью "согласно вводам, когда они выполняются" увеличивать и уменьшать масштаб. Это представляет собой пример жеста на основе манипуляций, который обеспечивает обратную связь в реальном времени. Естественно, жест растяжения также может быть основан на манипуляциях, чтобы следовать вводам.
[0070] Как описано выше, пороговые значения также могут быть использованы для определения того, "когда" переключать представления в ходе манипуляции и вывода в реальном времени. Таким образом, в этом примере представление может быть масштабировано посредством первого жеста, который следует перемещению пользователя по мере его осуществления так, как описано во вводе. Также может быть задан второй жест (например, жест в виде семантической перестановки), который заключает в себе пороговые значения, чтобы инициировать перестановку между представлениями, как описано выше, например, плавный переход к другому представлению.
[0071] В другом примере, жест может использоваться с анимацией, чтобы выполнять масштабирования и даже перестановки представлений. Например, модуль 114 семантического масштабирования может обнаруживать перемещение пальцев руки 110 пользователя, как и ранее, используемое в жесте в виде щипка. После того, как заданное перемещение удовлетворяется для задания жеста, модуль 114 семантического масштабирования может выводить анимацию, чтобы инструктировать отображение масштабирования. Таким образом, в этом примере масштабирование не следует перемещению в реальном времени, но может следовать практически в реальном времени, так что для пользователя может быть затруднительным находить отличие между двумя технологиями. Должно быть очевидным, что эта технология может продолжать инструктировать плавный переход и перестановку представлений. Этот другой пример может быть полезным в сценариях с небольшим объемом ресурсов, чтобы экономить ресурсы вычислительного устройства 102.
[0072] В одной или более реализаций, модуль 114 семантического масштабирования может "ожидать" завершения ввода (например, пальцы руки 110 пользователя убираются с устройства 108 отображения) и затем использовать одну или более точек привязки, описанных выше, для того чтобы определять конечное представление для вывода. Таким образом, анимации могут быть использованы для того, чтобы увеличивать и уменьшать масштаб (например, переключать перемещения), и модуль 114 семантического масштабирования может инструктировать вывод соответствующих анимаций.
Взаимодействия семантических представлений
[0073] Снова возвращаясь к фиг. 1, модуль 114 семантического масштабирования может быть сконфигурирован с возможностью поддерживать множество различных взаимодействий в семантическом представлении. Дополнительно, эти взаимодействия могут задаваться так, что они отличаются от "обычного" стопроцентного представления, хотя также рассматриваются другие примеры, в которых взаимодействия являются идентичными.
[0074] Например, плитки не могут запускаться из семантического представления. Тем не менее, выбор (например, короткое касание) плитки может приводить к тому, что представление возвращает масштаб до нормального представления в местоположении, центрированном на местоположении быстрого постукивания. В другом примере, если пользователь стукнул по плитке с изображением самолета в семантическом представлении по фиг. 1, когда его масштаб увеличен до нормального представления, плитка с изображением самолета по-прежнему находится близко к пальцу руки 110 пользователя, которым выполнено касание. Дополнительно, "обратное увеличение масштаба" может центрироваться горизонтально в местоположении короткого касания, в то время как выравнивание по вертикали может быть основано на центре сетки.
[0075] Как описано выше, семантическая перестановка также может быть инициирована посредством устройства управления курсором, к примеру, посредством нажатия модифицирующей клавиши на клавиатуре и с использованием колесика прокрутки на мыши одновременно (например, "CTRL+" и перемещение в выемке колесика прокрутки), "CTRL+" и ввод с прокруткой по краю сенсорной панели, выбор кнопки семантического масштабирования 116 и т.д. Сочетание клавиш, например, может быть использовано для того, чтобы переключаться между семантическими представлениями. Чтобы не допускать перехода пользователей в "промежуточное" состояние, циклический сдвиг в противоположном направлении может инструктировать модулю 114 семантического масштабирования анимировать представление в новой точке привязки. Тем не менее, циклический сдвиг в идентичном направлении не приводит к изменению в представлении или уровне масштабирования. Масштабирование может центрироваться на позиции мыши. Дополнительно, анимация в виде резкого изменения размера в результате избыточного масштабирования может быть использована для того, чтобы давать пользователям обратную связь, если пользователи пытаются осуществлять навигацию за границы масштабирования, как описано выше. Анимация для семантического перехода может быть основанной на времени и влечь за собой оптическое масштабирование, после которого выполняется плавный переход для фактической перестановки и затем длительное оптическое масштабирование до конечного уровня масштабирования по точке привязки.
Центрирование и выравнивание семантических масштабирований
[0076] Когда осуществляется семантическое "уменьшение масштаба", масштабирование может центрироваться на местоположении ввода, к примеру, позиции жеста сжатия, короткого касания, курсора или фокуса и т.д. Вычисление может выполняться посредством модуля 114 семантического масштабирования касательно того, какая группа является ближайшей к местоположению ввода. Эта группа затем может выравниваться по левому краю с соответствующим семантическим групповым элементом, который возникает в представлении, например, после семантической перестановки. Для сгруппированных представлений на сетке семантический групповой элемент может выравниваться с заголовком.
[0077] Когда осуществляется семантическое "увеличение масштаба", масштабирование также может центрироваться на местоположении ввода, например, позиции жеста сжатия, короткого касания, курсора или фокуса и т.д. С другой стороны, модуль 114 семантического масштабирования может вычислять то, какой семантический групповой элемент является ближайшим к местоположению ввода. Этот семантический групповой элемент затем может выравниваться по левому краю с соответствующей группой из представления с увеличенным масштабом, когда он возникает в представлении, например, после семантической перестановки. Для сгруппированных представлений на сетке семантический групповой элемент может выравниваться с заголовком.
[0078] Как описано выше, модуль 114 семантического масштабирования также может поддерживать панорамирование, чтобы осуществлять навигацию между элементами, отображаемыми на требуемом уровне масштабирования. Пример этого проиллюстрирован через стрелку, чтобы указывать перемещение пальца руки 110 пользователя. В одной или более реализаций, модуль 114 семантического масштабирования может упреждающе выбирать и подготавливать посредством рендеринга образ контента для отображения в представлении, которое может быть основано на множестве критериев, включающих в себя эвристику, на основе относительных осей панорамирования элементов управления и т.д. Эта упреждающая выборка также может быть использована для различных уровней масштабирования, так чтобы образы были "готовы" для ввода, чтобы изменять уровень масштабирования, семантическую перестановку и т.д.
[0079] Дополнительно, в одной или более дополнительных реализаций, модуль 114 семантического масштабирования может "скрывать" окантовку (например, отображение элементов управления, заголовки и т.д.), что может быть связано или не связано с самой функциональностью семантического масштабирования непосредственно. Например, эта кнопка семантического масштабирования 116 может скрываться во время масштабирования. Также подразумевается множество других примеров.
Корректирующая анимация
[0080] Фиг. 7 иллюстрирует примерный вариант осуществления 700 корректирующей анимации, которая может быть использована для семантического масштабирования. Примерный вариант осуществления проиллюстрирован посредством использования первой, второй и третьей стадий 702, 704, 706. На первой стадии 702 показывается список прокручиваемых элементов, которые включают в себя имена "Adam", "Alan", "Anton" и "Arthur". Имя "Adam" отображается на левом краю устройства 108 отображения, и имя "Arthur" отображается на правом краю устройства 108 отображения.
[0081] Ввод в виде щипка затем может быть принят, чтобы уменьшать масштаб имени "Arthur". Другими словами, пальцы руки пользователя могут помещаться поверх отображения имени "Arthur" и перемещаться вместе. В этом случае, это может инструктировать выполнение анимации в виде плавного перехода и масштабирования для того, чтобы реализовывать семантическую перестановку, как показано на второй стадии 704. На второй стадии буквы "A", "B" и "C" отображаются как ближайшие к точке, в которой обнаруживается ввод, например, как часть устройства 108 отображения, которая использована для того, чтобы отображать "Arthur". Таким образом, за счет этого модуль 114 семантического масштабирования может обеспечивать то, что "A" выровнен по левой границе с именем "Arthur". На этой стадии ввод продолжается, например, пользователь не "перестает действовать".
[0082] Корректирующая анимация затем может быть использована для того, чтобы "заполнять устройство 108 отображения" когда ввод прекращается, например, пальцы руки пользователей убираются с устройства 108 отображения. Например, может отображаться анимация, в которой список "плавно перемещается влево" в этом примере, как показано на третьей стадии 706. Тем не менее, если пользователь не "перестает действовать" и вместо этого вводит жест растяжения, анимация в виде семантической перестановки (например, плавный переход и масштабирование) может выводиться, чтобы возвращаться на первую стадию 702.
[0083] В случае, в котором пользователь "перестает действовать" до того, как анимация в виде плавного перехода и масштабирования завершается, может выводиться корректирующая анимация. Например, оба элемента управления могут переноситься таким образом, что до того, как "Arthur" постепенно полностью исчезает, имя отображается со сжатием и переносом влево, так что имя остается выровненным с "A" все время по мере того, как оно переносится влево.
[0084] Для случаев несенсорного ввода (например, использование устройства управления курсором или клавиатуры) модуль 114 семантического масштабирования может вести себя так, как будто пользователь "перестает действовать", так что перенос начинается одновременно с анимациями в виде масштабирования и плавного перехода.
[0085] Таким образом, корректирующая анимация может использоваться для выравнивания элементов между представлениями. Например, элементы в различных представлениях могут иметь соответствующие ограничительные прямоугольники, которые описывают размер и позицию элемента. Модуль 114 семантического масштабирования затем может использовать функциональность для того, чтобы выравнивать элементы между представлениями таким образом, чтобы соответствующие элементы между представлениями соответствовали этим ограничительным прямоугольникам, например, выравниваются по левому краю, по центру или по правому краю.
[0086] Снова возвращаясь к фиг. 7, список прокручиваемых элементов отображается на первой стадии 702. Без корректирующей анимации уменьшение масштаба от записи в правой части устройства отображения (например, Arthur) не выравнивает соответствующий образ относительно второго представления, например, "A", поскольку оно должно выравниваться на левом краю устройства 108 отображения в этом примере.
[0087] Соответственно, модуль 114 семантического масштабирования может представлять интерфейс программирования, который сконфигурирован с возможностью возвращать вектор, который описывает то, насколько далеко переносить элемент управления (например, список прокручиваемых элементов), чтобы выравнивать элементы между представлениями. Таким образом, модуль 114 семантического масштабирования может быть использован для переноса элемента управления, чтобы "поддерживать выравнивание", как показано на второй стадии 704, и после прекращения модуль 114 семантического масштабирования может "заполнять дисплей", как показано на третьей стадии 706. Дополнительное пояснение корректирующей анимации приведено в связи с примерными процедурами.
Анимация в виде плавного перехода
[0088] Фиг. 8 иллюстрирует примерную реализацию 800, в которой показывается анимация в виде плавного перехода, которая может быть использована в качестве части семантической перестановки. Эта примерная реализация 800 проиллюстрирована с помощью первой, второй и третьей стадий 802, 804, 806. Как описано ранее, анимация в виде плавного перехода может быть реализована как часть семантической перестановки, чтобы переходить между представлениями. Первая, вторая и третья стадии 802-806 проиллюстрированной реализации, например, могут быть использованы для перехода между представлениями, показанными на первой и второй стадиях 202, 204 по фиг. 2, в ответ на жест сжатия или другой ввод (например, с клавиатуры или устройства управления курсором), чтобы инициировать семантическую перестановку.
[0089] На первой стадии 802 показаны образы элементов в файловой системе. Принимается ввод, который вызывает анимацию 804 в виде плавного перехода, как показано на второй стадии, в котором секционирование различных представлений может быть показано вместе, к примеру, посредством использования настроек непрозрачности, прозрачности и т.д. Он может быть использован для того, чтобы переходить к конечному представлению, как показано на третьей стадии 806.
[0090] Анимация в виде плавного перехода может быть реализована множеством способов. Например, может использоваться пороговое значение, которое используется для того, чтобы инициировать вывод анимации. В другом примере, жест может быть основан на перемещении, так что непрозрачность соответствует вводам в реальном времени. Например, разные уровни непрозрачности для различного представления могут применяться на основе величины перемещения, описанной посредством ввода. Таким образом, по мере того, как вводится перемещение, непрозрачность начального вида может быть снижена, и непрозрачность конечного представления может быть увеличена. В одной или более реализациях, технологии привязки также могут быть использованы для того, чтобы привязывать представление к любому из представлений на основе величины перемещения, когда ввод прекращается, например, пальцы руки пользователя убираются с устройства отображения.
Фокус
[0091] Когда осуществляется увеличение масштаба, модуль 114 семантического масштабирования может применять фокус к первому элементу в группе, масштаб которой увеличивается. Это также может быть сконфигурировано с возможностью затухать после определенного времени или как только пользователь начинает взаимодействие с целью. Если фокус не изменен, то когда пользователь возвращает масштаб к стопроцентному представлению, идентичный элемент, который сфокусирован до семантической перестановки, продолжает фокусироваться.
[0092] Во время жеста в виде щипка в семантическом представлении фокус может применяться вокруг группы, которая захватывается щипком. Если пользователь должен перемещать палец по другой группе до перехода, индикатор фокуса сможет быть обновлен на новую группу.
Семантические заголовки
[0093] Фиг. 9 иллюстрирует примерную реализацию 900 семантического представления, которое включает в себя семантические заголовки. Контент для каждого семантического заголовка может предоставляться множеством способов, к примеру, чтобы перечислять общий критерий для группы, заданной посредством заголовка, конечным разработчиком (например, с использованием HTML) и т.д.
[0094] В одной или более реализациях, анимация в виде плавного перехода, используемая, чтобы переходить между представлениями, может не заключать в себе заголовки групп, например, во время "уменьшения масштаба". Тем не менее, когда вводы прекращены (например, пользователь "перестает действовать"), и представление привязано, заголовки могут быть анимированы "обратно" для отображения. Если сгруппированное представление на сетке подставляется вместо семантического представления, например, семантические заголовки могут содержать заголовки элементов, которые заданы конечным разработчиком для сгруппированного представления на сетке. Изображения и другой контент также могут быть частью семантического заголовка.
[0095] Выбор заголовка (например, быстрое постукивание, щелчок мышью или активация с клавиатуры) может приводить к тому, что представление возвращает масштаб к 100%-ому представлению с масштабированием, центрированным на местоположении быстрого постукивания, щипка или щелчка. Следовательно, когда пользователь быстро прикасается к заголовку группы в семантическом представлении, эта группа появляется около местоположения быстрого постукивания в представлении с увеличенным масштабом. Позиция "X" левого края семантического заголовка, например, может выравниваться с позицией "X" левого края группы в представлении с увеличенным масштабом. Пользователи также могут осуществлять навигацию между группами с использованием клавиш со стрелками, например, с использованием клавиш со стрелками, чтобы перемещать фокусирующие визуальные элементы между группами.
Шаблоны
[0096] Модуль 114 семантического масштабирования также может поддерживать множество различных шаблонов для различных макетов, которые могут быть использованы посредством разработчиков приложений. Например, пример пользовательского интерфейса, который использует такой шаблон, проиллюстрирован в примерной реализации 1000 по фиг. 10. В этом примере, шаблон включает в себя плитки, размещаемые в сетки с идентификаторами для группы, которые в этом случае являются буквами и числами. Плитки также включают в себя элемент, который представляет группу, если заполнен, например, самолет для группы "a", но группа "e" не включает в себя элемент. Таким образом, пользователь может легко определять то, заполняется или нет группа, и осуществлять навигацию между группами на этом уровне масштабирования для семантического масштабирования. В одной или более реализациях, заголовок (например, характерные элементы) может указываться посредством разработчика приложения, которое использует функциональность семантического масштабирования. Таким образом, этот пример может предоставлять абстрактное представление структуры контента и возможности задач группового управления, например, выбор контента из нескольких групп, перекомпоновку групп и т.д.
[0097] Другой примерный шаблон показывается в примерном варианте 1100 осуществления по фиг. 11. В этом примере, также показаны буквы, которые могут быть использованы для того, чтобы осуществлять навигацию между группами контента и за счет этого могут предоставлять уровень в семантическом масштабировании. Буквы в этом примере образуют группы с большими буквами, выступающими в качестве маркеров (например, указательные знаки), так что пользователь может быстро находить интересующую букву и в силу этого интересующую группу. Таким образом, проиллюстрирован семантический визуальный элемент, который состоит из заголовков групп, которые могут быть версией с увеличенным масштабом, содержащейся в 100%-ном представлении.
Лингвистические помощники семантического масштабирования
[0098] Как описано выше, семантическое масштабирование может быть реализовано как признак первого касания, который позволяет пользователям получать глобальное представление контента с помощью жеста в виде щипка. Семантические масштабирования могут быть реализованы посредством модуля 114 семантического масштабирования для того, чтобы создавать абстрактное представление базового контента таким образом, что множество элементов могут помещаться в меньшую область при одновременной легкодоступности на разных уровнях детализации. В одной или более реализациях, семантическое масштабирование может использовать абстракцию для того, чтобы группировать элементы в категории, например, по дате, по первой букве и т.д.
[0099] В случае семантического масштабирования на основе первой буквы каждый элемент может подпадать под категорию, определенную по первой букве отображаемого имени, например, "Green Bay" проходит под заголовком группы "G". Чтобы выполнять эту группировку, модуль 114 семантического масштабирования может определять две следующих точки данных: (1) группы, которые должны быть использованы для того, чтобы представлять контент в масштабированном представлении (например, весь алфавит); и (2) первая буква каждого элемента в представлении.
[00100] В случае английского языка, формирование простого представления с помощью семантического масштабирования на основе первой буквы может быть реализовано следующим образом:
- существует 28 групп
-- 26 букв латинского алфавита
-- 1 группа для цифр
-- 1 группа для символов
Тем не менее, другие языки используют различные алфавиты и иногда объединяют буквы, что может затруднять идентификацию первой буквы данного слова. Следовательно, модуль 114 семантического масштабирования может использовать множество технологий, чтобы трактовать эти различные алфавиты.
[00101] Восточноазиатские языки, к примеру, китайский язык, японский язык и корейский язык могут быть проблематичными для группировки по первой букве. Во-первых, каждый из этих языков использует китайские идеографические (ханьские) символы, которые включают в себя тысячи отдельных символов. Грамотный носитель японского языка, например, знает, по меньшей мере, две тысячи отдельных символов, и это число может быть гораздо выше для носителя китайского языка. Это означает то, что с учетом списка элементов, имеется высокая вероятность того, что каждое слово может начинаться с различного символа, так что реализация с рассмотрением первого символа может создавать новую группу практически для каждой записи в списке. Кроме того, если суррогатные пары Unicode не принимаются во внимание, и используется исключительно первый WCHAR, могут быть случаи, в которых буква для группировки разрешается в незначащее квадратное поле.
[00102] В другом примере, корейский язык, хотя иногда использует ханьские символы, главным образом использует родной набор символов азбуки хангул. Хотя он является фонетическим алфавитом, каждый из одиннадцати тысяч плюс символы Unicode азбуки хангул может представлять весь слог из двух-пяти букв, который упоминается в качестве "джамо". Способы сортировки в восточноазиатских языках (кроме японского XJIS) могут использовать технологии для группировки ханьских символов/символов азбуки хангул в 19-214 групп (на основе фонетики, корня или числа черт), которые имеют интуитивный смысл пользователю восточноазиатского алфавита.
[00103] Помимо этого, восточноазиатские языки зачастую обеспечивают "полноширинные" латинские символы, которые являются квадратными, а не прямоугольными, с тем, чтобы выравниваться с квадратными китайскими/японскими/корейскими символами, например:
Half width (полуширина)
Ｆｕｌｌ ｗｉｄｔｈ(полная ширина)
[00104] Следовательно, если нормализация ширины не выполняется, после полуширинной группы "A" может идти сразу полноширинная группа "Ａ". Тем не менее, пользователи типично считают, что это одна буква, так что это выглядит как ошибка для этих пользователей. То же самое применяется к двум японским алфавитам на основе азбуки кана (к азбуке хирагана и азбуке катакана), которые сортируются совместно и должны быть нормализованы, чтобы не допускать показа некорректных групп.
[00105] Дополнительно, использование базовой реализации "выбор по первой букве" может давать неточные результаты для многих европейских языков. Например, венгерский алфавит включает в себя следующих 44 буквы:
A Á B C Cs D Dz Dzs E É F G Gy H I Í J K L Ly M N Ny O Ó Ö Ő P (Q) R S Sz T Ty U Ú Ü Ű V (W) (X) (Y) Z Zs
Лингвистически, каждая из этих букв является уникальным элементом сортировки. Следовательно, комбинирование букв "D", "Dz" и "Dzs" в одну группу может выглядеть некорректным и может быть неинтуитивным для типичного венгерского пользователя. В некоторых более крайних случаях существуют некоторые тибетские "одиночные буквы", которые включают в себя больше 8 WCHAR. Некоторые другие языки с "многосимвольными" буквами включают в себя: кхмерский язык, корсиканский язык, бретонский язык, арауканский мапуче, серболужицкий язык, язык маори, уйгурский язык, албанский язык, хорватский язык, сербский язык, боснийский язык, чешский язык, датский язык, гренландский язык, венгерский язык, словацкий язык, испанский язык (традиционный), валлийский язык, мальтийский язык, вьетнамский язык и т.д.
[00106] В другом примере, шведский алфавит включает в себя следующие буквы:
A B C D E F G H I J K L M N O P Q R S T U V X Y Z Å Ä Ö
Следует отметить, что "A" является явно отличной буквой от "Å" и "Ä", и что две последние идут после "Z" в алфавите. При этом для английского языка диакритические знаки, чтобы трактовать "Ä" в качестве "A", удаляются, поскольку две группы, в общем, являются нежелательными для английского языка. Тем не менее, если идентичная логика применяется к шведскому языку, либо дублированные группы "A" размещаются после "Z", либо язык некорректно сортируется. Аналогичные случаи могут встречаться в некоторых других языках, которые трактуют определенные символы со знаком ударения в качестве других букв, включающих в себя польский язык, венгерский язык, датский язык, норвежский язык и т.д.
[00107] Модуль 114 семантического масштабирования может представлять разнообразие API для использования в сортировке. Например, API на основе алфавита и на основе первой буквы могут быть представлены, так что разработчик может решать то, как модуль 114 семантического масштабирования трактует элементы.
[00108] Модуль 114 семантического масштабирования может быть реализован, чтобы формировать алфавитные таблицы, например, из файла unisort.txt в операционной системе, так что эти таблицы могут быть использованы для того, чтобы предоставлять алфавиты, а также услуги группировки. Эта функция, например, может быть использована для того, чтобы синтаксически анализировать файл unisort.txt и формировать лингвистически согласованные таблицы. Это может заключать в себе сверку достоверности вывода по умолчанию с эталонными данными (например, внешний источник) и создание ситуативных исключений, когда стандартное упорядочение не является таким, как ожидают пользователи.
[00109] Модуль 114 семантического масштабирования может включать в себя API на основе алфавита, который может быть использован для того, чтобы возвращать то, что считается алфавитом, на основе языкового стандарта/сортировки, например, заголовки, которые человек в данном языковом стандарте типично видит в словаре, телефонной книге и т.д. Если имеется несколько образов для данной буквы, образ, распознанный в качестве наиболее общего, может быть использован модулем 114 семантического масштабирования. Ниже приведено несколько примеров для характерных языков:
- пример (французский (ft), английский (en)): A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
- пример (испанский (sp)): A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z
- пример (венгерский (hn)): A Á B C Cs D Dz Dzs E É F G Gy H I Í J K L Ly M N Ny O Ó Ö Ő P (Q) R S Sz T Ty U Ú Ü Ű V (W) (X) (Y) Z Zs
- пример (he): א ב ג ד ה ו ז ח ט י כ ל מ נ ס ע פ צ ק ר ש ת
[00110] Для восточноазиатских языков модуль 114 семантического масштабирования может возвращать список групп, описанных выше (например, идентичная таблица может выполнять обе функции), хотя японский язык включает в себя группы на основе азбуки кана, а также следующее:
- пример (японский (jp)): A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
- あ い う え お か き く け こ さ し す せ そ た ち つ て と な に ぬ ね の は ひ ふ へ ほ ま み む め も や ゆ よ ら り る れ ろ わ を ん 漢字
В одной или более реализациях, модуль 114 семантического масштабирования может включать латинский алфавит в каждый алфавит, включающий в себя нелатинские, с тем чтобы предоставлять решение для имен файлов, которые часто используют наборы символов латинского алфавита.
[00111] Некоторые языки считают, что две буквы однозначно отличаются, но сортируют их совместно. В этом случае, модуль 114 семантического масштабирования может передавать пользователям, что эти две буквы совместно используют составную отображаемую букву, например, для русского языка "Е, Е". Для архаичных и редких букв, которые сортируются между буквами в современном применении, модуль семантического масштабирования может группировать эти буквы с предыдущей буквой.
[00112] Для символов, похожих на латинские буквы, модуль 114 семантического масштабирования может трактовать эти символы согласно буквам. Модуль 114 семантического масштабирования, например, может использовать семантику "группировать с предыдущим", например, для того чтобы группировать ™ под "T".
[00113] Модуль 114 семантического масштабирования может использовать функцию преобразования, чтобы формировать представление элементов. Например, модуль 114 семантического масштабирования может нормализовать символы по верхнему регистру, знакам ударения (например, если язык не трактует конкретную букву со знаком ударения в качестве другой буквы), ширине (например, преобразовывать полно- в полуширинный латинский символ) и типу азбуки кана (например, преобразовывать японскую азбуку катакана в азбуку хирагана).
[00114] Для языков, которые трактуют группы букв в качестве одной буквы (например, венгерская "dzs"), модуль 114 семантического масштабирования может возвращать их в качестве "группы на основе первой буквы" посредством API. Они могут быть обработаны через таблицы переопределения согласно языковому стандарту, например, чтобы проверять то, отсортирована или нет строка в "диапазоне" буквы.
[00115] Для китайского/японского языка модуль 114 семантического масштабирования может возвращать логические группирования китайских символов на основе сортировки. Например, сортировка по числу черт возвращает группу для каждого числа черт, сортировка по корню возвращает группы для семантических компонентов китайских символов, фонетические сортировки возвращают по первой букве фонетического прочтения и т.д. С другой стороны, также могут быть использованы таблицы переопределения согласно языковому стандарту. При других сортировках (например, не-EA+японские XJIS, которые не имеют значимых упорядочений китайских символов), одна '漢' (ханьская) группа может использоваться для каждого из китайских символов. Для корейского языка модуль 114 семантического масштабирования может возвращать группы для начальной буквы джамо в слоге азбуки хангул. Таким образом, модуль 114 семантического масштабирования может формировать буквы, которые тесно совмещены с "алфавитной функцией" для строк на родном языке языкового стандарта.
Группировка по первой букве
[00116] Приложения могут быть сконфигурированы с возможностью поддерживать использование модуля 114 семантического масштабирования. Например, приложение 106 может быть установлено в качестве части комплекта, который включает в себя манифест, который включает в себя характеристики, указываемые посредством разработчика приложения 106. Одна такая функциональность, которая может указываться, включает в себя свойство фонетического имени. Свойство фонетического имени может быть использовано для того, чтобы указывать фонетический язык, который должен быть использован для того, чтобы формировать группы, и идентификационные данные групп для списка элементов. Таким образом, если свойство фонетического имени существует для приложения, то его первая буква должна использоваться для сортировки и группировки. Если нет, затем модуль 114 семантического масштабирования может возвращаться к первой букве отображаемого имени, например, для сторонних унаследованных приложений.
[00117] Для непроверенных данных, таких как имена файлов и сторонние унаследованные приложения, общее решение по извлечению первой буквы локализованной строки может применяться к большинству не восточноазиатских языков. Решение заключает в себе нормализацию первого видимого глифа и отсечение диакритических знаков (вспомогательных глифов, добавляемых к буквам), что описывается следующим образом.
[00118] Для английского и большинства других языков, первый видимый глиф может быть нормализован следующим образом:
- верхний регистр,
- диакритический знак (если ключ сортировки считает его диакритическим знаком в языковом стандарте, а не уникальной буквой),
- ширина (полуширина) и
- тип азбуки кана (азбука хирагана).
[00119] Множество различных технологий может использоваться для того, чтобы отсекать диакритические знаки. Например, первое такое решение может заключать в себе следующее:
- формирование ключа сортировки;
- выявление того, должен диакритический знак трактоваться в качестве диакритического знака (например, 'Å' в английском языке) или буквы (например, 'Å' в шведском языке, которая сортируется после 'Z'); и
- преобразование в FormC, чтобы комбинировать кодовые точки,
- FormD, чтобы разбивать их.
[00120] Второе такое решение может заключать в себе следующее:
- пропуск пробела и неглифов,
- использование SHCharNextW в глифе до следующей границы символа (см. приложение),
- формирование ключа сортировки для первого глифа,
- анализ LCMapString, чтобы определять то, является он или нет диакритическим знаком (наблюдение весовых коэффициентов сортировки),
- нормализация к FormD (NormalizeString),
- выполнение второго прохода с использованием GetStringType, чтобы удалять все диакритические знаки: C3_NonSpace | C3_Diacritic, и
- использование LCMapString, чтобы удалять регистр, ширину и тип азбуки кана.
[00121] Дополнительные решения также могут быть использованы посредством модуля 114 семантического масштабирования, например, для группировки по первой букве непроверенных данных на китайском и корейском языке. Например, таблица "переопределения" буквы для группировки может применяться для определенных языковых стандартов и/или диапазонов ключей сортировки. Эти языковые стандарты могут включать в себя китайский язык (например, упрощенный и традиционный), а также корейский язык. Они также могут включать в себя такие языки, как венгерский язык, которые имеют специальную сортировку по двум буквам, тем не менее, эти языки могут использовать эти исключения в таблице переопределения для языка.
[00122] Например, таблицы переопределения могут быть использованы для того, чтобы предоставлять группировки для следующего:
- первая пиньини (упрощенный китайский язык);
- первая буква бопомофо (традиционный китайский язык - Тайвань);
- названия корней/числа черт (традиционный китайский язык - Гонконг);
- первая буква джамо азбуки хангул (корейский язык); и
- такие языки, как венгерский язык, которые имеют группировки по двум буквам (например, трактуют 'ch' в качестве одной буквы).
[00123] Для китайского языка модуль 114 семантического масштабирования может группировать по первой букве пиньини для упрощенного китайского, к примеру, чтобы преобразовывать в пиньинь и использовать табличный поиск по ключам сортировки, чтобы идентифицировать первый символ пиньини. Пиньинь является системой для фонетического рендеринга китайских идеограмм в латинском алфавите. Для традиционного китайского языка (например, в Тайване), модуль 114 семантического масштабирования может группировать по первой букве бопомофо для группы посредством корня/числа черт посредством преобразования в бопомофо и использовать табличный поиск по ключам сортировки для того, чтобы идентифицировать первый символ бопомофо. Бопомофо предоставляет общее имя (например, как ABC) для традиционной китайской фонетической слоговой азбуки. Корень является классификацией для китайских символов, например, которая может использоваться для заголовков разделов в китайском словаре. Для традиционного китайского языка (например, в Гонконге), табличный поиск по ключам сортировки может быть использован для того, чтобы идентифицировать символ "черта".
[00124] Для корейского языка модуль 114 семантического масштабирования может сортировать корейские имена файлов фонетически в азбуке хангул, поскольку один символ представляется с использованием двух-пяти букв. Например, модуль 114 семантического масштабирования может сокращать до первой буквы джамо (например, 19 начальных согласных равен девятнадцати группам) посредством использования табличного поиска по ключам сортировки, чтобы идентифицировать группы букв джамо. Джамо означает набор согласных и гласных, используемых в корейской азбуке хангул, которая является фонетическим алфавитом, используемым для того, чтобы писать на корейском языке.
[00125] В случае японского языка сортировка по именам файлов может быть узким местом в традиционных технологиях. Аналогично китайским и корейским, японские файлы предназначены для сортировки посредством произношения. Тем не менее, вхождение символов азбуки кандзи в японские имена файлов может затруднять сортировку без знания надлежащего произношения. Дополнительно, азбука кандзи может иметь несколько произношений. Чтобы разрешать эту проблему, модуль 114 семантического масштабирования может использовать технологию, чтобы выполнять обратное преобразование каждого имени файла через IME, чтобы получать фонетическое имя, которое затем может быть использовано для того, чтобы сортировать и группировать файлы.
[00126] Для японского языка файлы могут быть размещены в три группы и отсортированы посредством модуля семантического масштабирования:
- латинский язык - группировка в корректном порядке,
- азбука кана - группировка в корректном порядке и
- азбука кандзи - группировка в порядке XJIS (фактически случайном с точки зрения пользователя).
Таким образом, модуль 114 семантического масштабирования может использовать эти технологии, чтобы предоставлять интуитивные идентификаторы и группы для элементов контента.
Целенаправленные подсказки
[00127] Чтобы предоставлять целенаправленные подсказки пользователям, модуль семантического масштабирования может использовать множество различных анимаций. Например, когда пользователь уже находится в представлении с уменьшенным масштабом и пытается еще больше уменьшать масштаб, анимация в виде резкого уменьшения размера может выводиться посредством модуля 114 семантического масштабирования, при этом резкое изменение размера является уменьшением масштаба представления. В другом примере, когда пользователь уже находится в представлении с увеличенным масштабом и пытается дополнительно увеличивать масштаб, может выводиться другая анимация в виде резкого увеличения размера, при этом резкое изменение размера является увеличением масштаба представления.
[00128] Дополнительно, модуль 114 семантического масштабирования может использовать одну или более анимаций, чтобы указывать, что "конец" контента достигается, к примеру, анимацию в виде резкого изменения размера. В одной или более реализаций, эта анимация не ограничивается "концом" контента, а вместо этого может указываться в различных навигационных точках через отображение контента. Таким образом, модуль 114 семантического масштабирования может представлять общую конструкцию для приложений 106, чтобы обеспечивать доступность этой функциональности, при этом приложения 106 "знают" то, как реализуется функциональность.
Интерфейс программирования для семантически масштабируемых элементов управления
[00129] Семантическое масштабирование может обеспечивать эффективную навигацию по длинным спискам. Тем не менее, по своей природе, семантическое масштабирование заключает в себе негеометрическое преобразование между представлением "с увеличенным масштабом" и его эквивалентом с "уменьшенным масштабом" (иначе называемым "семантическим"). Соответственно, "общая" реализация может не подходить оптимально для каждого случая, поскольку знания проблемной области могут привлекаться для того, чтобы определять то, как элементы в одном представлении преобразуются в элементы другого и как выравнивать визуальные образы двух соответствующих элементов, чтобы передавать их взаимосвязь пользователю во время масштабирования.
[00130] Соответственно, в этом разделе описывается интерфейс, который включает в себя множество различных методов, которые могут задаваться посредством элемента управления, чтобы обеспечивать использование в качестве дочернего представления элемента управления семантическим масштабированием посредством модуля 114 семантического масштабирования. Эти способы предоставляют возможность модулю 114 семантического масштабирования определять ось или оси, вдоль которых разрешается панорамировать элемент управления, уведомлять элемент управления, когда выполняется масштабирование, и обеспечивать возможность надлежащего выравнивания представлений при переключении с одного уровня масштабирования на другой.
[00131] Этот интерфейс может быть сконфигурирован с возможностью использовать ограничительные прямоугольники элементов в качестве общего протокола для описания позиций элементов, например, модуль 114 семантического масштабирования может преобразовывать эти прямоугольники между системами координат. Аналогично, понятие элемента может быть абстрактным и интерпретироваться элементами управления. Приложение также может преобразовывать образы элементов, передаваемых от одного элемента управления другому, обеспечивая возможность совместного использования более широкого диапазона элементов управления в качестве представлений "с увеличенным масштабом" и "с уменьшенным масштабом".
[00132] В одной или более реализациях, элементы управления реализуют интерфейс ZoomableView как семантически масштабируемый. Эти элементы управления могут быть реализованы на языке с динамическим контролем типов (например, на языке с динамическим контролем типов) в форме одного общедоступного свойства, называемого zoomableView, без формального принципа интерфейса. Может оцениваться свойство для объекта, которое имеет несколько присоединенных методов. Именно эти методы обычно можно рассматривать в качестве "интерфейсных методов", и на языке со статическим контролем типов, к примеру, C++ или C#, эти методы являются непосредственными элементами интерфейса IZoomableView, который не реализует общедоступное свойство zoomableView.
[00133] В нижеприведенном пояснении "исходный" элемент управления представляет собой элемент управления, который является в данный момент видимым, когда масштабирование инициируется, а "целевой" элемент управления является другим элементом управления (масштабирование в конечном счете может приводить к видимости исходного элемента управления, если пользователь отменяет масштабирование). Предлагаются следующие методы использования записи в виде псевдокода в формате C#.
Axis getPanAxis()
[00134] Этот метод может вызываться для обоих элементов управления, когда инициализируется семантическое масштабирование, и может вызываться каждый раз, когда изменяется ось элемента управления. Этот метод возвращает "горизонтально", "вертикально", "оба" или "нет", что может быть сконфигурировано как строки на языке с динамическим контролем типов, члены перечисляемого типа на другом языке и т.д.
[00135] Модуль 114 семантического масштабирования может использовать эту информацию для множества целей. Например, если оба элемента управления не могут панорамироваться вдоль данной оси, модуль 114 семантического масштабирования может "заблокировать" эту ось посредством ограничения центра преобразования масштабирования так, что он центрируется вдоль этой оси. Если два элемента управления ограничены горизонтальным панорамированием, например, координата Y центра масштаба может задаваться в середине между верхом и низом окна просмотра. В другом примере, модуль 114 семантического масштабирования может обеспечивать возможность ограниченного панорамирования в ходе манипуляции для масштабирования, но ограничивать его осями, которые поддерживаются посредством обоих элементов управления. Это может быть использовано для того, чтобы ограничивать объем контента, который должен быть предварительно подготовлен посредством рендеринга посредством каждого дочернего элемента управления. Следовательно, этот метод может называться configureForZoom и дополнительно описывается ниже.
void configureForZoom(bool isZoomedOut, bool isCurrentView, function triggerZoom(), Number prefetchedPages)
[00136] Как указано выше, этот метод может вызываться для обоих элементов управления, когда инициализируется семантическое масштабирование, и может вызываться каждый раз, когда изменяется ось элемента управления. Это предоставляет для дочернего элемента управления информацию, которая может быть использована при реализации режима масштабирования. Ниже приведены некоторые признаки этого метода:
- isZoomedOut может быть использован для того, чтобы сообщать дочернему элементу управления, каким из двух представлений оно является;
- isCurrentView может быть использован для того, чтобы сообщать дочернему элементу управления то, является оно или нет первоначально видимым представлением;
- triggerZoom является функцией внешнего вызова, которую дочерний элемент управления может вызывать для того, чтобы переключаться на другое представление; когда оно не является текущим видимым представлением, вызов этой функции не имеет никакого эффекта; и
- prefetchedPages сообщает элементу управления, сколько внеэкранного контента ему требуется для представления во время масштабирования.
[00137] Касательно последнего параметра, элемент управления "с увеличенным масштабом" может явно сжиматься во время перехода с уменьшением масштаба, раскрывая больше своего контента, чем является видимым в ходе обычного взаимодействия. Даже представление "с уменьшенным масштабом" может раскрывать больше контента, чем обычно, когда пользователь вызывает анимацию в виде резкого изменения размера посредством попытки еще больше уменьшать масштаб из представления "с уменьшенным масштабом". Модуль 114 семантического масштабирования может вычислять различные объемы контента, которые должны быть подготовлены посредством каждого элемента управления, чтобы способствовать эффективному использованию ресурсов вычислительного устройства 102.
void setCurrentItem(Number x, Number y)
[00138] Этот метод может вызываться для исходного элемента управления в начале масштабирования. Пользователи могут инструктировать модулю 114 семантического масштабирования переходить между представлениями с использованием различных устройств ввода, включающих в себя клавиатуру, мышь и касание, как описано выше. В случае двух последних из означенного, экранные координаты курсора мыши или точек касания определяют то, какой элемент должен быть масштабирован, например, из местоположения на устройстве 108 отображения. Поскольку операция с помощью клавиатуры может основываться на уже существующем "текущем элементе", механизмы ввода могут унифицироваться посредством создания позиционно-зависимых элементов в первом наборе текущих элементов и затем запрашивания информации относительно "текущего элемента", будь он уже существующим или просто задан ранее.
void beginZoom()
[00139] Этот метод может вызываться для обоих элементов управления, когда визуальный переход масштабирования должен начинаться. Он уведомляет элемент управления в отношении того, что переход масштабирования должен начинаться. Элемент управления, реализованный посредством модуля 114 семантического масштабирования, может быть сконфигурирован с возможностью скрывать части своего UI во время масштабирования (например, линейки прокрутки) и обеспечивать то, что достаточно контента подготавливается посредством рендеринга, чтобы заполнять окно просмотра, даже когда элемент управления масштабируется. Как описано выше, параметр prefetchedPages configureForZoom может быть использован для того, чтобы сообщать элементу управления, сколько требуется.
Promise<{item: AnyType, position: Rectangle}>getCurrentItem()
[00140] Этот метод может вызываться для исходного элемента управления сразу после beginZoom. В ответ, два фрагмента информации могут возвращаться относительно текущего элемента. Они включают в себя его абстрактное описание (например, на языке с динамическим контролем типов, он может быть переменной любого типа) и его ограничительный прямоугольник, в координатах окна просмотра. На языке со статическим контролем типов, к примеру, C++или C#, могут возвращаться структура (struct) или класс. На языке с динамическим контролем типов объект возвращается со свойствами, называемыми "item" и "position". Следует отметить, что фактически возвращается именно "Promise" для этих двух фрагментов информации. Это соглашение для языка с динамическим контролем типов, хотя предусмотрены аналогичные соглашения на других языках.
Promise<{x: Number, y: Number}>positionItem(AnyType item, Rectangle position)
[00141] Этот метод может вызываться для целевого элемента управления, как только завершен вызов getCurrentItem для исходного элемента управления, и как только завершен возвращенный Promise. Параметры элементов и позиций представляют собой параметры, которые возвращаются из вызова getCurrentItem, хотя позиционный прямоугольник преобразуется в координатное пространство целевых элементов управления. Элементы управления подготавливаются посредством рендеринга в различных масштабах. Элемент, возможно, преобразован посредством функции преобразования, предоставленной посредством приложения, но по умолчанию он является элементом, возвращаемым из getCurrentItem.
[00142] Именно целевой элемент управления должен изменять свое представление для того, чтобы выравнивать "целевой элемент", соответствующий данному параметру элемента, с данным позиционным прямоугольником. Элемент управления может выравниваться множеством способов, например, выравнивание по левому краю двух элементов, выравнивание их по центру и т.д. Элемент управления также может изменять свое смещение прокрутки, чтобы выравнивать элементы. В некоторых случаях, элемент управления может не иметь возможность точно выравнивать элементы, например, в случае, в котором прокрутки до конца представления может не быть достаточно для того, чтобы размещать целевой элемент надлежащим образом.
[00143] Возвращаемые координаты X, Y могут быть сконфигурированы как вектор, указывающий, насколько сильно, не достигая цели выравнивания, попадает элемент управления, например, может отправляться результат 0, 0, если выравнивание завершено успешно. Если этот вектор является ненулевым, модуль 114 семантического масштабирования может переносить весь целевой элемент управления на эту величину, чтобы обеспечивать выравнивание и затем анимировать его обратно на место в подходящее время, как описано в связи с вышеприведенным разделом "Корректирующая анимация". Целевой элемент управления также может задавать свой "текущий элемент" в качестве целевого элемента, например, который он возвращает из вызова getCurrentItem.
void endZoom(bool isCurrentView, bool setFocus)
[00144] Этот метод может вызываться для обоих элементов управления в конце перехода масштабирования. Модуль 114 семантического масштабирования может выполнять операцию, которая является противоположной относительно того, что выполнено в beginZoom, например, отображать обычный UI снова, и может отбрасывать подготовленный посредством рендеринга контент, который теперь является внеэкранным, чтобы экономить ресурсы запоминающего устройства. Метод isCurrentView может быть использован для того, чтобы сообщать элементу управления то, является он или нет теперь видимым представлением, поскольку любой результат является возможным после перехода масштабирования. Метод "setFocus сообщает элементу управления, должен или нет задаваться фокус на текущем элементе.
void handlePointer(Number pointerID)
[00145] Этот метод handlePointer может вызываться посредством модуля 114 семантического масштабирования по завершении прослушивания событий указателя и для оставления указателя на базовый элемент управления для обработки. Параметр, передаваемый в элемент управления, - это pointerID указателя, который по-прежнему снижается. Один идентификатор передается через handlePointer.
[00146] В одной или более реализациях, элемент управления определяет то, "что делать", с помощью этого указателя. В случае представления в виде списка, модуль 114 семантического масштабирования может отслеживать то, где указатель контактирует при "касании и удерживании". Когда "касание и удерживание" выполнено для элемента, модуль 114 семантического масштабирования не выполняет действие, поскольку MsSetPointerCapture уже вызван для элемента после касания в ответ на событие MSPointerDown. Если элемент не нажат, модуль 114 семантического масштабирования может вызывать MSSetPointerCapture в области просмотра представления в виде списка, чтобы запускать независимую манипуляцию.
[00147] Принципы, которым может следовать модуль семантического масштабирования для реализации этого метода, могут включать в себя следующее:
- вызов msSetPointerCapture в области просмотра, чтобы обеспечивать независимую манипуляцию; и
- вызов msSetPointerCapture для элемента, который не имеет равную переполнению прокрутку, заданную для него, чтобы выполнять обработку для событий сенсорного ввода без инициирования независимой манипуляции.
Примерные процедуры
[00148] Далее описываются технологии семантического масштабирования, которые могут быть реализованы с помощью вышеописанных систем и устройств. Аспекты каждой из процедур могут быть реализованы в аппаратном обеспечении, микропрограммном обеспечении или программном обеспечении либо в комбинации вышеозначенного. Процедуры проиллюстрированы как набор этапов, которые задают операции, выполняемые одним или более устройств, и они не обязательно ограничены показанными последовательностями для выполнения операций посредством соответствующих этапов. В частях нижеприведенного пояснения приводится ссылка на окружение 100 по фиг. 1 и реализации 200-900 фиг. 2-9, соответственно.
[00149] Фиг. 12 иллюстрирует процедуру 1200 в примерной реализации, в которой операционная система представляет функциональность семантического масштабирования для приложения. Функциональность семантического масштабирования представляется посредством операционной системы, по меньшей мере, одному приложению вычислительного устройства (этап 1202). Например, модуль 114 семантического масштабирования по фиг. 1 может быть реализован как часть операционной системы вычислительного устройства 102, чтобы представлять эту функциональность для приложений 106.
[00150] Контент, который был указан приложением, преобразуется посредством функциональности семантического масштабирования для того, чтобы поддерживать семантическую перестановку, соответствующую, по меньшей мере, одному пороговому значению масштабирующего ввода, чтобы отображать различные образы контента в пользовательском интерфейсе (этап 1204). Как описано выше, семантическая перестановка может быть инициирована множеством способов, таких как жесты, использование мыши, сочетание клавиш и т.д. Семантическая перестановка может быть использована для того, чтобы изменять то, как образы контента в пользовательском интерфейсе описывают контент. Это изменение и описание могут выполняться множеством способов, как описано выше.
[00151] Фиг. 13 иллюстрирует процедуру 1300 в примерной реализации, в которой пороговое значение используется для того, чтобы инициировать семантическую перестановку. Ввод обнаруживается, чтобы масштабировать первое представление из образов контента, отображаемых в пользовательском интерфейсе (этап 1302). Как описано выше, ввод может принимать множество форм, таких как жест (например, жест надавливания или сжатия), ввод мыши (например, выбор клавиши и перемещение колесика прокрутки), ввод с помощью клавиатуры и т.д.
[00152] В ответ на определение того, что ввод не достигает порогового значения семантического масштабирования, изменяется размер, с которым образы контента отображаются в первом представлении (этап 1304). Ввод, например, может быть использован для того, чтобы изменять уровень масштабирования, как показано между второй и третьей стадиями 204, 206 по фиг. 2.
[00153] В ответ на определение того, что ввод достигает порогового значения семантического масштабирования, выполняется семантическая перестановка для того, чтобы заменять первое представление из образов контента на второе представление, которое описывает контент по-другому в пользовательском интерфейсе (этап 1306). Продолжая предыдущий пример, ввод может продолжать инструктировать семантической перестановке, которая может быть использована для того, чтобы представлять контент множеством способов. Таким образом, один ввод может быть использован для того, чтобы как масштабировать, так и переставлять представление контента, множество примеров чего описано выше.
[00154] Фиг. 14 иллюстрирует процедуру 1400 в примерной реализации, в которой жесты на основе манипуляций используются для того, чтобы поддерживать семантическое масштабирование. Вводы распознаются как описывающие перемещение (этап 1402). Устройство 108 отображения вычислительного устройства 102, например, может включать в себя функциональность сенсорного экрана для того, чтобы обнаруживать близость пальцев одной или более рук 110 пользователя, к примеру, включать в себя емкостный сенсорный экран, использовать технологии формирования изображений (IR-датчики, камеры на основе глубин) и т.д. Эта функциональность может быть использована для того, чтобы обнаруживать перемещение пальцев или других элементов, к примеру, перемещение в направлении к или друг от друга.
[00155] Жест масштабирования идентифицируется из распознанных вводов, чтобы инструктировать выполнение операции для того, чтобы масштабировать отображение пользовательского интерфейса согласно распознанным вводам (этап 1404). Как описано выше в связи с вышеприведенным разделом "Манипуляция на основе жестов", модуль 114 семантического масштабирования может быть сконфигурирован с возможностью использовать технологии на основе манипуляций, заключающие в себе семантическое масштабирование. В этом примере, эта манипуляция сконфигурирована с возможностью следовать вводам (например, перемещению пальцев руки 110 пользователя), например, в "реальное время" по мере того, как вводы принимаются. Это может быть выполнено для того, чтобы увеличивать масштаб или уменьшать масштаб отображения пользовательского интерфейса, например, чтобы просматривать образы контента в файловой системе вычислительного устройства 102.
[00156] Жест в виде семантической перестановки идентифицируется из вводов, чтобы инструктировать операцию по замене первого представления из образов контента в пользовательском интерфейсе на второе представление, которое описывает контент по-другому в пользовательском интерфейсе (этап 1406). Как описано в связи с фиг. 2-6, пороговые значения могут быть использованы для того, чтобы задавать жест семантической перестановки в этом случае. Продолжая предыдущий пример, вводы, используемые для масштабирования пользовательского интерфейса, могут продолжаться. После того, как пересекается пороговое значение, может быть идентифицирован жест семантической перестановки для обеспечения того, чтобы представление, используемое для масштабирования, было заменено на другое представление. Таким образом, жесты в этом примере основаны на манипуляциях. Также могут использоваться технологии анимации, дополнительное пояснение которых приведено в связи со следующим чертежом.
[00157] Фиг. 15 иллюстрирует процедуру 1500 в примерной реализации, в которой жесты и анимации используются для того, чтобы поддерживать семантическое масштабирование. Жест масштабирования идентифицируется из вводов, которые распознаются как описывающие перемещение (этап 1502). Модуль 114 семантического масштабирования, например, может обнаруживать то, что определение для жеста масштабирования соответствует, например, перемещению пальца пользователя на заданное расстояние.
[00158] Анимация масштабирования отображается в ответ на идентификацию жеста масштабирования, причем анимация масштабирования сконфигурирована с возможностью масштабировать отображение пользовательского интерфейса (этап 1504). Продолжая предыдущий пример, может быть идентифицирован жест сжатия или растяжения (т.е. надавливания). Модуль 114 семантического масштабирования затем может выводить анимацию, которая соответствует жесту. Например, модуль 114 семантического масштабирования может задавать анимации для различных точек привязки и выводить анимации как соответствующие этим точкам.
[00159] Жест семантической перестановки идентифицируется из вводов, которые распознаются как описывающие перемещение (этап 1506). Снова продолжая предыдущий пример, пальцы руки 110 пользователя могут продолжать перемещение, так что идентифицируется другой жест, к примеру, жест семантической перестановки для жестов сжатия или растяжения, как указано выше. Анимация в виде семантической перестановки отображается в ответ на идентификацию жеста в виде семантической перестановки, причем анимация семантической перестановки сконфигурирована с возможностью заменять первое представление из представлений контента в пользовательском интерфейсе на второе представление контента в пользовательском интерфейсе (этап 1308). Эта семантическая перестановка может быть выполнена множеством способов, как описано выше. Дополнительно, модуль 114 семантического масштабирования может включать функциональность привязки, чтобы трактовать, когда жест прекращается, например, пальцы руки 110 пользователя убираются с устройства 108 отображения. Также рассматривается множество других примеров без отступления от сущности и объема.
[00160] Фиг. 16 иллюстрирует процедуру 1600 в примерной реализации, в которой вектор вычисляется для переноса списка прокручиваемых элементов, и корректирующая анимация используется для удаления переноса списка. Первое представление, включающее в себя первый список прокручиваемых элементов, отображается в пользовательском интерфейсе на устройстве отображения (этап 1602). Первое представление, например, может включать в себя список образов контента, включающий в себя имена пользователей, файлов в файловой системе вычислительного устройства 102 и т.д.
[00161] Распознается ввод для того, чтобы заменять первое представление на второе представление, которое включает в себя второй список прокручиваемых элементов, при этом, по меньшей мере, один из элементов во втором списке представляет группу элементов в первом списке (этап 1604). Ввод, например, может представлять собой жест (например, сжатие или растяжение), ввод с помощью клавиатуры, ввод, предоставленный посредством устройства управления курсором и т.д.
[00162] Вектор вычисляется, чтобы переносить второй список прокручиваемых элементов таким образом, что, по меньшей мере, один из элементов во втором списке выравнивается с группой элементов в первом списке, отображаемом посредством устройства отображения (этап 1606). Отображаемое первое представление заменяется на второе представление на устройстве отображения с использованием вычисленного вектора, так что, по меньшей мере, один из элементов во втором списке выравнивается с местоположением на устройстве отображения, на котором отображается группа элементов в первом списке (этап 1608). Как описано в связи с фиг. 7, например, список, показанный на второй стадии 704, если не перенесен, инструктирует отображение идентификатора соответствующей группы (например, для имен, начинающихся с "A") на левом краю устройства 108 отображения и в силу этого не "выравнивается". Тем не менее, вектор, может быть вычислен таким образом, что элементы в первом и втором представлениях выравниваются, например, ввод, принимаемый в позиции на устройстве 108 отображения в связи с именем "Arthur", и в позиции, в которой образ группы элементов, связанных с "A", отображается на второй стадии 704.
[00163] Второе представление затем отображается без использования вычисленного вектора в ответ на определение того, что предоставление ввода прекращено (этап 1610). Корректирующая анимация, например, может быть сконфигурирована с возможностью исключать влияние вектора и переносить список, который должен отображаться в ином случае, пример чего показывается на третьей стадии 706 по фиг. 7. Также рассматривается множество других примеров без отступления от сущности и объема.
[00164] Фиг. 17 иллюстрирует процедуру 1700 в примерной реализации, в которой анимация в виде плавного перехода используется в качестве части семантической перестановки. Вводы распознаются как описывающие перемещение (этап 1702). Как указано выше, множество вводов может быть распознано, к примеру, вводы с помощью клавиатуры, устройства управления курсором (например, мыши) и жестов через функциональность сенсорного экрана устройства 108 отображения.
[00165] Жест семантической перестановки идентифицируется из вводов, чтобы инструктировать операцию по замене первого представления из образов контента в пользовательском интерфейсе на второе представление, которое описывает контент по-другому в пользовательском интерфейсе (этап 1704). Семантическая перестановка может заключать в себе изменение между множеством различных представлений, к примеру, заключающих в себе различную компоновку, метаданные, образы группировок и т.д.
[00166] Анимация в виде плавного перехода отображается в качестве части операции для того, чтобы переходить между первыми и вторыми представлениями, которая приводит к тому, что различные числа первых и вторых представлений должны отображаться вместе, причем числа, по меньшей мере, частично основаны на перемещении, описанном посредством вводов (этап 1706). Например, эта технология может использовать непрозрачность, так что оба представления могут отображаться одновременно друг сквозь друга. В другом примере, плавный переход может заключать в себе замещение одного представления другим, например, перемещение одного вместо другого.
[00167] Дополнительно, показатели могут быть основаны на перемещении. Например, непрозрачность второго представления может увеличиваться по мере того, как увеличивается величина перемещения, при этом непрозрачность первого представления может снижаться по мере того, как увеличивается величина перемещения. Естественно, этот пример также может выполняться в противоположном порядке, так что пользователь может управлять навигацией между представлениями. Дополнительно, это отображение может реагировать в реальном времени.
[00168] В ответ на определение того, что предоставление вводов прекращено, отображаются первые или вторые представления (этап 1708). Пользователь, например, может прекращать контакт с устройством 108 отображения. Модуль 114 семантического масштабирования затем может выбирать то, какое из представлений должно отображаться, на основе величины перемещения, к примеру, посредством использования порогового значения. Также рассматривается множество других примеров, к примеру, для вводов с помощью клавиатуры и устройства управления курсором.
[00169] Фиг. 18 иллюстрирует процедуру 1800 в примерной реализации, заключающей в себе интерфейс программирования для семантического масштабирования. Интерфейс программирования представляется как имеющий один или более методов, которые могут задаваться таким образом, чтобы обеспечивать использование элемента управления в качестве одного из множества представлений в семантическом масштабировании (этап 1802). Представление сконфигурировано с возможностью использования в семантическом масштабировании, которое включает в себя операцию семантической перестановки, чтобы переключаться между множеством представлений в ответ на пользовательский ввод (этап 1804).
[00170] Как описано выше, интерфейс может включать в себя множество различных методов. Для языка с динамическим контролем типов интерфейс может быть реализован как одно свойство, которое характеризуется для объекта, который имеет методы для него. Также рассматриваются другие реализации, как описано выше.
[00171] Множество различных методов может быть реализовано, как описано выше. Первый такой пример заключает в себе доступ панорамирования. Например, модуль 114 семантического масштабирования может "принимать на себя" прокручивание для дочернего элемента управления. Таким образом, модуль 114 семантического масштабирования может определять то, какие степени свободы должен использовать дочерний элемент управления для того, чтобы выполнять такое прокручивание, которое дочерний элемент управления может возвращать в качестве ответов, к примеру, "горизонтально", "вертикально", "нет" или "оба". Это может быть использовано посредством модуля 114 семантического масштабирования для того, чтобы определять то, разрешают или нет оба элемента управления (и их соответствующие представления) панорамирование в идентичном направлении. Если да, то панорамирование может поддерживаться посредством модуля 114 семантического масштабирования. Если нет, панорамирование не поддерживается, и модуль 114 семантического масштабирования не осуществляет упреждающую выборку контента, который является "внеэкранным".
[00172] Другим таким методом является configure for zoom (конфигурирование для масштабирования), который может быть использован для того, чтобы завершать инициализацию после того как определено, панорамируются или нет два элемента управления в идентичном направлении. Этот метод может быть использован для того, чтобы сообщать в каждый из элементов управления то, является он представлением "с увеличенным масштабом" или "с уменьшенным масштабом". Если он является текущим представлением, он является фрагментом состояния, который может поддерживаться во времени.
[00173] Дополнительным таким методом является pre-fetch (упреждающая выборка). Этот метод может быть использован в случае, в котором два элемента управления сконфигурированы с возможностью панорамироваться в идентичном направлении, так что модуль 114 семантического масштабирования может выполнять панорамирование для них. Величины для упреждающей выборки могут иметь такую конфигурацию, в которой контент доступен (подготовлен посредством рендеринга) для использования в качестве панорамирований или масштабирований пользователя, чтобы не допускать усеченных просмотра элементов управления и других неполных элементов.
[00174] Следующие примеры заключают в себе методы, которые могут считаться "установочными" методами, которые включают в себя pan access, configure for zoom и set current item (задание текущего элемента). Как описано выше, pan access (доступ для панорамирования) может вызываться каждый раз, когда изменяется ось элемента управления, и может возвращать "горизонтально", "вертикально", "оба" или "нет". Configure for zoom может быть использован для того, чтобы предоставлять в дочерний элемент управления информацию, которая может быть использована при реализации режима масштабирования. Set current item, как подразумевает имя, может быть использован для того, чтобы указывать, какой из элементов является "текущим", как описано выше.
[00175] Другим методом, который может быть представлен в интерфейсе программирования, является get current item (получение текущего элемента). Этот метод может быть сконфигурирован с возможностью возвращать непрозрачный образ элемента и ограничительный прямоугольник этого элемента.
[00176] Еще одним другим методом, который может поддерживаться посредством интерфейса, является begin zoom (начать масштабирование). В ответ на вызов этого метода элемент управления может скрывать часть своего UI, которая "выглядит неоптимально" во время операции масштабирования, например, полосу прокрутки. Другой ответ может заключать в себе расширение рендеринга, например, чтобы обеспечивать то, что больший прямоугольник, который должен отображаться при уменьшении масштаба, продолжает заполнять окно просмотра с помощью семантического масштабирования.
[00177] Также может поддерживаться end zoom (закончить масштабирование), который заключает в себе противоположное от того, что происходит при begin zoom, к примеру, для того чтобы выполнять кадрирование и возвращать UI-элементы, такие как полосы прокрутки, которые удалены в begin zoom. Это также может поддерживать булеву переменную, называемую Is Current view, которая может быть использована для того, чтобы сообщать элементу управления, является или нет это представление в данный момент видимым.
[00178] Элемент позиции представляет собой метод, который может заключать в себе два параметра. Одним из них является непрозрачный образ элемента, а другим - ограничительный прямоугольник. Они оба связаны с непрозрачным образом элемента и ограничительным прямоугольником, которые возвращаются из другого метода, называемого get current item (получить текущий элемент). Тем не менее, они могут быть сконфигурированы с возможностью включать в себя преобразования, которые происходят с обоими.
[00179] Например, допустим, что отображается представление элемента управления с увеличенным масштабом, и текущий элемент является первым элементом в списке прокручиваемых элементов в списке. Чтобы выполнять переход с уменьшением масштаба, образ соответствует запросу первого элемента из элемента управления, соответствующего представлению с увеличенным масштабом, ответом на который является ограничительный прямоугольник для этого элемента. Прямоугольник затем может проецироваться в систему координат другого элемента управления. Для этого может выполняться определение в отношении того, какой ограничительный прямоугольник в другом представлении должен выравниваться с этим ограничительным прямоугольником. Элемент управления затем может определять то, как выравнивать прямоугольники, например, влево, по центру, вправо и т.д. Также может поддерживаться множество других методов, как описано выше.
Примерная система и устройство
[00180] Фиг. 19 иллюстрирует примерную систему 1900, которая включает в себя вычислительное устройство 102, как описано со ссылкой на фиг. 1. Примерная система 1900 предоставляет повсеместные окружения для прозрачного взаимодействия с пользователем при запуске приложений на персональном компьютере (PC), устройстве телевизионного приемника и/или мобильном устройстве. Службы и приложения запускаются практически аналогично во всех трех окружениях для взаимодействия обычного пользователя при переходе от одного устройства к следующему при использовании приложения, проведении видеоигры, просмотре видеофильма и т.д.
[00181] В примерной системе 1900 несколько устройств соединяются через центральное вычислительное устройство. Центральное вычислительное устройство может быть локальным для нескольких устройств или может быть расположено удаленно относительно этих нескольких устройств. В одном варианте осуществления, центральное вычислительное устройство может быть облаком из одного или более серверных компьютеров, которые подключаются к нескольким устройствам через сеть, Интернет или другую линию передачи данных. В одном варианте осуществления, эта соединительная архитектура предоставляет функциональность для того, чтобы доставляться по нескольким устройствам, чтобы предоставлять общее и прозрачное взаимодействие пользователю этих нескольких устройств. Каждое из нескольких устройств может иметь различные физические требования и характеристики, и центральное вычислительное устройство использует платформу, чтобы обеспечивать доставку взаимодействия в устройство, которое и подходит для устройства, и при этом является стандартным для всех устройств. В одном варианте осуществления, создается класс целевых устройств, и взаимодействие приспосабливается к общему классу устройств. Класс устройств может быть задан посредством физических признаков, типов использования или других общих характеристик устройств.
[00182] В различных реализациях, вычислительное устройство 102 может допускать множество различных конфигураций, к примеру, для вариантов использования в компьютере 1902, на мобильном устройстве 1904 и телевизионном приемнике 1906. Каждая из этих конфигураций включает в себя устройства, которые могут иметь, в общем, различные конструкции и характеристики, и в силу этого вычислительное устройство 102 может быть сконфигурировано согласно одному или более различных классов устройств. Например, вычислительное устройство 102 может быть реализовано как класс компьютера 1902 для устройства, которое включает в себя персональный компьютер, настольный компьютер, многоэкранный компьютер, переносной компьютер, нетбук и т.д.
[00183] Вычислительное устройство 102 также может быть реализовано как класс мобильного устройства 1904 для устройства, которое включает в себя мобильные устройства, такие как мобильный телефон, портативный музыкальный проигрыватель, портативное игровое устройство, планшетный компьютер, многоэкранный компьютер и т.д. Вычислительное устройство 102 также может быть реализовано как класс телевизионного приемника 1906 для устройства, которое включает в себя устройства, имеющие или подключенные, в общем, к большим экранам в нестандартных окружениях просмотра. Эти устройства включают в себя телевизионные приемники, абонентские приставки, игровые приставки и т.д. Технологии, описанные в данном документе, могут поддерживаться посредством этих различных конфигураций вычислительного устройства 102 и не ограничены конкретными примерами технологий, описанных в данном документе. Это проиллюстрировано посредством включения модуля 114 семантического масштабирования на вычислительном устройстве 102, реализация которого также может быть выполнена полностью или частично (например, распределена) "по облаку", как описано ниже.
[00184] Облако 1908 включает в себя и/или представляет платформу 1910 для служб 1912 управления контентом. Платформа 1910 абстрагирует базовую функциональность аппаратных (например, серверных) и программных ресурсов облака 1908. Службы 1912 управления контентом могут включать в себя приложения и/или данные, которые могут быть использованы в то время, когда компьютерная обработка выполняется на серверах, которые являются удаленными относительно вычислительного устройства 102. Службы 1912 управления контентом могут предоставляться в качестве службы по Интернету и/или через абонентскую сеть, такую как сотовая или Wi-Fi-сеть.
[00185] Платформа 1910 может абстрагировать ресурсы и функции, чтобы соединять вычислительное устройство 102 с другими вычислительными устройствами. Платформа 1910 также может служить для того, чтобы абстрагировать масштабирование ресурсов, чтобы предоставлять соответствующий уровень масштаба для указанного запроса в службы 1912 управления контентом, которые реализуются через платформу 1910. Соответственно, в варианте осуществления с соединенными устройствами, реализация функциональности, описанной в данном документе, может быть распределена по всей системе 1900. Например, функциональность может быть реализована частично на вычислительном устройстве 102, а также через платформу 1910, которая абстрагирует функциональность облака 1908.
[00186] Фиг. 20 иллюстрирует различные компоненты примерного устройства 2000, которое может быть реализовано как любой тип вычислительного устройства, как описано со ссылкой на фиг. 1-11 и 19, чтобы реализовывать варианты осуществления технологий, описанных в данном документе. Устройство 2000 включает в себя устройства 2002 связи, которые обеспечивают проводную и/или беспроводную передачу данных 2004 устройства (например, принимаемых данных, данных, которые принимаются, данных, диспетчеризованных для широковещательной передачи, пакетов данных с данными и т.д.). Данные 2004 устройства или другой контент устройства могут включать в себя конфигурационные настройки устройства, мультимедийный контент, сохраненный на устройстве, и/или информацию, ассоциированную с пользователем устройства. Мультимедийный контент, сохраненный на устройстве 2000, может включать в себя любой тип аудиоданных, видеоданных и/или данных изображений. Устройство 2000 включает в себя один или более вводов 2006 данных, через которые может приниматься любой тип данных, мультимедийного контента и/или вводов, к примеру, выбираемые пользователем вводы, сообщения, музыка, телевизионный мультимедийный контент, записанный видеоконтент и любой другой тип аудиоданных, видеоданных и/или данных изображений, принимаемых из любого источника контента и/или данных.
[00187] Устройство 2000 также включает в себя интерфейсы 2008 связи, которые могут быть реализованы как одно или более из последовательного и/или параллельного интерфейса, беспроводного интерфейса, любого типа сетевого интерфейса, модема и как любой другой тип интерфейса связи. Интерфейсы 2008 связи предоставляют линии подключения и/или связи между устройством 2000 и сетью связи, посредством которой другие электронные устройства, вычислительные устройства и устройства связи обмениваются данными с устройством 2000.
[00188] Устройство 2000 включает в себя один или более процессоров 2010 (например, любой из микропроцессоров, контроллеров и т.п.), которые обрабатывают различные машиноисполняемые инструкции, чтобы управлять работой устройства 2000 и реализовывать варианты осуществления технологий, описанных в данном документе. Альтернативно или помимо этого, устройство 2000 может быть реализовано с любыми или комбинацией аппаратных средств, микропрограммного обеспечения или неизменяемых логических схем, которые реализуются в связи с обработкой, и схем управления, которые, в общем, идентифицируются в 2012. Хотя не показано, устройство 2000 может включать в себя системную шину или систему передачи данных, которая соединяет различные компоненты в устройстве. Системная шина может включать в себя любые или комбинацию различных шинных структур, к примеру, шину запоминающего устройства или контроллер запоминающего устройства, периферийную шину, универсальную последовательную шину и/или процессорную или локальную шину, которая использует любую из множества шинных архитектур.
[00189] Устройство 2000 также включает в себя машиночитаемые носители 2014, к примеру, один или более компонентов запоминающего устройства, примеры которых включают в себя оперативное запоминающее устройство (RAM), энергонезависимое запоминающее устройство (например, одно или более из постоянного запоминающего устройства (ROM), флэш-памяти, EPROM, EEPROM и т.д.) и дисковое устройство хранения данных. Дисковое устройство хранения данных может быть реализовано как любой тип магнитного устройства хранения данных или оптического устройства хранения данных, такого как жесткий диск, записываемый и/или перезаписываемый компакт-диск (CD), любой тип универсального цифрового диска (DVD) и т.п. Устройство 2000 также может включать в себя устройство 2016 хранения данных большой емкости.
[00190] Машиночитаемые носители 2014 предоставляют механизмы хранения данных для того, чтобы сохранять данные 2004 устройства, а также различные приложения 2018 устройства и любые другие типы информации и/или данных, связанных с функциональными аспектами устройства 2000. Например, операционная система 2020 может поддерживаться в качестве компьютерного приложения с машиночитаемыми носителями 2014 и выполняться на процессорах 2010. Приложения 2018 устройства могут включать в себя диспетчер устройств (например, управляющее приложение, программное приложение, модуль управления и обработки сигналов, код, который является собственным для конкретного устройства, уровень абстрагирования от аппаратных средств для конкретного устройства и т.д.). Приложения 2018 устройства также включают в себя любые системные компоненты или модули, чтобы реализовывать варианты осуществления технологий, описанных в данном документе. В этом примере, приложения 2018 устройства включают в себя интерфейсное приложение 2022 и модуль 2024 ввода-вывода, которые показаны как программные модули и/или компьютерные приложения. Модуль 2024 ввода-вывода представляет программное обеспечение, которое используется для того, чтобы предоставлять интерфейс с устройством, сконфигурированным с возможностью захватывать вводы, таким как сенсорный экран, сенсорная панель, камера, микрофон и т.д. Альтернативно или помимо этого, интерфейсное приложение 2022 и модуль 2024 ввода-вывода могут быть реализованы как аппаратные средства, программное обеспечение, микропрограммное обеспечение или любая комбинация вышеозначенного. Дополнительно, модуль 2024 ввода-вывода может быть сконфигурирован с возможностью поддерживать несколько устройств ввода, таких как отдельные устройства, чтобы захватывать видео- и аудиовводы, соответственно.
[00191] Устройство 2000 также включает в себя систему 2026 аудио- и/или видеоввода-вывода, которая предоставляет аудиоданные в аудиосистему 2028 и/или предоставляет видеоданные в систему 2030 отображения. Аудиосистема 2028 и/или система 2030 отображения могут включать в себя любые устройства, которые обрабатывают, отображают и/или иным образом подготавливают посредством рендеринга аудиоданные, видеоданные и данные изображений. Видеосигналы и аудиосигналы могут передаваться из устройства 2000 в аудиоустройство и/или в устройство отображения через линию передачи RF (радиочастотного) сигнала, линию передачи сигнала S-Video, линию передачи композитного видеосигнала, линию передачи компонентного видеосигнала, DVI (цифровой видеоинтерфейс), аналоговое аудиосоединение или другую аналогичную линию связи. В варианте осуществления, аудиосистема 2028 и/или система 2030 отображения реализованы как внешние компоненты по отношению к устройству 2000. Альтернативно, аудиосистема 2028 и/или система 2030 отображения реализованы как интегрированные компоненты примерного устройства 2000.
Заключение
[00192] Хотя изобретение описано на языке, характерном для структурных признаков и/или технологических этапов, необходимо понимать, что объем изобретения, определяемый прилагаемой формулой изобретения, не обязательно ограничен описанными характерными признаками или этапами. Наоборот, характерные признаки и этапы раскрываются как примерные формы реализации заявленного изобретения.