BR102016030687A2 - Método, e, mídia legível por computador não transitória - Google Patents

Método, e, mídia legível por computador não transitória Download PDF

Info

Publication number
BR102016030687A2
BR102016030687A2 BR102016030687-6A BR102016030687A BR102016030687A2 BR 102016030687 A2 BR102016030687 A2 BR 102016030687A2 BR 102016030687 A BR102016030687 A BR 102016030687A BR 102016030687 A2 BR102016030687 A2 BR 102016030687A2
Authority
BR
Brazil
Prior art keywords
context
media
control functions
pcd
media device
Prior art date
Application number
BR102016030687-6A
Other languages
English (en)
Inventor
Amudha Kaliamoorthi
Prabhu Chawandi
Karthikeyan Srinivasan
Jihyun Park
Jun Seo Lee
Original Assignee
Nagravision S.A.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US15/294,727 external-priority patent/US20170195735A1/en
Application filed by Nagravision S.A. filed Critical Nagravision S.A.
Publication of BR102016030687A2 publication Critical patent/BR102016030687A2/pt

Links

Landscapes

  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

the present disclosure relates to a method and system for presenting a set of control functions via an interface of a peripheral control device (pcd). a control function can include a command associated with one or more media contexts of a host media device. the method decodes a payload, from the host media device, with an encoded context identifier, where the context identifier indicates a primary media context active on the host media device. the method determines one or more control functions corresponding to the context identifier, and changes the set of control functions on the interface of the pcd to include the one or more control functions that can command the primary media context.

Description

MÉTODO, MEIO DE ARMAZENAMENTO NÃO TRANSITÓRIO LEGÍVEL POR COMPUTADOR E SISTEMA PARA MODIFICAR A FUNCIONALIDADE DE UM OU MAIS DISPOSITIVOS
Pedido Relacionado [001] Este pedido reivindica prioridade ao Pedido Provisório US 62/274.095 depositado em 31 de dezembro de 2015.
Campo [002] A presente descrição refere-se, no geral, ao gerenciamento periférico e, mais particularmente, ao controle de contexto periférico com um dispositivo hospedeiro.
Fundamentos [003] Televisões tradicionais (TV) e dispositivos de consumidor tipo receptor/decodificador integrado (STB) têm controles remotos estáticos usados com propósitos de navegação. No domínio da TV, controles remotos convencionais têm um conjunto de teclas mecânicas que são mapeadas para um conjunto de funcionalidades. Unidades de controle remoto têm aumentado em compatibilidade para operar vários dispositivos, tais como, um visor principal da TV, projetores, sistemas de som, sistemas de jogos, reprodutores de mídia, STBs, etc., mas envolvem um alto grau de entrada do usuário para corresponder o dispositivo ativo ou a tela de interface com as operações disponíveis para controle do usuário. Tradicionalmente, o usuário descobre a configuração apropriada através de tentativa e erro.
[004] Alguns controles remotos têm visores e podem mudar entre um conjunto de teclas ou opções, mas não proveem clareza sobre qual conjunto de teclas ou opções pode ser usado para diferentes casos de uso. Por exemplo, um controle remoto pode ter 20 conjuntos de teclas disponíveis para um STB que oferece TV em difusão ao vivo, acesso a menu, vídeo sob demanda, jogos, etc., mas à medida que o STB muda telas ou menus, a exibição dos controles remotos permanece estática com opção de controle irrelevante para as telas ou menus atualizados em uso no STB.
[005] Adicionalmente, quando software nos STBs for atualizado para incluir novos recursos, menus ou operações, as opções disponíveis para usuários nos controles remotos são restritas à funcionalidade previamente mapeada. Por exemplo, quando um recurso para "reproduzir o próximo episódio" for adicionado em um menu ou tela, os controles remotos tradicionais são restritos à navegação de seta previamente mapeada que pode envolver diversas interações de usuário a realizar. Controles remotos tradicionais não suportam opções atualizáveis para exibição pelos controles remotos e deixam de prover uma experiência de usuário positiva.
Breve Descrição dos Desenhos [006] A presente descrição é ilustrada a título de exemplos, e não por meio de limitação, e pode ser mais completamente entendida com referências à seguinte descrição detalhada quando considerada em conexão com as figuras, nas quais: a figura 1 ilustra um diagrama de blocos de um sistema de exemplo de acordo com uma ou mais implementações da presente descrição; a figura 2 ilustra um exemplo de um dispositivo de mídia hospedeiro de acordo com uma ou mais implementações da presente descrição; a figura 3 ilustra um exemplo de dispositivo de controle periférico de acordo com uma ou mais implementações da presente descrição; a figura 4 é um fluxograma de um exemplo do método de gerenciamento de contexto de acordo com uma ou mais implementações da presente descrição; as figuras 5A - B ilustram exemplos de interfaces de um dispositivo de controle periférico de acordo com uma ou mais implementações da presente descrição; a figura 6 é um fluxograma de um exemplo do método de gerenciamento de contexto de acordo com uma ou mais implementações da presente descrição; a figura 7 ilustra um exemplo de sequência de gerenciamento de contexto de acordo com uma ou mais implementações da presente descrição; a figura 8 ilustra um diagrama de blocos de uma implementação de um dispositivo de computação.
Descrição Detalhada [007] A presente descrição refere-se a técnicas para coordenar funções de controle entre um dispositivo de mídia hospedeiro e um dispositivo de controle periférico (PCD). O dispositivo de mídia hospedeiro (por exemplo, um receptor/decodificador integrado (STB), Televisão (TV), etc.) pode se conectar em diversos diferentes serviços de mídia (por exemplo, um serviço de mídia de difusão, um serviço de mídia em transmissão contínua, um serviço de mídia sob demanda, etc.). Um contexto pode se referir a uma aplicação ou interface gráfica de usuário atualmente em execução em um dispositivo de mídia hospedeiro que é apresentado em um visor principal (por exemplo, TV, monitor, projetor, etc.).
[008] Diferentes tipos de serviços de mídia podem ter um diferente grupo de funções de controle (por exemplo, novo canal, reproduzir, pausar, novo episódio, etc.) para controlar itens de conteúdo exibidos pelo dispositivo de mídia hospedeiro. Adicionalmente, serviços de mídia estão oferecendo crescentemente a usuários opções customizadas adicionais para interagir com o serviço de mídia. À medida que a variedade de serviços de mídia cresce, o número e a combinação de funções de controle são difíceis de gerenciar usando controles remotos tradicionais. Por exemplo, um dispositivo de controle remoto tradicional fica configurado com funções de controle correspondentes a um serviço de mídia de difusão ao vivo quando uma TV hospedeira mudar para execução de um serviço de transmissão contínua.
Além do mais, à medida que menus na tela e interfaces gráficas de usuário ficam mais complicadas, navegação de usuários está se tornando crescentemente mais laboriosa e complicada. Desta maneira, dispositivos periféricos com maior controle e gerenciamento de contexto permitem que o usuário mantenha controle da comutação do dispositivo hospedeiro entre múltiplos serviços de mídia através de vários contextos e subcontextos.
[009] As técnicas aqui descritas referem-se à comutação de controle de contexto em um dispositivo de controle periférico para habilitar usuários para acessar e controlar eficientemente uma variedade de serviços de mídia. Da forma aqui usada, o termo serviços de mídia pode incluir pelo menos serviços de mídia tradicionais, bem como tipos de mídia locais (por exemplo, arquivos de vídeo, arquivos de música e imagens digitais). Em um aspecto de exemplo da presente descrição, software no dispositivo de controle periférico permite a recepção e o armazenamento de conjuntos de funções de controle associados com aplicações de mídia do dispositivo de mídia hospedeiro. O dispositivo de mídia hospedeiro pode identificar diferentes contextos ativos na exibição principal e transmitir um identificador de contexto para indicar que o dispositivo de controle periférico carregue um ou mais conjuntos de controle.
[0010] Em um aspecto de exemplo da presente descrição, é provido um método para apresentar um conjunto de funções de controle por meio de uma interface de um PCD. Uma função de controle é um comando associado com um ou mais contextos de mídia. O método inclui decodificar uma carga útil do dispositivo de mídia hospedeiro com um identificador de contexto codificado. O identificador de contexto indica um contexto de mídia primário ativo no dispositivo de mídia hospedeiro que permite que o PCD determine uma ou mais funções de controle correspondentes ao identificador de contexto. O conjunto de funções de controle na interface do PCD muda para incluir as uma ou mais funções de controle para comandar o contexto de mídia primário. Por exemplo, quando o serviço de mídia que exibe em uma TV mudar de uma difusão ao vivo para um serviço de mídia em transmissão contínua, as funções de controle exibidas no PCD mudam para incluir opções de reprodução, bem como atalhos específicos de aplicação que permitem o eficiente controle do serviço de mídia.
[0011] Em um aspecto de exemplo da presente descrição, o dispositivo de mídia hospedeiro pode comunicar usando cargas úteis codificadas que permitem que o PCD receba informação de controle adicional para apresentar funções de controle relevantes para o serviço de mídia em execução no dispositivo de mídia hospedeiro. Por exemplo, o PCD pode receber um logotipo da rede que corresponde ao canal que é exibido pelo dispositivo de mídia hospedeiro. Em uma implementação, cargas úteis codificadas podem ser transmitidas usando um protocolo de relato padrão, da forma aqui discutida.
[0012] A figura 1 ilustra um diagrama de blocos de um sistema de exemplo 100 de acordo com uma ou mais implementações da presente descrição. O sistema 100 pode ser configurado para habilitar um dispositivo de controle periférico 150 a comutar contextos de controle de acordo com as técnicas aqui descritas. No exemplo ilustrado na figura 1, o sistema 100 inclui uma ou mais redes de comunicações 104-105, um dispositivo de mídia hospedeiro 110, um visor principal 115, um ou mais serviços de mídia 130A-130N e um dispositivo de controle periférico 150. O sistema 100 pode incluir módulos de software que operam em um ou mais dispositivos. Módulos de software podem ser armazenados em uma memória e executados por um processador. Dispositivos (por exemplo, o dispositivo de mídia hospedeiro 110, o dispositivo de controle periférico 150) podem incluir um ou mais processadores e uma pluralidade de dispositivos de memória internos e/ou externos. Exemplos de dispositivos de memória incluem servidores de arquivo, servidores de protocolo de transferência de arquivo (FTP), dispositivos de armazenamento anexado em rede (NAS), unidades de disco local ou qualquer outro tipo de dispositivo ou mídia de armazenamento capazes de armazenar dados. Mídia de armazenamento pode incluir discos óticos, incluindo, por exemplo, discos Blu-ray, DVDs e CD- ROMs, memória flash ou qualquer outra mídia de armazenamento digital adequada.
[0013] O sistema 100 representa um exemplo de um sistema que pode ser configurado para permitir que o dispositivo de mídia hospedeiro 110 acesse múltiplos serviços de mídia 130A-130N para apresentação de conteúdo de mídia para um usuário, por exemplo, por meio do visor 115. No exemplo ilustrado na figura 1, o dispositivo de mídia hospedeiro 110 pode incluir qualquer dispositivo configurado para transmitir dados para e/ou receber dados a partir da rede de comunicação 104. Por exemplo, o dispositivo de mídia hospedeiro 110 pode ser equipado para comunicações com fios e/ou sem fio e pode incluir receptores/decodificadores integrados, gravadores de vídeo digital, televisões, computadores tipo desktop, laptop ou tablet, consoles de jogos, dispositivos móveis, incluindo, por exemplo, telefones "inteligentes", telefones celulares e dispositivos de jogos pessoais.
[0014] As redes de comunicações 104-105 podem compreender qualquer combinação de mídias de comunicação sem fio e/ou com fios. As redes de comunicações 104-105 podem incluir cabos coaxiais, cabos de fibra ótica, cabos de par trançado ou qualquer outro equipamento que pode ser útil para facilitar comunicações entre vários dispositivos e locais. A rede de comunicações 104 pode representar uma rede de área ampla que permite que o dispositivo de mídia hospedeiro conecte em um ou mais serviços de mídia 130A-130N.
[0015] Serviços de mídia 130A-130N podem prover conteúdo para o dispositivo de mídia hospedeiro 110 usando a rede de comunicações 104 (por exemplo, difusão, Protocolo da Internet, etc.). Por exemplo, o serviço de televisão 130A pode incluir uma difusão de televisão pública sobre o ar, um serviço de televisão a cabo, serviço de televisão via satélite, etc. que é configurado para prover serviços de televisão para televisões analógicas e/ou digitais e receptores/decodificadores integrados. Em alguns exemplos, os serviços de mídia 130A-130N podem ser referidos como um serviço de televisão 130A, um serviço de mídia em transmissão contínua 130B, um serviço de mídia interativa 130C, um serviço de mídia sob demanda 130D, um serviço de mídia de computação 130F ou outro serviço de mídia 130N. Por exemplo, um usuário de um dos dispositivos de mídia hospedeiro 110 pode acessar a Internet e conteúdo multimídia provido por um serviço de mídia 130A-130N através de um modem a cabo conectado em uma rede coaxial mantida por um provedor de televisão a cabo.
[0016] O dispositivo de mídia hospedeiro 110 também pode ser configurado para acessar serviços de mídia 130A-130N independente de uma rede de comunicações 104. Por exemplo, o dispositivo de mídia hospedeiro 110 pode acessar diretamente uma biblioteca de multimídia (por exemplo, música, filmes e espetáculos de TV) armazenada no serviço de mídia local 130H, um reprodutor de mídia 130G, um serviço de mídia de computador 130F ou outro dispositivo de mídia 130N. Adicionalmente, em alguns exemplos, serviços de mídia 130A-130N podem se referir a aplicações que, mediante execução, habilitam um usuário a acessar conteúdo digital através da execução da aplicação.
[0017] Além de ser configurado para receber conteúdo de mídia digital a partir da rede de comunicações 104, o dispositivo de mídia hospedeiro 110 é configurado para comunicar com o dispositivo de controle periférico 150 tanto diretamente quanto através da rede de comunicações 105. A rede de comunicações 105 pode representar uma rede de área local ou meio de comunicação sem fio local. Usar um protocolo de comunicação padronizado, tal como, por exemplo, protocolo do Barramento Serial Universal (USB), Bluetooth, ZigBee ou um protocolo de comunicações proprietário, tal como, por exemplo, um protocolo de comunicações infravermelho proprietário.
[0018] O dispositivo de controle periférico 150 é um dispositivo configurado para comunicar com o dispositivo de mídia hospedeiro 110 e inclui uma interface de usuário (por exemplo, uma tela sensível ao toque, microfone, etc.) em comunicação com um dispositivo com capacidades de apresentação de mídia digital (por exemplo, dispositivo de mídia hospedeiro 110). O dispositivo de controle periférico 150 pode ser um dispositivo parceiro associado, que inclui, por exemplo, controladores remotos, dispositivos de interface humana, computadores tipo tablet, etc. Em um exemplo, o dispositivo de controle periférico 150 pode executar aplicações em conjunto com o dispositivo de mídia hospedeiro 110. Da forma descrita em relação às figuras 3-6, o dispositivo de controle periférico 150 pode ser configurado para prover interfaces de usuário que habilitam usuários a prover entrada. Por exemplo, mediante seleção através de uma interface de usuário do dispositivo de controle periférico 150, um item de conteúdo pode ser apresentado em um visor 115 do dispositivo de mídia hospedeiro 110.
[0019] O dispositivo de controle periférico 150 inclui uma interface (por exemplo, uma tela sensível ao toque) que muda os comandos de controle apresentados para o usuário com base no serviço de mídia ou no tipo de mídia em execução (isto é, renderização, exibição, etc.) no dispositivo de mídia hospedeiro 110. Quando o dispositivo de mídia hospedeiro 110 mudar o serviço de mídia 130A-130N que é exibido no visor 115, o dispositivo de controle periférico 150 pode atualizar a interface para incluir opções de controle que correspondem a comandos de controle relevantes do serviço de mídia 130A-130N. Por exemplo, se o dispositivo de mídia hospedeiro 110 comutar de um serviço de mídia em televisão 130A para um serviço de mídia sob demanda 130D, o dispositivo de controle periférico 150 pode adaptar os comandos presentes na interface para substituir opções de comando de navegação de canal com opções de comando de navegação de menu sob demanda.
[0020] O dispositivo de controle periférico 150 pode ser equipado para comunicações com fios e/ou sem fio. No exemplo ilustrado na figura 1, o dispositivo de controle periférico 150 pode ser configurado para comunicar diretamente com o dispositivo de mídia hospedeiro 110 (por exemplo, usando um protocolo de comunicação de curto alcance ou de campo próximo), comunicar com o dispositivo de mídia hospedeiro 110 por meio de uma rede de área local 105 (por exemplo, através de um roteador Wi-Fi) e/ou comunicar com uma rede de área ampla (por exemplo, uma rede celular) 104. Adicionalmente, em alguns exemplos, o dispositivo de controle periférico 150 pode agir como um dispositivo cliente para o dispositivo de mídia hospedeiro 110. Por exemplo, o dispositivo de controle periférico 150 pode ser configurado para agir como um cliente Plug and Play Universal (UPnP) ou um cliente do Sistema de Nome de Domínio de difusão seletiva (mDNS). Em um exemplo, o dispositivo de controle periférico 150 pode ser registrado com o dispositivo de mídia hospedeiro 110 usando seu endereço de controle de acesso à mídia (MAC) ou um identificador de dispositivo exclusivo e/ou um identificador de assinante do usuário.
[0021] Em uma implementação, comunicação sem fio entre o dispositivo de mídia hospedeiro 110 e o dispositivo de controle periférico 150 por meio da rede 105 usam Bluetooth de Baixa Energia para prover reduzidos consumo e custo de potência. Dispositivos de interface humana (HID) (por exemplo, dispositivo de controle periférico 150) implementam transmissão sem fio de dados de acordo com o protocolo Bluetooth de Baixa Energia. O protocolo Bluetooth de Baixa Energia sem fio é compatível com Dispositivos de Interface Humana (HIDs) usando o perfil de Atributo Genérico Bluetooth (GATT). Um Perfil de Atributo Genérico é associado com um Protocolo de Atributo (ATT) que estabelece operações comuns e uma estrutura para os dados transportados e armazenados pelo Protocolo de Atributo. O perfil HID sobre GATT define os procedimentos e os recursos a ser usados por Dispositivos HID Bluetooth de Baixa Energia usando GATT e Hospedeiros Bluetooth HID usando GATT.
[0022] Uma vez que uma conexão é estabelecida entre o dispositivo de mídia hospedeiro 110 e o dispositivo de controle periférico 150, o perfil HID sobre GATT especifica formatos para transferência de dados referidos como relatos. Em alguns casos, relatos podem ser em formatos arbitrários e sintaticamente analisados por dispositivos, ao mesmo tempo em que outros relatos são especificados de um comprimento e formato predefinidos. Um relato de recurso pode ser enviado por qualquer dispositivo para estabelecer uma conexão. Um relato de entrada pode se referir a um formato de relato predefinido enviado pelo dispositivo de controle periférico 150 e recebido pelo dispositivo de mídia hospedeiro 110. Um relato de saída pode se referir a um formato de relato predefinido enviado pelo dispositivo de mídia hospedeiro 110 para o dispositivo de controle periférico 150.
[0023] Da forma descrita em relação às figuras 2-4, o perfil HID sobre GATT pode ser usado para transmitir relatos HID que podem ser codificados com um identificador de contexto para indicar que o dispositivo de controle periférico carregue um ou mais conjuntos de controle. Da forma descrita em relação às figuras 4-7, em alguma implementação, o dispositivo de mídia hospedeiro 110 pode usar relatos HID para transferir imagens para o dispositivo de controle periférico 150. Da forma descrita em relação às figuras 4-7, em alguma implementação, o dispositivo de controle periférico 150 pode usar relatos HID para transferir sem fio comandos de voz para o dispositivo de mídia hospedeiro 110.
[0024] Em uma implementação da presente descrição, um perfil HID sobre GATT (HoG) é usado para transferência de imagem. De acordo com a especificação HID, o dispositivo de mídia hospedeiro pode receber dados por meio do formato de relato de entrada, enviar dados por meio do formato do relato de saída, e comunicar recursos por meio de um formato de relato de recurso. Dois dos três tipos de relato suportados (os relatos de entrada e o relato de saída) podem ser usados para transferir dados. Em uma implementação da presente descrição, o relato de saída é usado para transferir dados associados com funções de controle a ser apresentadas pelo PCD 150. Relatos de saída podem ser enviados em massa e em mensagens curtas.
[0025] De acordo com um aspecto exemplar, dados de imagem podem ser codificados no formato suportado do dispositivo de mídia hospedeiro 110 e decodificados por um decodificador do PCD 150. Dados codificados podem ser enviados como parte de um conjunto de pacotes, que são recebidos (por exemplo, diretamente ou indiretamente) pelo PCD 150. O dispositivo de controle periférico 150 pode armazenar os dados codificados para montar os dados de imagem. Os dados codificados podem ser decodificados para adquirir a imagem real transferida. Já que os dados de imagem são transmitidos como notificações, transferência pode ser concluída, independente de aperto de mãos que indica um início e um final. Os pacotes são adaptados com informação de cabeçalho e trailer para indicar um início e um final dos dados de imagem. Por exemplo, logotipos de canal são transferidos sobre Bluetooth de Baixa Energia do dispositivo de mídia hospedeiro 110 para o PCD 150. O método também pode ser implementado usando especificação HID com comunicação ZigBee.
[0026] A figura 2 ilustra um exemplo de um dispositivo de mídia hospedeiro 200 de acordo com uma ou mais implementações da presente descrição. O dispositivo de mídia hospedeiro 200 é um exemplo de um dispositivo de computação (por exemplo, dispositivo de mídia hospedeiro 110 da figura 1) que pode ser configurado para transmitir dados para e receber dados a partir de uma rede de comunicações, conectar em múltiplos serviços de mídia, permitir que um usuário acesse conteúdo multimídia e executar uma ou mais aplicações. O dispositivo de mídia hospedeiro 200 pode incluir ou ser parte de um dispositivo de computação estacionário (por exemplo, um computador de mesa, uma televisão, um receptor/decodificador integrado, um console de jogos, um dispositivo de transmissão contínua multimídia dedicado, um gravador de vídeo digital, etc.), um dispositivo de computação portátil (por exemplo, um telefone celular, um laptop, um assistente de dados pessoal (PDA), um dispositivo tipo tablet, um dispositivo de jogos portátil, etc.) ou um outro tipo de dispositivo de computação. Em um exemplo, o dispositivo de mídia hospedeiro 200 pode incluir, mas sem limitações, uma ou mais interface(s) de comunicação 205, unidade(s) de processamento central 210, memória 212 e um processador(es) de exibição 215 para apresentar conteúdo de mídia por meio de um visor principal.
[0027] A unidade de processamento central (CPU) 210 pode ser configurada para implementar funcionalidade e/ou instruções de processo para execução no dispositivo de mídia hospedeiro 200. A CPU 210 pode ser capaz de recuperar e processar instruções, código e/ou estruturas de dados para implementar uma ou mais das técnicas aqui descritas. Instruções podem ser armazenadas em uma mídia legível por computador, tal como a memória 212. A CPU 210 pode incluir unidades de processamento central multinúcleos.
[0028] A CPU 210, a(s) interface(s) de comunicação 205, a memória 212 e o processador de exibição 215 podem ser interconectados (fisicamente, comunicativamente e/ou operativamente) para comunicações intercomponentes e podem ser implementados como qualquer um de uma variedade de sistema de circuitos adequado, tais como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados específicos de aplicação (ASICs), arranjos de porta programáveis no campo (FPGAs), lógica discreta, software, hardware, software embarcado ou quaisquer combinações dos mesmos. Funções do dispositivo de mídia hospedeiro 200 podem ser realizadas usando qualquer combinação de hardware, software embarcado e/ou implementações de software. Em alguns exemplos, a funcionalidade do dispositivo de mídia hospedeiro 200 pode ser implementada usando um ou mais assim denominados sistemas em um chip (SOC). O dispositivo de mídia hospedeiro 200 pode ser configurado para habilitar comunicações entre componentes e compreende estruturas que habilitam que dados sejam transferidos de um dispositivo par para um outro dispositivo par ou para uma mídia de armazenamento. Por exemplo, o dispositivo de mídia hospedeiro 200 pode incluir um conjunto de chips que suporta protocolos com base em Porta de Elementos Gráficos Acelerados (AGP), protocolos com base em barramento de Interconexão de Componente Periférico (PCI), tal como, por exemplo, a especificação de barramento PCI ExpressTM (PCIe), que é mantida pelo Grupo de Interesse Especial da Interconexão de Componente Periférico, ou qualquer outra forma de estrutura que pode ser usada para interconectar dispositivos par.
[0029] A(s) interface(s) de comunicação 205 pode(m) ser configurada(s) para habilitar que o dispositivo de mídia hospedeiro 200 envie e receba dados por meio de redes, bem como meios de comunicações diretas para transferência de dados com dispositivos locais. Por exemplo, a(s) interface(s) de comunicação 205 pode(m) ser configurada(s) para enviar e receber conteúdo digital que origina a partir de um ou mais serviços de mídia, tais como uma difusão, uma difusão seletiva, uma difusão ponto a ponto, uma fonte de conteúdo over-the-top, um gravador de vídeo pessoal (PVR) e uma fonte de conteúdo ponto a ponto, etc. Dados enviados ou recebidos podem incluir dados provenientes de um conteúdo digital associado a serviço de mídia, tais como, por exemplo, música, vídeos, imagens, páginas da Internet, mensagens, comunicações por voz e aplicações.
[0030] Interface(s) de comunicação 205 pode(m) incluir um cartão da interface de rede, tais como um cartão Ethernet, um transceptor ótico, um transceptor de radiofrequência, ou qualquer outro tipo de dispositivo configurado para enviar e receber informação. A(s) interface(s) de comunicação 205 pode(m) ser configurada(s) para comunicar com um dispositivo de controle periférico (por exemplo, dispositivo de controle periférico 150 da figura 1) e operar de acordo com um ou mais protocolos de comunicação, tais como, por exemplo, um padrão de Comunicações Móveis do Sistema Global (GSM), um padrão do acesso múltiplo por divisão de código (CDMA), um padrão do Projeto de Parceria da 3a Geração (3GPP), um padrão do Protocolo da Internet (IP), um padrão do Protocolo de Aplicação Sem Fio (WAP), padrão Bluetooth, ZigBee e/ou IEEE, tais como, um ou mais dos padrões 802.11, bem como várias combinações dos mesmos. Dados enviados ou recebidos podem incluir pacotes codificados com comandos de controle para operação de um ou mais serviços de mídia.
[0031] Interface(s) de comunicação 205 pode(m) ser configurada(s) para realizar sinalização física, endereçamento e controle de acesso ao canal de acordo com as camadas físicas e de rede para extrair pacotes de áudio, pacotes de vídeo e pacotes de dados provenientes de um fluxo contínuo de dados, ou fragmentos similares e utilizar uma rede, tal como, por exemplo, a rede 104. Por exemplo, a(s) interface(s) de comunicação 205 pode(m) ser configurada(s) para extrair pacotes de vídeo, pacotes de áudio e pacotes de dados de acordo com um ou mais protocolos de transmissão contínua que incluem protocolo da Internet (IP), protocolo de controle de transporte (TCP), protocolo de transmissão contínua em tempo real (RTSP), protocolo de datagrama do usuário (UDP), protocolo em tempo real (RTP), protocolos de transmissão contínua de transporte MPEG, protocolos IPTV e o assim denominado Protocolo de Fluxo contínuo ao Vivo HTTP (HLS).
[0032] Dados associados com conteúdo digital podem se referir a, por exemplo, música, vídeos, imagens, páginas da Internet, mensagens, comunicações por voz e aplicações que podem ser armazenados em uma mídia legível por computador, tal como, por exemplo, memória 212. Dados armazenados em um dispositivo de memória podem ser recuperados e processados pela CPU 210 juntamente com decodificadores de áudio, processadores de áudio, decodificadores de vídeo, unidades de processamento de elementos gráficos e o processador de exibição 232.
[0033] O processador de exibição 215 pode ser configurado para recuperar e processar dados para exibição. Por exemplo, o processador de exibição 215 pode ser acoplado em um visor principal (por exemplo, visor 115 da figura 1) usando um protocolo de comunicação padronizado (por exemplo, Interface Multimídia m Alta Definição (HDMI), Interface Visual Digital (DVI), Porta de Exibição, vídeo componente, vídeo compósito e/ou Arranjo de Elementos Gráficos de Vídeo (VGA)). O visor (por exemplo, visor 115) pode, por qualquer meio, apresentar conteúdo digital, tal como uma tela de cristal líquido (LCD), um visor de plasma, um visor de diodo orgânico emissor de luz (OLED), uma televisão de definição padrão, uma televisão de alta definição, um visor de ultra resolução, um visor integrado de um dispositivo de computação portátil (por exemplo, um telefone celular, um laptop, um assistente de dados pessoal (PDA) ou um dispositivo tipo tablet), ou um outro tipo de dispositivo de exibição capaz de apresentar dados de vídeo para um usuário.
[0034] A memória 212 pode ser descrita como uma mídia de armazenamento legível por computador não transitória ou tangível. Em alguns exemplos, a memória 212 pode prover armazenamento temporário e/ou de longo prazo e representar memória volátil e/ou não volátil. Exemplos de memórias voláteis incluem memórias de acesso aleatório (RAM), memórias de acesso aleatório dinâmico (DRAM) e memórias de acesso aleatório estáticas (SRAM). Exemplos de memórias não voláteis incluem discos rígidos magnéticos, discos óticos, discos flexíveis, memórias flash, ou formas de memórias eletricamente programáveis (EPROM) ou memórias eletricamente apagáveis e programáveis (EEPROM). A memória 212 pode incluir um disco rígido interno ou unidade em estado sólido, um módulo da memória de acesso aleatório, um dispositivo de memória MultiMediaCard (eMMC) embutido e/ou um ou mais caches (por exemplo, caches de CPU e/ou caches de GPU). [0035] A memória 212 pode ser configurada para armazenar informação que pode ser usada pelo dispositivo de mídia hospedeiro 200 durante a operação. A memória 212 pode ser usada para armazenar instruções de programa para execução pela CPU 210 e pode ser usada por software ou aplicações 220 em execução no dispositivo de mídia hospedeiro 200 para armazenar temporariamente informação durante a execução do programa. Por exemplo, a memória 212 pode armazenar instruções associadas com o sistema operacional 222, drivers, aplicações de codificador/decodificador 224, um gerenciador de contexto 230, um gerenciador de comando 235 e aplicação(ões) de mídia 240.
[0036] Aplicações 220 podem incluir aplicações implementadas em ou executadas pelo dispositivo de mídia hospedeiro 200 e podem ser implementadas ou contidas em, operáveis por, executadas por e/ou ser operativamente/comunicativamente acopladas em componentes do dispositivo de mídia hospedeiro 200. Aplicações 220 podem incluir e ser executadas pelo sistema operacional 222. O sistema operacional 222 pode ser configurado para facilitar a interação de aplicações (por exemplo, aplicações de codificador/decodificador 224, gerenciador de contexto 230, gerenciador de comando 235, aplicação(ões) de mídia 240, etc.) com a CPU 210, e outros componentes de hardware do dispositivo de mídia hospedeiro 200. O sistema operacional 222 pode incluir um driver de HID e software de gerenciamento de driver para suportar o protocolo Bluetooth de Baixa Energia. Componentes do sistema operacional 220 e componentes que agem em conjunto com o sistema operacional 222 podem ser referidos como software mediador. Adicionalmente, em alguns exemplos, a aplicação 220 pode incluir uma interface de programação de aplicação (API). As técnicas aqui descritas podem ser utilizadas por dispositivos configurados para operar usando toda e qualquer combinação de arquiteturas de software. O sistema operacional 222 pode ser um sistema operacional desenhado para ser instalado em laptops, desktops, telefones inteligentes, tablets, receptores/decodificadores integrados, gravadores de vídeo digital, televisões e/ou dispositivos de jogos. Em um exemplo, o sistema operacional 222 pode incluir um ou mais dos sistemas operacionais ou componentes de software mediador desenvolvidos por OpenTV®, sistemas operacionais Windows®, sistemas operacionais Linux, Mac OS®, sistemas operacionais Android®, e toda e qualquer combinação dos mesmos.
[0037] Aplicações 220 podem fazer com que uma ou mais interfaces gráficas de usuário sejam apresentadas que habilitam que um usuário proveja dados (isto é, comandos) para uso por uma aplicação de mídia 240. Aplicações 220 para habilitar um usuário a acessar um serviço de mídia digital podem ser altamente integradas com uma aplicação ou sistema operacional 222 do dispositivo hospedeiro 200. Por exemplo, um receptor/decodificador integrado suportado por um provedor de televisão a cabo pode habilitar um usuário a acessar itens de conteúdo a partir de um serviço de televisão, um serviço de mídia sob demanda mantido pelo serviço de provedor de televisão a cabo e/ou um serviço de mídia de transmissão contínua de terceiro. Cada interface gráfica de usuário distinta que habilita um usuário a selecionar itens de conteúdo para acesso pode ser referida como um contexto.
[0038] Aplicação(ões) de mídia 240 pode(m) ser provida(s) para o dispositivo de mídia hospedeiro 200 e habilitar a apresentação de diferentes interfaces gráficas de usuário associadas com itens de conteúdo (isto é, diferentes contextos). Cada aplicação de mídia 240 e/ou interface gráfica de usuário distinta pode ter diferentes comandos de controle que habilitam um usuário a selecionar itens de conteúdo ou operações de controle e recursos providos pela(s) aplicação(ões) de mídia 240. Por exemplo, uma aplicação de mídia 240 de conteúdo sob demanda pode incluir um comando que permite que um usuário ignore comerciais gravados.
[0039] O gerenciador de contexto 230 e o gerenciador de comando 235 podem operar em conjunto com uma aplicação em execução em um dispositivo de controle periférico, da forma descrita em relação às figuras 3-4. O gerenciador de comando 235 pode registrar comandos específicos de aplicação, atalhos, ícones de botão virtual, etc. provenientes de aplicações de mídia 240 para criar perfis de comando associados com aplicações de mídia 240 que podem ser armazenadas em uma memória (por exemplo, memória 212). Um perfil de comando pode incluir funções de controle mapeadas associadas com um contexto de uma aplicação de mídia 240. O gerenciador de comando 235 pode associar ícones específicos de aplicação com as funções de controle mapeadas para exibição pelo dispositivo de controle periférico. O gerenciador de comando 235 pode transmitir perfis de comando como opções de controle a ser armazenadas pelo dispositivo de controle periférico. Da forma discutida em relação às figuras 3-5, o dispositivo de controle periférico pode receber opções de controle como funções de controle mapeadas para botões virtuais para exibição pelo dispositivo de controle periférico. Em algumas implementações, o gerenciador de comando 235 pode rastrear e gerenciar os perfis de comando armazenados pelo dispositivo de controle periférico. Em algumas implementações, o dispositivo de controle periférico pode notificar ou solicitar que o gerenciador de comando 235 proveja opções de controle associadas com um perfil de comando. Por exemplo, o dispositivo de controle periférico pode armazenar apenas um subconjunto de funções de controle disponíveis e o gerenciador de comando 235 pode prover funções de controle não disponíveis no armazenamento do dispositivo de controle periférico.
[0040] O gerenciador de contexto 230 pode identificar a aplicação de mídia 240 atualmente em execução no dispositivo de mídia hospedeiro 200. Por exemplo, o gerenciador de contexto 230 identifica quando o dispositivo de mídia hospedeiro 200 muda entre uma aplicação de mídia 240 associada com um serviço de mídia para difusão de televisão, aplicação de jogos, um serviço de mídia em transmissão contínua, etc. Em algumas implementações, o gerenciador de contexto também identifica um subcontexto para um aspecto em particular da aplicação de mídia 240 em execução no dispositivo de mídia hospedeiro. Um subcontexto pode se referir a uma interface gráfica de usuário específica (por exemplo, um menu de navegação, item de conteúdo, comercial, etc.) da aplicação de mídia 240 que é associada com uma ou mais funções de controle específicas. Em uma implementação, o gerenciador de contexto 230 atribui um ou mais identificadores de contexto a uma aplicação de mídia 240 e associa os perfis de comando relevantes. Ícones específicos de aplicação e funções de controle mapeadas podem ser com base em um contexto e/ou um subcontexto. Em resposta à determinação do contexto ativo da aplicação de mídia 240 para um identificador de contexto, o gerenciador de contexto 230 pode notificar o dispositivo de controle periférico, por meio de uma carga útil codificada, para coordenar a exibição de opções de comando no dispositivo de controle periférico. Da forma descrita em relação às figuras 3-5, comandos para controlar vários serviços de mídia podem ser associados com um identificador de contexto que é comunicado com um dispositivo de controle periférico. O dispositivo de controle periférico pode carregar funções de controle que são relevantes para um serviço de mídia ou conteúdo selecionados que é exibido por meio do dispositivo de mídia hospedeiro 200 com base no identificador de contexto.
[0041] Codificador/Decodificador 224 pode ser usado com o uma ou mais interfaces de comunicação 205 para comunicar com o dispositivo de controle periférico usando um ou mais protocolos sem fio. Em uma implementação, a interface de comunicação é configurada para comunicação Bluetooth® de Baixa Energia com o dispositivo de controle periférico. Codificador/Decodificador 224 é usado para comunicar dados para e a partir do gerenciador de contexto 230, do gerenciador de comando 235 ou das aplicações de mídia 240 com o dispositivo de controle periférico utilizando um ou mais protocolos eficientes.
[0042] Codificador/Decodificador 224 pode enviar dados transportados sobre o Protocolo de Atributo e pode aceitar solicitações do Protocolo de Atributo, comandos e confirmações provenientes de um cliente GATT, tal como o dispositivo de controle periférico. Atributos são, no geral, formatados como serviços e características. Serviços podem incluir uma coletânea de características que incluem um valor e inúmeros descritores que descrevem o valor de característica. O Perfil GATT pode descrever uma estrutura na qual dados de perfil são trocados. Uma estrutura pode descrever elementos básicos (por exemplo, serviços e características) usados em um perfil. Um nível de topo da hierarquia é um perfil. Um perfil pode incluir um ou mais serviços necessários para satisfazer um caso de uso. Por exemplo, um serviço pode incluir características ou referências a outros serviços. Em algumas implementações, a característica inclui um valor e pode conter informação opcional sobre o valor. O serviço e a característica e os componentes da característica (por exemplo, valor e descritores) podem incluir os dados de perfil. O perfil GATT faz uso dos descritores de característica e valores associados que podem ser entendidos por dispositivos HID compatíveis.
[0043] O dispositivo de mídia hospedeiro 200 pode receber, por meio da interface de comunicação 205, e decodificar, por meio do Codificador/Decodificador 224, relatos de entrada do protocolo HID sobre GATT enviados por um dispositivo de controle periférico. O dispositivo de mídia hospedeiro 200 também pode usar Codificador/Decodificador 224 para gerar e codificar relatos de saída para transmissão para o dispositivo de controle periférico por meio da interface de comunicação 205. Em algumas implementações, o Codificador/Decodificador 224 envia indicação e notificações (por exemplo, de forma assíncrona) para o dispositivo de controle periférico quando eventos especificados ocorrerem. Por exemplo, o gerenciador de contexto 230 pode detectar um contexto do visor principal modificado, determinar um identificador de contexto associado com o novo contexto, e o Codificador/Decodificador 224 envia uma carga útil codificada, codificada com o identificador de contexto, para o dispositivo de controle periférico.
[0044] Dados de imagem e dados de áudio podem ser codificados com informação de cabeçalho e trailer. Dados codificados são transferidos para dispositivo periférico por meio de relatos de saída HID. O dispositivo de controle periférico decodifica o cabeçalho e armazena ou submete a buffer os dados até que informação de trailer seja recebida. O dispositivo de controle periférico decodifica os dados com base na codificação feita. A codificação e a decodificação de dados transferidos podem ser feitas em paralelo. Em uma implementação, um logotipo de canal pode ser transferido do dispositivo de mídia hospedeiro para o dispositivo de controle periférico. O dispositivo de controle periférico pode incluir uma exibição interativa das imagens recebidas que permite que um usuário comande o dispositivo de mídia hospedeiro. [0045] Em algumas implementações, o dispositivo de mídia hospedeiro 200 pode transmitir ou receber dados adicionais codificados como um relato HID. Codificador/Decodificador 224 pode incluir funcionalidade para transformar os dados adicionais em um formato para transferência como um relato HID. Por exemplo, o dispositivo de mídia hospedeiro 200 pode incluir um gerenciador de comando 235 para processamento de comandos de voz. Por exemplo, o Codificador/Decodificador 224 pode decodificar um relato de entrada e analisar sintaticamente informação de cabeçalho e trailer para extrair dados de voz a partir de um relato de entrada para processamento pelo gerenciador de comando 235. Em um outro exemplo, o Codificador/Decodificador 224 pode codificar dados de imagem em um formato comprimido e anexar informação de cabeçalho e trailer para transmitir os dados de imagem como um relato de saída HID para um dispositivo de controle periférico. Da forma discutida em relação às figuras 47, o dispositivo de mídia hospedeiro 200 pode usar os relatos HID para transferir e receber cargas úteis codificadas com dados de adição, tais como comandos de voz ou dados de imagem.
[0046] Em uma implementação, da forma descrita em relação às figuras 4-6, o Codificador/Decodificador 224 pode codificar uma carga útil com uma imagem codificada em um protocolo Bluetooth® de Baixa Energia. A carga útil pode fazer com que o dispositivo de controle periférico apresente a imagem como uma função de controle associada com um contexto que corresponde a um serviço de mídia que é renderizado por um visor associado com o dispositivo de mídia hospedeiro 200. Em uma implementação, a carga útil pode incluir dados de áudio codificados em um Bluetooth® de Baixa Energia, em que os dados de áudio são usados pelo dispositivo de controle periférico como uma função de controle associada com um contexto que corresponde a um serviço de mídia que é renderizado por um visor associado com o dispositivo de mídia hospedeiro 200.
[0047] A figura 3 ilustra um exemplo de dispositivo de controle periférico 300 de acordo com uma ou mais implementações da presente descrição. O dispositivo de controle periférico 300 é um exemplo de um dispositivo de computação (por exemplo, dispositivo de controle periférico 150 da figura 1) que pode ser configurado para transmitir comandos de controle e receber dados a partir de um dispositivo de mídia hospedeiro (por exemplo, dispositivo de mídia hospedeiro 110 da figura 1, dispositivo de mídia hospedeiro 200 da figura 23). O dispositivo de controle periférico 300 permite que um usuário acesse múltiplos conjuntos de funções de controle associados com conteúdo multimídia apresentado em um visor associado com o dispositivo de mídia hospedeiro.
[0048] O dispositivo de controle periférico 300 pode ser dispositivo com recurso restrito que pode conectar em um dispositivo de mídia hospedeiro mais poderoso (por exemplo, mais recursos, largura de banda, etc.) e executar uma ou mais aplicações. Em um exemplo, o dispositivo de controle periférico 300 pode incluir, mas sem limitações, uma ou mais interface(s) de comunicação 305, unidade(s) de processamento central 310, memória 312, interface(s) de usuário 315 para apresentar funções de controle para um usuário.
[0049] A unidade de processamento central (CPU) 310 pode ser configurada para implementar funcionalidade e/ou instruções de processo para execução no dispositivo de controle periférico 300. A CPU 310 pode ser capaz de recuperar e processar instruções, código e/ou estruturas de dados para implementar uma ou mais das técnicas aqui descritas. Instruções podem ser armazenadas em uma mídia legível por computador, tal como a memória 312. A CPU 310 pode incluir unidades de processamento central multinúcleos.
[0050] A(s) interface(s) de comunicação 305 pode(m) incluir um cartão da interface de rede, tal como um cartão Ethernet, um transceptor ótico, um transceptor de radiofrequência ou qualquer outro tipo de dispositivo configurado para enviar e receber informação. A(s) interface(s) de comunicação 305 pode(m) ser configurada(s) para comunicar com o dispositivo de mídia hospedeiro e operar de acordo com um ou mais protocolos de comunicação, tais como, por exemplo, um padrão de Comunicações Móveis do Sistema Global (GSM), um padrão de acesso múltiplo por divisão de código (CDMA), um padrão do Projeto de Parceria da 3a Geração (3GPP), um padrão do Protocolo da Internet (IP), um padrão do Protocolo de Aplicação Sem Fio (WAP), padrão Bluetooth, ZigBee e/ou IEEE, tais como, um ou mais dos padrões 802.11, bem como várias combinações dos mesmos. Dados enviados ou recebidos podem incluir pacotes codificados com comandos de controle para operação de um ou mais serviços de mídia.
[0051] A memória 312 pode ser uma mídia de armazenamento legível por computador não transitória ou tangível. Em alguns exemplos, a memória 312 pode prover armazenamento temporário e/ou de longo prazo e representar memória volátil e/ou não volátil. A memória 312 pode incluir um disco rígido interno ou unidade em estado sólido, um módulo da memória de acesso aleatório, um dispositivo de memória MultiMediaCard (eMMC) embutido e/ou um ou mais caches (por exemplo, caches de CPU e/ou caches de GPU). [0052] A memória 312 pode ser configurada para armazenar informação que pode ser usada pelo dispositivo de controle periférico 300 durante a operação. A memória 312 pode ser usada para armazenar instruções de programa para execução pela CPU 310 e pode ser usada por software ou aplicações 320 em execução no dispositivo de controle periférico 300 para armazenar temporariamente informação durante a execução do programa. Por exemplo, a memória 312 pode armazenar instruções associadas com o sistema operacional 322, aplicações do codificador/decodificador 324, uma aplicação de controle de contexto 330.
[0053] Aplicações 320 podem ser usadas para coletar e transmitir entrada do usuário para o dispositivo de mídia hospedeiro para causar controle do conteúdo digital executado pelo dispositivo de mídia hospedeiro 200. Aplicações 320 podem incluir aplicações implementadas em ou executadas pelo dispositivo de controle periférico 300 e podem ser implementadas ou contidas em, operáveis por, executadas por e/ou ser operativamente/comunicativamente acopladas em componentes do dispositivo de controle periférico 300. Em um exemplo, aplicações 320 podem fazer com que o dispositivo de controle periférico 300 receba e decodifique funções de controle atualizadas, apresente opções de controle para um usuário que são relevantes para uma aplicação de mídia ativa em um visor principal, colete entrada do usuário, codifique a entrada do usuário ou funções de controle selecionadas para transmissão para o dispositivo de mídia hospedeiro. As aplicações 320 incluem um driver de HID e software de gerenciamento de driver para processar comunicação sem fio em relação ao dispositivo de mídia hospedeiro 200.
[0054] Aplicações 320 podem incluir e ser executadas pelo sistema operacional 322. O sistema operacional 322 pode ser configurado para facilitar a interação de aplicações (por exemplo, Aplicações de Codificador/Decodificador 324, controle de contexto 330) com CPU 310, e outros componentes de hardware do dispositivo de controle periférico 300. Componentes do sistema operacional 322 e componentes que agem em conjunto com o sistema operacional 322 podem ser de recurso restrito.
[0055] Uma aplicação de controle de contexto 330 em execução no dispositivo de controle periférico 300 pode ser configurada para receber dados (por exemplo, um identificador de contexto) a partir do dispositivo de mídia hospedeiro 200 e receber um identificador de contexto usado para carregar um conjunto de funções de controle que corresponde a um contexto e/ou um subcontexto do dispositivo de mídia hospedeiro 200. O controle de contexto 330 pode fazer com que uma ou mais interfaces de usuário 315 apresentem um conjunto de funções de controle que correspondem ao contexto do dispositivo de mídia hospedeiro para permitir o eficiente controle de um ou mais serviços de mídia.
[0056] A(s) interface(s) de usuário 315 pode(m) incluir dispositivos configurados para receber entrada a partir de um usuário durante a operação do dispositivo de controle periférico 300. Por exemplo, a(s) interface(s) de usuário 315 pode(m) incluir botões e chaves, sensores de movimento (por exemplo, acelerômetros), sensores sensíveis ao toque, uma plataforma sensível ao toque, um mouse, um teclado, um microfone, uma câmera de vídeo ou qualquer outro tipo de dispositivo configurado para receber entrada do usuário.
[0057] Em alguns exemplos, um dispositivo de controle periférico 300 que inclui interfaces de usuário(s) 315 pode ser operativamente acoplado no dispositivo de mídia hospedeiro 200 usando um protocolo de comunicação padronizado, tal como, por exemplo, protocolo do Barramento Serial Universal (USB), Bluetooth de Baixa Energia, ZigBee ou um protocolo de comunicações proprietário, tal como, por exemplo, um protocolo de comunicações infravermelho proprietário. A(s) interface(s) de usuário 315 pode(m) incluir um visor configurado para exibir as interfaces gráficas de usuários, da forma descrita em relação à figura 5. Por exemplo, no caso em que o dispositivo de mídia hospedeiro 200 incluir uma televisão, o dispositivo de controle periférico 300 em comunicação com uma televisão pode incluir uma interface de usuário que inclui um visor sensível ao toque que apresenta uma interface gráfica de usuário. Por exemplo, um usuário pode prover comandos para o dispositivo de mídia hospedeiro 200 pela ativação de partes de um visor sensível ao toque.
[0058] Em um exemplo de implementação, a aplicação de controle de contexto 330 pode carregar funções de controle (por exemplo, teclas virtuais, ícones de imagem, etc.) aplicáveis ou relacionadas à aplicação de mídia 240 do dispositivo de mídia hospedeiro 200 que está ativo no visor 115. A interface de usuário 315 do dispositivo de controle periférico 300 pode apresentar para o usuário informação textual e informação de canal relevante para informação ativa no visor 115 do dispositivo de mídia hospedeiro 200. Por exemplo, o visor 115 do dispositivo de mídia hospedeiro 200 pode ter uma tela de aplicação de TV ao vivo na TV com funções de controle contextuais, tal como permitir que o usuário selecione legenda, controle de volume, definições, tais como vídeo, linguagem do áudio, seleção de linguagem de legenda, etc.
[0059] A interface de usuário 315 do dispositivo de controle periférico 300 pode apresentar um conjunto de funções de controle (isto é, teclas virtuais) aplicável para a tela ou o contexto em que a tela está atualmente funcionando. Por exemplo, a interface de usuário 315 do dispositivo de controle periférico 300 pode apresentar um conjunto de teclas para controlar uma aplicação de transmissão contínua que corresponde a uma aplicação de transmissão contínua executada pelo STB e exibida na tela principal. Quando uma funcionalidade de busca da aplicação for apresentada na tela principal, a interface de usuário 315 do dispositivo de controle periférico 300 pode apresentar um conjunto de teclas virtuais que corresponde à funcionalidade de busca ou apresentar um conjunto de resultados de busca. Teclas podem ser facilmente estendidas assim, sem nenhum custo adicional de uma nova mudança no controle remoto de hardware. Novos recursos e mapeamento direto de tecla podem ser exibidos e controlados pela aplicação. [0060] Codificador/Decodificador 324 pode ser usado com as uma ou mais interfaces de comunicação 305 para comunicar com o dispositivo de mídia hospedeiro usando um ou mais protocolos sem fio. Em uma implementação, a interface de comunicação é configurada para comunicação Bluetooth® de Baixa Energia (BLE) com o dispositivo de mídia hospedeiro. Codificador/Decodificador 324 é usado para comunicar dados associados com o contexto aplicação 330 ou outras aplicações. O Perfil de Atributo Genérico pode ser usado para associar com um Protocolo de Atributo que estabelece operações comuns e uma estrutura para os dados transportados e armazenados pelo Protocolo de Atributo. Codificador/Decodificador 324 pode enviar dados transportados sobre o Protocolo de Atributo e pode aceitar solicitações do Protocolo de Atributo, comandos e confirmações a partir de um s, GATT, tal como o dispositivo de mídia hospedeiro.
[0061] HID sobre GATT segue um protocolo definido para manter a compatibilidade universal. A especificação HID define três tipos de transferência de dados permitidas, em que informação é compartilhada em unidades chamadas de relatos. O formato de relato de entrada é usado para transferir dados do PCD 300 para o dispositivo de mídia hospedeiro. O formato do relato de saída é usado para transferir dados do dispositivo de mídia hospedeiro para o PCD 300. No relato de recurso, informação se desloca tanto a partir do dispositivo de mídia hospedeiro quanto do PCD. [0062] Em algumas implementações, o dispositivo de controle periférico 300 pode transmitir ou receber dados adicionais codificados como um relato HID. Codificador/Decodificador 324 pode incluir funcionalidade para transformar os dados adicionais em um formato para transferência como um relato HID. O dispositivo de controle periférico 300 pode incluir uma interface de usuário 315 com um microfone para coletar comandos de voz. Codificador/Decodificador 324 pode codificar o comando de voz em um formato comprimido e anexar informação de cabeçalho e trailer para transmitir o comando de voz como um relato de entrada HID.
[0063] Em uma implementação, o relato de entrada pode ser usado para transferência de amostras de voz do PCD 300 para o dispositivo de mídia hospedeiro. Por exemplo, as amostras de voz podem capturar comandos com base em voz - canal para cima, canal para baixo, etc. Em um outro exemplo, o método pode ser usado para busca com base em voz - filmes por Dany Boyle, etc. O tamanho do pacote do relato de entrada pode ser configurado em um tamanho máximo (por exemplo, 20 bytes) e incluir dados de cabeçalho específicos de Bluetooth. Amostras de voz de entrada podem ser codificadas em modulação por código de pulso diferencial adaptativa (ADPCM). Modulação por código de pulso diferencial adaptativa é uma variante de modulação por código de pulso diferencial (DPCM) que varia o tamanho da etapa de quantização, para permitir redução adicional da largura de banda exigida para uma dada razão de sinal por ruído. Modulação por código de pulso (PCM) é um método usado para representar digitalmente sinais analógicos amostrados. Em um fluxo contínuo PCM, a amplitude do sinal analógico pode ser amostrada regularmente em intervalos uniformes, e cada amostra pode ser quantizada no valor mais próximo em uma faixa de etapas digitais.
[0064] Em uma implementação, uma captura de voz pode ser iniciada pelo PCD 300 usando amostras PCM que são coletadas. Amostras PCM podem ser codificadas 324 em amostras ADPCM. ADPCM pode ser usado para reduzir dados de áudio de 16 bits para 4 bits. As amostras de voz comprimidas podem ser codificadas 324 e transferidas para o dispositivo de mídia hospedeiro 200 por meio de relatos de entrada HID.
[0065] O dispositivo de mídia hospedeiro 200 pode receber e armazenar temporariamente todas as amostras até que captura de voz seja interrompida. O decodificador 224 do dispositivo de mídia hospedeiro 200 decodifica ADPCM em amostras PCM para processamento pelo gerenciador de comando. No dispositivo de mídia hospedeiro 200, o relato de entrada inicia com uma notificação e subsequentes relatos incluem um identificador fixo para os dados de voz coletados. Uma vez que a coletânea das amostras de voz estiver completa, os dados processados em relação ao decodificador para o formato ADPCM são decodificados em dados de áudio PCM para processamento pelo gerenciador de comando do dispositivo de mídia hospedeiro 200.
[0066] Em um outro exemplo, o dispositivo de controle periférico 300 pode receber um relato de saída codificado com dados de imagem. O Codificador/Decodificador 324 pode decodificar o relato de saída e analisar sintaticamente a informação de cabeçalho e trailer para extrair os dados de imagem para uso pelo dispositivo de controle periférico 300. Da forma discutida em relação às figuras 4 - 7, o dispositivo de controle periférico 300 pode usar os relatos HID para transferir e receber cargas úteis codificadas com dados de adição, tais como comandos de voz ou dados de imagem.
[0067] A figura 4 é um fluxograma de um exemplo do método de gerenciamento de contexto 400 de acordo com uma ou mais implementações da presente descrição. Em um exemplo de implementação, um método pode ser realizado por lógica de processamento que pode compreender hardware (por exemplo, sistema de circuitos, lógica dedicada, lógica programável, microcódigo, etc.), software (por exemplo, instruções executadas em um dispositivo de processamento) ou uma combinação dos mesmos. Em uma implementação, o método é realizado por uma aplicação de controle de contexto (por exemplo, controle de contexto 330 da figura 3) executada por um dispositivo de processamento de um PCD (por exemplo, CPU 310 da figura 3). O PCD pode estar em comunicação com um dispositivo de mídia hospedeiro e um visor associado (por exemplo, projetor, TV, etc.). O dispositivo de processamento pode suportar múltiplos contextos que coordenam um ou mais conjuntos de opções de controle disponíveis por meio do PCD com as atividades ou o contexto do dispositivo de mídia hospedeiro. [0068] No bloco 410, o dispositivo de processamento apresenta um conjunto de funções de controle por meio de uma interface de um dispositivo de controle periférico. A função de controle inclui um comando associado com um ou mais contextos de mídia de um dispositivo de mídia hospedeiro. Em algumas implementações, o dispositivo de processamento inclui uma interface de tela sensível ao toque e apresenta um conjunto de botões virtuais, imagens ou ícones que representam as funções de controle.
[0069] As funções de controle presentes na interface do PCD podem ficar inoperáveis com um contexto de mídia primário ativo no dispositivo de mídia hospedeiro. Um contexto de mídia pode ser associado com um serviço de mídia, tais como um serviço de busca, um serviço de mídia em televisão, um serviço de mídia em transmissão contínua, um serviço de mídia sob demanda, um serviço de mídia local, etc. O contexto de mídia primário é o serviço de mídia apresentado em um visor principal pelo dispositivo de mídia hospedeiro.
[0070] O conjunto de funções de controle apresentado em uma interface do PCD é comumente não associado com o contexto de mídia primário ativo na exibição principal pelo dispositivo de mídia hospedeiro que causa confusão ao usuário. Por exemplo, quando o visor principal pelo dispositivo de mídia hospedeiro for ativado depois de um período de inatividade, a interface do PCD pode ter perambulado ou mudado involuntariamente e, assim, as funções de controle presentes na interface do PCD não correspondem às opções de controle relevantes para o contexto de mídia primário. Em alguns casos, há múltiplos meios para mudar o contexto de mídia primário ativo na exibição principal e as opções de controle na interface do PCD ficam desatualizadas. Por exemplo, o dispositivo de mídia hospedeiro pode experimentar uma falha de potência e redefinir em um contexto diferente, um usuário pode usar uma interface física no dispositivo de mídia hospedeiro para mudar o contexto primário, ou o dispositivo de mídia hospedeiro pode ser preprogramado ou agendado para mudar o contexto de mídia primário ativo na exibição principal, para citar alguns. [0071] No bloco 420, o dispositivo de processamento decodifica uma carga útil proveniente do dispositivo de mídia hospedeiro com um identificador de contexto codificado. O identificador de contexto indica o contexto de mídia primário ativo no dispositivo de mídia hospedeiro. Em uma implementação, o dispositivo de mídia hospedeiro pode enviar a carga útil com identificador de contexto em resposta a uma solicitação pelo dispositivo de processamento para mudar o contexto do contexto de mídia primário ativo no dispositivo de mídia hospedeiro. A solicitação pelo dispositivo de processamento pode incluir o identificador de contexto e o dispositivo de mídia hospedeiro pode carregar um contexto de mídia primário associado com o identificador de contexto em um visor principal do dispositivo de mídia hospedeiro. O dispositivo de mídia hospedeiro pode enviar a carga útil com o identificador de contexto em resposta ao lançamento com sucesso do contexto de mídia primário como uma confirmação que a solicitação original pelo dispositivo de processamento está completa.
[0072] Em algumas implementações, o dispositivo de processamento recebe a carga útil com um identificador de contexto com base em um intervalo temporizado para manter coordenação de contexto entre o dispositivo de mídia hospedeiro e PCD. Por exemplo, uma carga útil pode ser distribuída a cada 30 segundos ou mais frequentemente com base em uma frequência de interação entre o dispositivo de processamento e o dispositivo de mídia hospedeiro.
[0073] Em algumas implementações, o dispositivo de mídia hospedeiro envia a carga útil com identificador de contexto como parte de uma resposta de erro. Por exemplo, o dispositivo de mídia hospedeiro pode enviar uma carga útil com um identificador de contexto em resposta à recepção de uma primeira função de controle associada com um primeiro identificador de contexto e determinar que a primeira função de controle não é associada com o contexto de mídia primário ativo no dispositivo de mídia hospedeiro. Neste exemplo, o dispositivo de processamento recebe a carga útil em resposta ao envio de um comando prévio que não corresponde ao contexto ativo no dispositivo de mídia hospedeiro.
[0074] Em uma implementação, o dispositivo de processamento comunica com o dispositivo de mídia hospedeiro por meio de protocolo, tais como Bluetooth de Baixa Energia ou ZigBee, e o identificador de contexto é recebido como um valor codificado em um relato HID. O dispositivo de processamento que decodifica a carga útil para determinar o identificador de contexto pode incluir, por exemplo, analisar sintaticamente a informação de cabeçalho e trailer.
[0075] No bloco 430, o dispositivo de processamento determina uma ou mais funções de controle correspondentes ao identificador de contexto. Em uma implementação, o dispositivo de processamento pode incluir um índice que indica as funções de controle associadas com um identificador de contexto. Por exemplo, o PCD pode ter um índice armazenado de funções de controle com identificadores de contexto associados. Em uma implementação, o dispositivo de processamento pode solicitar um índice que indica as funções de controle associadas com um identificador de contexto. Por exemplo, o dispositivo de processamento pode solicitar um índice do dispositivo de mídia hospedeiro ou uma aplicação de mídia associada com o identificador de contexto.
[0076] O processamento pode buscar a memória com base no identificador de controle e no índice para acessar funções de controle localmente armazenadas disponíveis na memória do PCD. O dispositivo de processamento pode carregar a função de controle determinada da memória e apresentar a função de controle por meio da interface. Por exemplo, o dispositivo de processamento pode determinar que o identificador de contexto é associado com um conjunto de funções de controle de reprodução e apresentar um conjunto de ícones de reprodução na interface. Em uma implementação, o dispositivo de processamento pode determinar que uma ou mais funções de controle associadas com o identificador de contexto estão indisponíveis na memória do PCD e acessar funções de controle remotamente armazenadas. Por exemplo, o dispositivo de processamento pode acessar um serviço em nuvem para transferência como uma ou mais funções de controle associadas com o identificador de contexto.
[0077] No bloco 440, o dispositivo de processamento muda o conjunto de funções de controle na interface do PCD para incluir as uma ou mais funções de controle que podem comandar o contexto de mídia primário. Por exemplo, o dispositivo de processamento pode atualizar a interface de tela sensível ao toque para adicionar ou remover botões virtuais, imagens ou ícones. O dispositivo de processamento em comunicação com o dispositivo de mídia hospedeiro atualiza ativamente a interface do PCD para apresentar para o usuário opções de controle que são relevantes para o contexto do dispositivo de mídia hospedeiro.
[0078] As figuras 5A-B ilustram exemplo de interfaces 500 de um dispositivo de controle periférico de acordo com uma ou mais implementações da presente descrição. A interface de usuário 500 pode ser um visor de um dispositivo de controle periférico programável 500 (por exemplo, dispositivo de controle periférico 300 da figura 3). A funcionalidade da interface de usuário 500 pode ser implementada usando diferentes tipos de interfaces. Em alguns exemplos, a interface de usuário 500 pode incluir um microfone e/ou sensores de movimento e pode ser configurada para receber entrada de voz e movimento. Por exemplo, no caso em que uma interface de usuário 500 incluir uma tela sensível ao toque, reconhecimento de gesto e/ou reconhecimento de voz, botões virtuais podem ser apresentados na tela sensível ao toque e funções alcançadas pela ativação de botões na interface de usuário 500 podem ser alcançadas através de toda e qualquer combinação de ativação de botão virtual, gestos de movimento e/ou comandos de voz. Da forma ilustrada na figura 5A, a interface de usuário 500 do dispositivo de controle periférico 500 pode incluir exibição em tela sensível ao toque.
[0079] A interface de usuário da tela sensível ao toque 500 pode incluir qualquer dispositivo de exibição configurado para exibir elementos gráficos e receber uma entrada de toque do usuário. Por exemplo, interfaces de exibição em tela sensível ao toque 500 podem incluir um visor LCD, um visor OLED ou qualquer outro tipo de dispositivo de exibição capaz de apresentar dados visuais para um usuário, e um dispositivo sensor de toque capacitivo, um dispositivo sensor de toque resistivo ou qualquer outro tipo de dispositivo capaz de receber eventos de toque de usuário. A interface de tela sensível ao toque 500 pode ser configurada para receber eventos de toque de usuário diretamente ou indiretamente (por exemplo, usando uma caneta stylus). A interface de usuário da tela sensível ao toque 500 pode ser configurada para exibir ícones que representam itens de conteúdo. A interface de usuário da tela sensível ao toque 500 pode receber várias entradas de toque de usuário, tais como, um único toque, um toque duplo, um pressionamento de uma duração especificada (por exemplo, um pressionamento longo), uma entrada de toque em múltiplos pontos (por exemplo, um gesto de pinçar), e gestos de toque complexos (por exemplo, gesto de arrastar e soltar, gestos de escrita de caractere e gestos de passar). Adicionalmente, em alguns exemplos, a interface de usuário da tela sensível ao toque 500 pode ser sensível a pressão e fazer com que diferentes tipos de ativações ocorram com base na quantidade de pressão que um usuário aplica na interface de usuário da tela sensível ao toque 500 (isto é, quão "duro" um usuário pressiona).
[0080] A interface de usuário da tela sensível ao toque 500 pode ser configurada para habilitar um usuário a realizar múltiplos tipos de ativações em relação às regiões 502-505 da interface de usuário da tela sensível ao toque 500, em que uma região 502 pode apresentar um ou mais elementos gráficos (por exemplo, um ícone) para ativar uma função de controle. A interface de usuário 500 pode incluir regiões designada 502-505 que podem ser usadas para agrupar conjuntos de opções de controle.
[0081] No exemplo ilustrado na figura 5A, a interface de usuário da tela sensível ao toque 500 exibe botões virtuais e uma interface gráfica de usuário nas respectivas regiões 502-505. Botões virtuais podem replicar botões de pressionamento, incluindo, por exemplo, um ou mais dos botões para uma operação de controle. Um usuário pode ativar um botão virtual pela ativação de uma área correspondente na interface de usuário da tela sensível ao toque 500. Em algumas instâncias, botões virtuais podem ser referidos como teclas em software. Em algumas implementações, a interface de usuário 500 pode incluir regiões 502-503 que apresentam ícone de atalho configurado para facilitar a funcionalidade em relação a uma aplicação em particular, serviço de mídia, interface gráfica de usuário, ou item em particular do conteúdo digital atualmente em execução em um dispositivo de mídia hospedeiro.
[0082] Uma aplicação de controle de contexto em execução no dispositivo de controle periférico pode ser configurada para receber dados (por exemplo, um identificador de contexto) a partir do dispositivo de mídia hospedeiro e determinar um ou mais conjuntos de funções de controle para apresentar no visor 500. O identificador de contexto pode ser associado com um conjunto de funções de controle para controlar uma aplicação atualmente em execução no dispositivo de mídia hospedeiro. Em uma implementação, o dispositivo de controle periférico 500 pode apresentar um primeiro conjunto de funções de controle (por exemplo, controle de reprodução) em uma primeira região 503 do visor. Um identificador de subcontexto pode ser associado com um conjunto de funções de controle adicional para controlar um aspecto em particular de uma aplicação em execução em um dispositivo de mídia hospedeiro. Ícones específicos de aplicação e funções de controle podem ser com base em um contexto e/ou um subcontexto. Em uma implementação, o dispositivo de controle periférico 500 pode apresentar um segundo conjunto de funções de controle (por exemplo, atalhos) em uma outra região 505 do visor.
[0083] Nos exemplos ilustrados na figura 5B, diferentes grupos de funções de controle podem ser exibidos como atalhos, texto, ícone ou combinação relevantes em uma das regiões 502-505, e incluem opções de controle específicas de aplicação mapeadas para funções de controle de uma aplicação de mídia. O dispositivo de controle periférico inclui software de controle de contexto para corresponder o conjunto de funções de controle exibidas 500 a um contexto da aplicação de mídia em execução no dispositivo de mídia hospedeiro. Em uma implementação, a interface de usuário 500 exibe funções de controle como ícones de atalho para prover para o usuário maior eficiência de flexibilidade para controlar o dispositivo de mídia hospedeiro.
[0084] Nos exemplos ilustrados na figura 5B, opções de controle específicas de contexto 510, 520, 530, 550, 560 podem incluir botões virtuais como ícones que são associados com funções de controle relevantes para um serviço de mídia ativo no dispositivo de mídia hospedeiro. Por exemplo, em resposta ao dispositivo de controle periférico que recebe um identificador de contexto associado com um tradicional serviço de televisão, um grupo de contexto de televisão numérico 510 pode apresentar botões virtuais na região 503 que replica um teclado numérico 511, um botão enter 512, um botão de canal prévio 513 e botões do controle de volume 515.
[0085] Em alguns exemplos, a região 502-505 pode mudar para corresponder um diferente contexto usado para realizar outras funções associadas com um diferente serviço de mídia. Dispositivos com capacidades de reprodução de mídia digital, incluindo, por exemplo, televisões, receptores/decodificadores integrados e dispositivos móveis, podem ser configurados para prover para os usuários das mesmas interfaces gráficas de usuário que habilitam a seleção de conteúdo. Opções de controle específicas de contexto podem ser customizadas para uma aplicação específica ou incluir opções gerais que podem ser mapeadas para aplicações específicas. Por exemplo, uma opção de controle específica do contexto de computador 540 pode incluir ícones para fazer com que o dispositivo de mídia hospedeiro lance uma aplicação de computador em particular na exibição principal, tais como aplicação de clima, lista de tarefas, placares esportivos, etc.
[0086] Opções de controle específicas de contexto podem ser representadas por ícones associados com logotipos de rede de televisão que, mediante ativação (por exemplo, uma ativação por toque, uma ativação por clique, etc.), pode fazer com que um sintonizador do dispositivo de mídia hospedeiro sintonize no canal de televisão em particular (ou fazer com que o dispositivo de mídia hospedeiro acesse um fluxo contínuo de mídia em particular). No caso em que opções específicas de aplicação forem associadas com canais de televisão, canais de televisão podem corresponder a canais recentemente visualizados e/ou um conjunto de canais determinados pela informação incluída em um perfil de usuário. Adicionalmente, em um exemplo, canais de televisão representados por ícones associados com opções de controle específicas de contexto podem espelhar canais exibidos em uma interface gráfica de usuário.
[0087] Por exemplo, um visor principal (por exemplo, visor 115 da figura 1) pode incluir canais AMC, FOX, NBC, CBS, BBC, Showtime e HBO do dispositivo de mídia hospedeiro 110 como parte de uma interface gráfica de usuário. Neste caso, ícones específicos de aplicação podem incluir ícones que representam AMC, FOX, NBC, CBS, BBC, Showtime e HBO. De uma maneira similar, quando uma interface gráfica de usuário associada com uma aplicação de conteúdo sob demanda for apresentada em um visor, ícones específicos podem representar ícones correspondentes a itens de conteúdo. Por exemplo, opções específicas de contexto podem representar os filmes quando o visor 115 apresentar um filme. Desta maneira, a interface de usuário 503 é configurada para apresentar dinamicamente ícones que podem ser ativados por um usuário e receber entrada do usuário, incluindo ativações em múltiplos níveis.
[0088] Com base nas entradas de usuário recebidas providas para um dispositivo de controle periférico, o dispositivo de mídia hospedeiro pode fazer com que mudanças ocorram em relação a um item de conteúdo e/ou interfaces gráficas de usuário apresentadas na exibição principal e/ou na interface de usuário 500 do dispositivo de controle periférico. Em alguns exemplos, as opções de controle específicas de contexto 510, 520, 530, 550, 560 podem ser apresentadas a um usuário em resposta a uma seleção de usuário. Por exemplo, um usuário pode selecionar uma função de controle para ativar um fluxo contínuo de mídia em particular (por exemplo, menu 534) e o dispositivo de controle periférico pode exibir um grupo de subcontexto de opções de controle específicas (por exemplo, opções de menu de transmissão contínua 560) em uma outra região 505 independente do dispositivo de mídia hospedeiro.
[0089] Em outros exemplos, a interface de usuário 500 pode exibir elementos gráficos com base em movimento, animações, vídeo e congêneres e pode habilitar complexas interações de usuário (por exemplo, assim denominadas aplicações de segunda tela). Por exemplo, interfaces de usuário 500 podem habilitar que um usuário jogue um jogo (por exemplo, um jogo de trivia ou um videogame) ou reproduza um teclado exibido nas regiões 502505. Adicionalmente, a interface de usuário 500 pode exibir informação associada com um item de conteúdo renderizado em um visor associado com um dispositivo de computação (por exemplo, uma sinopse da trama de um filme). Por exemplo, uma seleção de usuário de um botão de informação 533 pode fazer com que informação complementar apareça em uma outra região 504.
[0090] A interface de usuário 500 também pode apresentar funções de controle como elementos gráficos, ícones ou texto que representa um item de conteúdo. Em um exemplo, a interface gráfica de usuário pode incluir uma interface gráfica de usuário de busca ativada por voz. Por exemplo, mediante um usuário dizer o nome de uma atriz, a interface gráfica de usuário 500 pode exibir uma lista de filmes associados com a atriz.
[0091] Em uma implementação, a interface inclui um microfone, e o PCD recebe dados de voz por meio da interface, comprime os dados de voz em um formato de Modulação de Código de Pulso Diferencial Adaptativo; e transmite os dados de voz comprimidos para o dispositivo de mídia hospedeiro para comandar o contexto de mídia primário.
[0092] Em um exemplo do contexto de mídia, a região 503 pode apresentar controle de reprodução 520 configurado para habilitar um usuário a controlar a reprodução e/ou gravação de conteúdo multimídia. Por exemplo, a região 503 que corresponde a um contexto de reprodução pode habilitar um usuário a controlar a reprodução de um vídeo que origina a partir de uma página da Internet do provedor do serviço de mídia, um motor sob demanda e/ou um gravador de vídeo pessoal (PVR). A região 502 que corresponde a um contexto de reprodução pode incluir botão de reprodução reversa 521, botão de reprodução normal 522, botão de reprodução para frente 523, botão de interrupção da reprodução 524, botão de pausa da reprodução 525 e botão de gravação 526. O botão de reprodução reversa 521 pode habilitar que um usuário navegue para um ponto prévio em uma sequência multimídia.
[0093] Mediante ativação, o botão de reprodução normal 522 pode fazer com que o dispositivo de mídia hospedeiro apresente a reprodução normal de um item de conteúdo multimídia para começar ou retomar na exibição principal. O botão de reprodução para frente 523 pode habilitar um usuário a navegar para um ponto futuro em uma sequência multimídia. O botão de gravação 526 pode habilitar um usuário a fazer com que um item de conteúdo multimídia seja armazenado em um dispositivo de armazenamento. Em um exemplo, o botão de gravação 526 pode habilitar um usuário a gravar conteúdo em um dispositivo de armazenamento.
[0094] Outras opções de controle específicas de contexto, por exemplo, 530, podem incluir opções de controle padrão ou ser associadas com múltiplos serviços de mídia. Por exemplo, uma região navegacional 504 pode ser configurada para apresentar opções de controle de navegação 530 com botões navegacionais virtuais como um conjunto de funções de controle padrão, tais como botões de seta 531, botão de seleção 532, botão de informação 533, botão de menu 534, botão de guia 535, botão voltar 536 e botão sair 537. Botões de seta navegacional 531 podem ser configurados para mover a posição de um cursor associado com uma interface gráfica de usuário e/ou mudar a seleção de um item incluído em uma interface gráfica de usuário. O botão de seleção 532 pode habilitar um usuário a selecionar adicionalmente um ícone. Em um exemplo, ativações consecutivas do botão de seleção 532 podem fazer com que respectivos níveis de seleção ocorram. O botão de informação 533 pode ser configurado para fazer com que informação adicional associada com um item de conteúdo seja exibida. Por exemplo, quando um ícone que representa um item de conteúdo for inicialmente selecionado, a ativação do botão de informação 533 pode fazer com que informação associada com o conteúdo (por exemplo, informação de elenco e equipe) seja exibida. Botão de menu 534, botão de guia 535, botão voltar 536 e botão sair 537 podem ser configurados para habilitar um usuário a fazer com que diferentes interfaces gráficas de usuário sejam apresentadas. Mediante ativação, o botão de menu 534 pode fazer com que uma interface gráfica de usuário que inclui um menu de alto nível seja exibida. Em um exemplo, um menu de alto nível pode incluir um menu que habilita que um usuário mude definições associadas com a operação de um dispositivo de computação. Em um exemplo, um menu de alto nível pode incluir um menu que habilita que um usuário selecione um perfil de usuário (por exemplo, uma interface gráfica de usuário de log-in). Mediante ativação, botão de guia 535 pode ser configurado para prover uma interface gráfica de usuário que habilita um usuário a selecionar conteúdo. Em um exemplo, mediante ativação do botão de guia 535, uma interface gráfica de usuário que inclui um guia de grade pode ser apresentada para um usuário. Botão voltar 536 pode ser configurado para habilitar um usuário a retornar para uma interface gráfica de usuário prévia. Botão sair 537 pode ser configurado para habilitar um usuário a retornar para um modo de visualização em tela cheia. Por exemplo, quando uma interface gráfica de usuário for exibida, mediante ativação do botão sair 537, a interface gráfica de usuário pode "desaparecer" e um modo de visualização de conteúdo em tela cheia pode ser apresentado para um usuário. [0095] A figura 6 é um fluxograma de um exemplo do método de gerenciamento de contexto 600 de acordo com uma ou mais implementações da presente descrição. Em um exemplo de implementação, um método pode ser realizado por lógica de processamento que pode compreender hardware (por exemplo, sistema de circuitos, lógica dedicada, lógica programável, microcódigo, etc.), software (por exemplo, instruções executadas em um dispositivo de processamento) ou uma combinação dos mesmos. Em uma implementação, o método é realizado por pelo menos uma aplicação do gerenciador de contexto (por exemplo, gerenciador de comando 235, gerenciador de contexto 230 e/ou Codificador/Decodificador 224, da figura 2) executada por um dispositivo de processamento de um dispositivo de mídia hospedeiro (por exemplo, CPU 210 da figura 2). O dispositivo de mídia hospedeiro pode ser associado com um visor principal (por exemplo, projetor, TV, etc.) e em comunicação com um dispositivo de controle periférico. O dispositivo de processamento pode suportar múltiplos contextos que coordenam um ou mais conjuntos de opções de controle disponíveis por meio do PCD com as atividades ou o contexto do dispositivo de mídia hospedeiro. [0096] No bloco 610, o dispositivo de processamento determina um ou mais comandos para controlar um contexto de mídia ativo do dispositivo de mídia hospedeiro. O dispositivo de mídia hospedeiro pode suportar diversos serviços de mídia, tais como um serviço de busca, serviço de mídia em televisão, serviço de mídia em transmissão contínua, serviço de mídia sob demanda, serviço de mídia local, etc. que transmitem um contexto de mídia do serviço de mídia sobre o visor principal. Por exemplo, o contexto de mídia pode ser um item de conteúdo específico, um menu ou outra interface gráfica do serviço de mídia. O contexto de mídia ativo é o contexto de mídia que é apresentado em um visor principal pelo dispositivo de mídia hospedeiro. O dispositivo de mídia hospedeiro pode gerenciar múltiplos comandos para comutação entre serviços de mídia ou contextos de serviços de mídia. Cada serviço de mídia pode ter comandos específicos de aplicação, bem como comandos específicos de contexto para permitir interação de usuário.
[0097] No bloco 620, o dispositivo de processamento codifica uma carga útil com um identificador de contexto correspondente aos um ou mais comandos. O identificador de contexto é usado pelo PCD para identificar funções de controle que correspondem aos um ou mais comandos para controlar o contexto de mídia ativo.
[0098] No bloco 630, o dispositivo de processamento transmite a carga útil codificada para o PCD. Em uma implementação, o dispositivo de processamento comunica com o PCD por meio de um protocolo, tais como Bluetooth de Baixa Energia ou ZigBee, e o identificador de contexto é codificado como um relato HID. O dispositivo de processamento codifica a carga útil, por exemplo, pelo empacotamento do identificador de controle com informação de cabeçalho e trailer de acordo com o protocolo.
[0099] No bloco 640, o dispositivo de processamento determina se o PCD inclui uma ou mais funções de controle associadas com o identificador de contexto. No bloco 650, o dispositivo de processamento faz com que o PCD apresente uma ou mais funções de controle correspondentes aos um ou mais comandos determinados do contexto de mídia ativo. Por exemplo, se o dispositivo de processamento carregar um serviço de mídia que permite que o usuário insira entrada alfanumérica, o dispositivo de processamento determina que o PCD inclui um teclado virtual para inserir entrada alfanumérica, e pode instruir o PCD a associar a entrada alfanumérica com o identificador de contexto.
[00100] Se o PCD não tiver as funções de controle armazenadas localmente, o dispositivo de processamento pode enviar para o PCD um novo conjunto de funções de controle para uso com o contexto de mídia ativo. Em uma implementação, o dispositivo de processamento pode enviar uma carga útil que inclui uma imagem codificada como um relato de saída HID. O PCD pode apresentar a imagem como funções de controle correspondentes aos um ou mais comandos determinados do contexto de mídia ativo. Por exemplo, se o dispositivo de processamento carregar um serviço de mídia ativo com canais recentemente adicionados, o dispositivo de processamento pode enviar para o PCD um conjunto de imagens associado com os logotipos de canal adicionados e um conjunto de instrução para transmitir o identificador de canal para o dispositivo de processamento. Então, o PCD pode exibir as imagens como atalhos para exibição pelo PCD para o usuário. Em resposta à recepção do identificador de canal do PCD, o dispositivo de processamento pode sintonizar o visor principal no canal.
[00101] A figura 7 ilustra um exemplo de sequência de gerenciamento de contexto 700 de acordo com uma ou mais implementações da presente descrição. Em uma implementação, o dispositivo de controle periférico pode comunicar sobre IP (Ethernet/Wifi/ZigBee) ou pelo uso de Bluetooth de Baixa Energia. Um usuário pode inicializar um dispositivo de mídia hospedeiro, por exemplo, um STB, e o dispositivo de mídia hospedeiro, então, descobre o dispositivo de controle periférico e pareia com a unidade de controle remoto. As etapas 720-730 ilustram uma sequência de descoberta e pareamento Bluetooth entre o dispositivo de mídia hospedeiro com o controlador do dispositivo periférico 712. Por exemplo, em 720, o dispositivo de mídia hospedeiro realiza uma função DiscoverDevices usando o codificador de hospedeiro 706 (por exemplo, Bluetooth) e Serviço Bluetooth do PCD 710 para getDeviceDiscovery().
[00102] O dispositivo de mídia hospedeiro 702 pode prover serviços para um papel de cliente de escaneamento com um perfil de parâmetros de escaneamento. Por exemplo, um PCD pode ter uma ou mais instâncias de Serviços HID, uma ou mais instâncias de um serviço de bateria, um serviço de informação do dispositivo, serviço de parâmetros de escaneamento, etc. O PCD pode incluir única ou múltiplas instâncias de outros serviços. Neste exemplo, o dispositivo de mídia hospedeiro 702 tem camadas superiores do software Bluetooth em execução em seu processador nativo e é conectado em um módulo de rádio Bluetooth por meio de um barramento de transporte, tal como USB. O PCD, neste exemplo, tem seu software embarcado codificado com o software embarcado de rádio, em execução na mesma CPU, para o mais baixo custo de implementação possível. Outras implementações no lado do HID são possíveis e igualmente válidas.
[00103] O Serviço Bluetooth 710 retorna uma lista de dispositivos descobertos em 724. O dispositivo de mídia hospedeiro 702 pode selecionar o nome do dispositivo de controle periférico a partir da lista de dispositivos e enviar uma solicitação para vincular os dispositivos em 726 por meio do codificador de hospedeiro 706 que inclui um driver de protocolo para comunicar com o PCD (por exemplo, Bluetooth, Zigbee, ou outro protocolo HID) para PairBtDevice(Nome do Dispositivo) em 728. O Serviço Bluetooth do PCD 710 que autoriza a solicitação irá retornar uma mensagem para o dispositivo de mídia hospedeiro para confirmar um PairingSuccess() em 730. [00104] O dispositivo de mídia hospedeiro 702 pode executar o gerenciador de contexto do hospedeiro 708 e o PCD pode executar o controlador de contexto do PCD 712 para facilitar o gerenciamento de contexto que coordena possíveis comandos de controle de um serviço de mídia ativo 704 no dispositivo de mídia hospedeiro 702 com opções de controle apresentadas para o usuário pelo PCD. Isto é, a sequência de gerenciamento de contexto 700 é para indicar para o PCD as opções de controle que são relevantes para o serviço de mídia 704 que está ativo no dispositivo de mídia hospedeiro, de forma que o PCD possa apresentar as opções de controle relevantes para o usuário.
[00105] Em um cenário de exemplo, o dispositivo de mídia hospedeiro 702 pode iniciar ou inicializar em 732 e ativar um serviço de mídia 704, por exemplo, carregar um serviço LiveTV 734. Já que o contexto ativo do dispositivo de mídia hospedeiro 702 ou as opções de controle apresentadas no PCD podem ter mudado desde a última vez que os dois dispositivos foram usados em conjunto, o software do gerenciamento de contexto pode mudar as opções de controle apresentadas pelo PCD para ser relevantes para a aplicação de mídia 702. Por exemplo, o serviço de mídia 704 pode carregar no último estado TuneChannel(lastViewedChannel) em 736. O controlador de contexto do hospedeiro 708 pode determinar o contexto ativo que recebe sendContextinfo(liveTVinfo) em 738.
[00106] Em 740, o gerenciador de contexto do hospedeiro 708 pode determinar os comandos associados com o contexto ativo do serviço de mídia 704 pelo processamento da informação de contexto. Para garantir coordenação confiável e de baixo custo com o PCD, o protocolo HID sobre GATT pode ser usado para codificar uma carga útil com a informação de contexto (LiveTVinfo) em 742. O software mediador codifica pacotes contextuais e envia os mesmos para o driver Bluetooth sobre um protocolo Bluetooth estendido. O PCD pode receber uma mensagem a partir do driver e desempacotar os detalhes na aplicação do PCD. A aplicação do PCD pode decodificar a carga útil e carregar as chaves de contexto da aplicação e informação relacionada ao contexto. Por exemplo, o codificador de hospedeiro 706 no dispositivo de mídia hospedeiro 702 pode codificar a informação de contexto em uma saída HID e enviar a informação de contexto 744 para o serviço Bluetooth 710 do PCD. O serviço Bluetooth 710 pode receber os dados de mensagem codificados 746 e redecodificar a mensagem nos dados de contexto 748 que podem ser enviados para o controlador de contexto do PCD 712. O controlador de contexto do PCD 712 determina as opções de controle associadas com os pacotes decodificados em 750 e exibe as opções de controle relevantes para o usuário em 752.
[00107] A figura 8 ilustra um diagrama de blocos de uma implementação de um dispositivo de computação 800 no qual um conjunto de instruções, para fazer com que a máquina realize qualquer uma ou mais das metodologias aqui discutidas, pode ser executado. Em implementações alternativas, a máquina pode ser conectada (por exemplo, em rede) em outras máquinas em uma rede de área local (LAN), uma intranet, uma extranet ou a Internet. A máquina pode operar na capacidade de um servidor ou uma máquina cliente em um ambiente de rede cliente - servidor, ou como uma máquina par em um ambiente de rede ponto a ponto (ou distribuído). A máquina pode ser um computador pessoal (PC), um computador tipo tablet, um receptor/decodificador integrado (STB), um Assistente Pessoal Digital (PDA), um telefone celular, um aplicativo da Internet, um servidor, um roteador de rede, comutador ou ponte, ou qualquer máquina capaz de executar um conjunto de instruções (sequencial ou de outra forma) que especifica ações a ser tomadas por esta máquina. Adicionalmente, embora apenas uma única máquina seja ilustrada, o termo "máquina" também deve ser tomado para incluir qualquer coletânea de máquinas (por exemplo, computadores) que executam individualmente ou em conjunto um conjunto (ou múltiplos conjuntos) de instruções para realizar qualquer uma ou mais das metodologias aqui discutidas.
[00108] O exemplo de dispositivo de computação 800 inclui um dispositivo de processamento 802, uma memória principal 804 (por exemplo, memória exclusiva de leitura (ROM), memória flash, memória de acesso aleatório dinâmica (DRAM), tais como DRAM síncrona (SDRAM) ou DRAM Rambus (RDRAM), etc.), uma memória estática 806 (por exemplo, memória flash, memória de acesso aleatório estática (SRAM), etc.), e uma memória secundária (por exemplo, um dispositivo de armazenamento de dados 818), que comunicam umas com as outras por meio de um barramento 830.
[00109] O dispositivo de processamento 802 representa um ou mais processadores de uso geral, tais como um microprocessador, unidade de processamento central ou congêneres. Mais particularmente, o dispositivo de processamento 802 pode ser um microprocessador de computação do conjunto de instruções complexas (CISC), microprocessador do conjunto de instruções computação reduzida (RISC), microprocessador de palavra de instrução muito longa (VLIW), processador que implementa outros conjuntos de instruções, ou processadores que implementam uma combinação de conjuntos de instruções. O dispositivo de processamento 802 também pode ser um ou mais dispositivos de processamento de uso especial, tais como um circuito integrado específico de aplicação (ASIC), um arranjo de porta programável no campo (FPGA), um processador de sinal digital (DSP), processador em rede ou congêneres. O dispositivo de processamento 802 é configurado para executar a lógica de processamento (instruções 822) para realizar as operações e as etapas aqui discutidas.
[00110] O dispositivo de computação 800 pode incluir adicionalmente um dispositivo de interface de rede 808. O dispositivo de computação 800 também pode incluir uma unidade de exibição de vídeo 810 (por exemplo, uma tela de cristal líquido (LCD) ou um tubo de raios catódicos (CRT)), um dispositivo de entrada alfanumérico 812 (por exemplo, um teclado), um dispositivo de controle de cursor 814 (por exemplo, um mouse), e um dispositivo de geração de sinal 816 (por exemplo, um alto-falante).
[00111] O dispositivo de armazenamento de dados 818 pode incluir uma mídia de armazenamento legível por máquina (ou, mais especificamente, uma mídia de armazenamento legível por computador não transitória) 828 na qual são armazenados um ou mais conjuntos de instruções 822 que incorporam qualquer uma ou mais das metodologias ou funções aqui descritas. As instruções 822 também podem ficar residentes, completamente ou pelo menos parcialmente, na memória principal 804 e/ou no dispositivo de processamento 802 durante a execução das mesmas pelo sistema de computador 800, a memória principal 804 e o dispositivo de processamento 802 também constituindo a mídia de armazenamento legível por computador. [00112] A mídia de armazenamento legível por computador 828 também pode ser usada para armazenar um motor de serviço de controle de contexto 890 (da forma descrita em relação às figuras 1-7) e/ou uma biblioteca de software que contém métodos que chamam um motor de serviço de controle de contexto 890. Embora a mídia de armazenamento legível por computador 828 seja mostrada em um exemplo de implementação como uma única mídia, o termo "mídia de armazenamento legível por computador" deve ser tomado para incluir uma única mídia ou múltiplas mídias (por exemplo, uma base de dados centralizada ou distribuída e/ou caches e servidores associados) que armazenam os um ou mais conjuntos de instruções. O termo "mídia de armazenamento legível por computador" também deve ser tomado para incluir qualquer mídia diferente de uma onda portadora que é capaz de armazenar ou codificar um conjunto de instruções para execução pela máquina e que fazem com que a máquina realize qualquer uma ou mais das metodologias aqui descritas. O termo "mídia de armazenamento legível por computador" deve, desta maneira, ser tomado para incluir, mas sem limitações, memórias em estado sólido, e mídia ótica e magnética.
[00113] Em uma implementação, os módulos, componentes e outros recursos aqui descritos (por exemplo, motor de serviço de controle de contexto em relação às figuras 3-7) podem ser implementados como componentes de hardware discretos ou integrados na funcionalidade dos componentes de hardware, tais como ASICS, FPGAs, DSPs ou dispositivos similares como parte de um dispositivo de controle periférico (por exemplo, dispositivo de controle periférico 150 da figura 1). Além do mais, os módulos podem ser implementados como software embarcado ou sistema de circuitos funcional nos dispositivos de hardware. Adicionalmente, os módulos podem ser implementados em qualquer combinação de dispositivos de hardware e componentes de software, ou apenas em software.
[00114] Algumas partes da descrição detalhada foram apresentadas em termos de algoritmos e representações simbólicas de operações em bits de dados em uma memória de computador. Estas descrições e representações algorítmicas são o meio usado pelos versados na técnica nas tecnologias de processamento de dados para conduzir mais efetivamente a substância de seu trabalho para outros versados na técnica. Um algoritmo é aqui, e no geral, concebido como uma sequência autoconsistente em etapas que leva a um resultado desejado. As etapas são aquelas que exigem manipulações físicas de quantidades físicas. Usualmente, embora não necessariamente, estas quantidades tomam a forma de sinais elétricos ou magnéticos capazes de ser armazenados, transferidos, combinados, comparados e de outra forma manipulados. Se provou conveniente, às vezes, principalmente por motivos de uso comum, se referir a estes sinais como bits, valores, elementos, símbolos, caracteres, termos, números ou congêneres.
[00115] Deve ser mantido em mente, entretanto, que todos estes termos e termos similares devem ser associados com as apropriadas quantidades físicas, e são meramente rótulos convenientes aplicados nestas quantidades. A menos que especificamente declarado de outra forma, como fica aparente a partir da seguinte discussão, percebe-se que por toda a descrição, discussões que utilizam termos, tais como "receber", "apresentar", "mudar", "transferir", "determinar", "codificar", "decodificar", "causar", "receber", "identificar", "transmitir" ou congêneres, se referem às ações e processos de um sistema de computador, ou dispositivo de computação eletrônico similar, que manipula e transforma dados representados como quantidades físicas (eletrônicas) nos registros e memórias do sistema de computador em outros dados similarmente representados como quantidades físicas nas memórias ou registros do sistema de computador ou outros tais dispositivos de armazenamento, transmissão ou exibição de informação.
[00116] Implementações da presente descrição também se referem a um aparelho para realizar as operações aqui expostas. Este aparelho pode ser especialmente construído com os propósitos discutidos, ou ele pode compreender um sistema de computador de uso geral seletivamente programado por um programa de computador armazenado no sistema de computador. Um programa de computador como este pode ser armazenado em uma mídia de armazenamento legível por computador, tais como, mas sem limitações, qualquer tipo de disco, incluindo discos flexíveis, discos óticos, CD-ROMs e discos magnético-óticos, memórias exclusivas de leitura (ROMs), memórias de acesso aleatório (RAMs), EPROMs, EEPROMs, mídia de armazenamento em disco magnético, mídia de armazenamento ótico, dispositivos de memória flash, outro tipo de mídia de armazenamento acessível por máquina, ou qualquer tipo de mídia adequada para armazenar instruções eletrônicas, cada qual acoplada em um barramento do sistema de computador.
[00117] Deve-se entender que se pretende que a descrição exposta seja ilustrativa, e não restritiva. Muitas outras implementações ficarão aparentes aos versados na técnica mediante leitura e entendimento da descrição exposta. Embora a presente descrição tenha sido descrita em relação a implementações de exemplo específicas, será reconhecido que a descrição não é limitada às implementações descritas, mas podem ser praticadas com modificação e alteração no espírito e no escopo das reivindicações anexas. Desta maneira, a especificação e os desenhos devem ser considerados em um senso ilustrativo, em vez de um sendo restritivo. O escopo da descrição, portanto, deve ser determinado em relação às reivindicações anexas, juntamente com o completo escopo dos equivalentes aos quais tais reivindicações são intituladas.
REIVINDICAÇÕES

Claims (17)

1. Método para modificar a funcionalidade de um ou mais dispositivos, o método caracterizado pelo fato de que compreende: obter, em um dispositivo de controle periférico (PCD), uma primeira carga útil de contexto através de uma rede de comunicação, a primeira carga útil de contexto compreendendo um primeiro identificador de contexto, em que o primeiro identificador de contexto indica um primeiro contexto de mídia ativo em um dispositivo de mídia; identificar, no PCD, com base em um perfil de comando, uma ou mais primeiras funções de controle associadas ao primeiro contexto de mídia ativo no dispositivo de mídia, conforme indicado pelo primeiro identificador de contexto na primeira carga útil de contexto, o perfil de comando armazenado, pelo menos em parte, no PCD, e o perfil de comando mapeando as uma ou mais primeiras funções de controle para o primeiro contexto de mídia; atualizar uma primeira parte de uma interface gráfica de uma exibição no PCD para incluir um ou mais elementos que representam as uma ou mais primeiras funções de controle associadas ao primeiro contexto de mídia ativo no dispositivo de mídia e uma ou mais imagens associadas a uma ou mais primeiras funções de controle; obter, no PCD, uma segunda carga útil de contexto através da rede de comunicação, a segunda carga útil de contexto compreendendo um segundo identificador de contexto, em que o segundo identificador de contexto indica um segundo contexto de mídia ativo no dispositivo de mídia; identificar, no PCD, uma ou mais segundas funções de controle associadas ao segundo contexto de mídia, conforme indicado pelo segundo identificador de contexto na segunda carga útil de contexto; e fazer com que um ou mais elementos representando as uma ou mais segundas funções de controle associadas ao segundo contexto de mídia ativo no dispositivo de mídia e um ou mais ícones associados às uma ou mais segundas funções de controle sejam exibidos em uma segunda porção da interface gráfica.
2. Método de acordo com a reivindicação 1, caracterizado pelo fato de que compreende ainda: transmitir, a partir do PCD pela rede de comunicação, uma notificação de que uma ou mais primeiras funções de controle associadas ao primeiro identificador de contexto não estão disponíveis na memória do PCD; e receber, a partir do dispositivo de mídia pela rede de comunicação, as uma ou mais funções de primeiro controle indisponíveis.
3. Método de acordo com a reivindicação 1, caracterizado pelo fato de que identificar uma ou mais primeiras funções de controle compreende ainda: determinar que as uma ou mais primeiras funções de controle associadas ao primeiro identificador de contexto não estão disponíveis na memória do PCD; baixar as uma ou mais primeiras funções de controle associadas ao primeiro identificador de contexto; e alterar a primeira parte da interface gráfica para incluir um ou mais elementos que representam a uma ou mais primeiras funções de controle baixadas.
4. Método de acordo com a reivindicação 1, caracterizado pelo fato de que as uma ou mais imagens são indicativas de logotipos de redes de televisão e em que as uma ou mais primeiras funções de controle compreendem funcionalidade para fazer com que um sintonizador do dispositivo de mídia sintonize um canal correspondente às uma ou mais imagens.
5. Método de acordo com a reivindicação 1, caracterizado pelo fato de que as uma ou mais imagens são indicativas de aplicativos de computador, e em que a uma ou mais primeiras funções de controle compreendem funcionalidade para fazer com que o dispositivo de mídia execute os aplicativos de computador correspondentes aos ícones.
6. Método de acordo com a reivindicação 1, caracterizado pelo fato de que o primeiro contexto de mídia ativo no dispositivo de mídia é um último estado ativo no dispositivo de mídia quando o PCD foi emparelhado com o dispositivo de mídia.
7. Método de acordo com a reivindicação 6, caracterizado pelo fato de que o dispositivo de mídia é carregado no último estado ativo em resposta ao pareamento com o PCD.
8. Método de acordo com a reivindicação 1, caracterizado pelo fato de que um ou ambos do primeiro contexto de mídia e do segundo contexto de mídia estão associados a um serviço de busca, um serviço de mídia de televisão, serviço de mídia de transmissão contínua, um serviço de mídia sob demanda, ou um serviço de mídia local.
9. Meio de armazenamento não transitório legível por computador para modificar a funcionalidade de um ou mais dispositivos, caracterizado pelo fato de que compreende instruções legíveis por computador que, quando lidas por um computador, fazem com que o mesmo realize as etapas de: obter, em um dispositivo de controle periférico (PCD), uma primeira carga útil de contexto através de uma rede de comunicação, a primeira carga útil de contexto compreendendo um primeiro identificador de contexto, em que o primeiro identificador de contexto indica um primeiro contexto de mídia ativo em um dispositivo de mídia; identificar, no PCD, com base em um perfil de comando, uma ou mais primeiras funções de controle associadas ao primeiro contexto de mídia ativo no dispositivo de mídia, conforme indicado pelo primeiro identificador de contexto na primeira carga útil de contexto, o perfil de comando armazenado, pelo menos em parte, no PCD, e o perfil de comando mapeando as uma ou mais primeiras funções de controle para o primeiro contexto de mídia; atualizar uma primeira parte de uma interface gráfica de uma exibição no PCD para incluir um ou mais elementos que representam as uma ou mais primeiras funções de controle associadas ao primeiro contexto de mídia ativo no dispositivo de mídia e uma ou mais imagens associadas a uma ou mais primeiras funções de controle; obter, no PCD, uma segunda carga útil de contexto através da rede de comunicação, a segunda carga útil de contexto compreendendo um segundo identificador de contexto, em que o segundo identificador de contexto indica um segundo contexto de mídia ativo no dispositivo de mídia; identificar, no PCD, uma ou mais segundas funções de controle associadas ao segundo contexto de mídia, conforme indicado pelo segundo identificador de contexto na segunda carga útil de contexto; e fazer com que um ou mais elementos representando as uma ou mais segundas funções de controle associadas ao segundo contexto de mídia ativo no dispositivo de mídia e um ou mais ícones associados às uma ou mais segundas funções de controle sejam exibidos em uma segunda porção da interface gráfica.
10. Meio de armazenamento não transitório legível por computador, de acordo com a reivindicação 9, caracterizado pelo fato de que compreende ainda compreende instruções legíveis por computador que, quando lidas por um computador, fazem com que o mesmo realize as etapas de: transmitir, a partir do PCD pela rede de comunicação, uma notificação de que uma ou mais primeiras funções de controle associadas ao primeiro identificador de contexto não estão disponíveis na memória do PCD; e receber, a partir do dispositivo de mídia pela rede de comunicação, as uma ou mais funções de primeiro controle indisponíveis.
11. Meio de armazenamento não transitório legível por computador, de acordo com a reivindicação 9, caracterizado pelo fato de que identificar uma ou mais primeiras funções de controle compreende ainda: determinar que as uma ou mais primeiras funções de controle associadas ao primeiro identificador de contexto não estão disponíveis na memória do PCD; baixar as uma ou mais primeiras funções de controle associadas ao primeiro identificador de contexto; e alterar a primeira parte da interface gráfica para incluir um ou mais elementos que representam a uma ou mais primeiras funções de controle baixadas.
12. Meio de armazenamento não transitório legível por computador, de acordo com a reivindicação 9, caracterizado pelo fato de que as uma ou mais imagens são indicativas de logotipos de redes de televisão e em que as uma ou mais primeiras funções de controle compreendem funcionalidade para fazer com que um sintonizador do dispositivo de mídia sintonize um canal correspondente às uma ou mais imagens.
13. Meio de armazenamento não transitório legível por computador, de acordo com a reivindicação 9, caracterizado pelo fato de que as uma ou mais imagens são indicativas de aplicativos de computador, e em que a uma ou mais primeiras funções de controle compreendem funcionalidade para fazer com que o dispositivo de mídia execute os aplicativos de computador correspondentes aos ícones.
14. Sistema para modificar a funcionalidade de um ou mais dispositivos, o sistema caracterizado pelo fato de que compreende: um processador configurado para: obter, em um dispositivo de controle periférico (PCD), uma primeira carga útil de contexto através de uma rede de comunicação, a primeira carga útil de contexto compreendendo um primeiro identificador de contexto, em que o primeiro identificador de contexto indica um primeiro contexto de mídia ativo em um dispositivo de mídia; identificar, no PCD, com base em um perfil de comando, uma ou mais primeiras funções de controle associadas ao primeiro contexto de mídia ativo no dispositivo de mídia, conforme indicado pelo primeiro identificador de contexto na primeira carga útil de contexto, o perfil de comando armazenado, pelo menos em parte, no PCD, e o perfil de comando mapeando as uma ou mais primeiras funções de controle para o primeiro contexto de mídia; atualizar uma primeira parte de uma interface gráfica de uma exibição no PCD para incluir um ou mais elementos que representam as uma ou mais primeiras funções de controle associadas ao primeiro contexto de mídia ativo no dispositivo de mídia e uma ou mais imagens associadas a uma ou mais primeiras funções de controle; obter, no PCD, uma segunda carga útil de contexto através da rede de comunicação, a segunda carga útil de contexto compreendendo um segundo identificador de contexto, em que o segundo identificador de contexto indica um segundo contexto de mídia ativo no dispositivo de mídia; identificar, no PCD, uma ou mais segundas funções de controle associadas ao segundo contexto de mídia, conforme indicado pelo segundo identificador de contexto na segunda carga útil de contexto; e fazer com que um ou mais elementos representando as uma ou mais segundas funções de controle associadas ao segundo contexto de mídia ativo no dispositivo de mídia e um ou mais ícones associados às uma ou mais segundas funções de controle sejam exibidos em uma segunda porção da interface gráfica.
15. Sistema, de acordo com a reivindicação 14, caracterizado pelo fato de que o processador é ainda configurado para: transmitir, a partir do PCD pela rede de comunicação, uma notificação de que uma ou mais primeiras funções de controle associadas ao primeiro identificador de contexto não estão disponíveis na memória do PCD; e receber, a partir do dispositivo de mídia pela rede de comunicação, as uma ou mais funções de primeiro controle indisponíveis.
16. Sistema, de acordo com a reivindicação 14, caracterizado pelo fato de que o processador é configurado para identificar uma ou mais primeiras funções de controle por meio de: determinar que as uma ou mais primeiras funções de controle associadas ao primeiro identificador de contexto não estão disponíveis na memória do PCD; baixar as uma ou mais primeiras funções de controle associadas ao primeiro identificador de contexto; e alterar a primeira parte da interface gráfica para incluir um ou mais elementos que representam a uma ou mais primeiras funções de controle baixadas.
17. Sistema, de acordo com a reivindicação 14, caracterizado pelo fato de que o processador é ainda configurado para: em resposta a receber dados de voz para controlar o dispositivo de mídia por meio de uma interface do dispositivo de controle periférico (PCD), comprimir os dados de voz recebidos em uma pluralidade de amostras de voz; gerar uma série de cargas úteis em que cada carga útil compreende uma amostra de voz comprimida a partir da pluralidade de amostras de voz; e transmitir cada carga útil para o dispositivo de mídia, em que o dispositivo de mídia armazena em buffer a série de cargas úteis e determina uma ou mais segundas funções de controle correspondentes aos dados de voz.
BR102016030687-6A 2016-10-15 2016-12-27 Método, e, mídia legível por computador não transitória BR102016030687A2 (pt)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/294727 2016-10-15
US15/294,727 US20170195735A1 (en) 2015-12-31 2016-10-15 Method and apparatus for peripheral context management

Publications (1)

Publication Number Publication Date
BR102016030687A2 true BR102016030687A2 (pt) 2020-03-10

Family

ID=69896986

Family Applications (1)

Application Number Title Priority Date Filing Date
BR102016030687-6A BR102016030687A2 (pt) 2016-10-15 2016-12-27 Método, e, mídia legível por computador não transitória

Country Status (1)

Country Link
BR (1) BR102016030687A2 (pt)

Similar Documents

Publication Publication Date Title
US10637894B2 (en) Real-time placeshifting of media content to paired devices
US11240565B2 (en) Method and apparatus for peripheral context management
KR102154800B1 (ko) 전자 장치의 데이터 스트리밍 방법 및 그 전자 장치
US9756126B2 (en) Information processing device, and information processing system
WO2019001347A1 (zh) 移动设备的投屏方法、存储介质、终端及投屏系统
WO2022089271A1 (zh) 无线投屏方法、移动设备及计算机可读存储介质
US10942735B2 (en) Distributed cross-platform user interface and application projection
BR112013018566B1 (pt) Método para negociar capacidades entre um dispositivo de origem sem fio e um dispositivo de destino sem fio, dispositivo de destino sem fio, dispositivo de origem sem fio e memória legível por computador
BR112013018573B1 (pt) Método e dispositivo de destino sem fio configurado para encaminhar dados de entrada de usuário originários de um dispositivo de terceiros para um dispositivo de origem sem fio, método e dispositivo de origem sem fio configurado para receber dados de entrada de usuário encaminhados a partir de um dispositivo de destino sem fio, e memória
JP2014128032A (ja) 端末装置及び制御方法
US10063802B2 (en) Multimedia device and method for controlling external devices of the same
US11528523B2 (en) Method and system to share a snapshot extracted from a video transmission
CN114339332B (zh) 一种移动终端、显示设备及跨网投屏方法
CN114286165A (zh) 一种显示设备、移动终端及投屏数据传输方法
US20110216246A1 (en) Transmission device, data transmitting method, and communication system
CN114286137A (zh) 一种镜像投屏方法、显示设备及终端
WO2022242328A1 (zh) 一种分屏播放方法及显示设备
WO2022068882A1 (zh) 镜像投屏方法、装置及系统
BR102016030687A2 (pt) Método, e, mídia legível por computador não transitória
CN115278323A (zh) 一种显示设备、智能设备和数据处理方法
US20130060910A1 (en) Content reproducing apparatus, content reproducing system, and control method thereof
US20200413150A1 (en) Display apparatus and the controlling method thereof
US20120188159A1 (en) Data processing apparatus, picture transmission system and data processing method
KR20150055164A (ko) 스마트 원격 제어 장치 및 스마트 원격 제어 장치에서 실행되는 어플리케이션 원격 제어 방법
KR102108064B1 (ko) 멀티미디어 디바이스 및 이의 제어 방법

Legal Events

Date Code Title Description
B12F Other appeals [chapter 12.6 patent gazette]
B150 Others concerning applications: publication cancelled [chapter 15.30 patent gazette]

Free format text: ANULADA A PUBLICACAO CODIGO 15.21 NA RPI NO 2452 DE 02/01/2018 POR TER SIDO INDEVIDA.

B03A Publication of a patent application or of a certificate of addition of invention [chapter 3.1 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B09B Patent application refused [chapter 9.2 patent gazette]
B12B Appeal against refusal [chapter 12.2 patent gazette]