BR112021001995A2 - method, local computing device, and computer-readable media for propagating enriched note data objects over a web socket connection in a network collaboration workspace - Google Patents

method, local computing device, and computer-readable media for propagating enriched note data objects over a web socket connection in a network collaboration workspace Download PDF

Info

Publication number
BR112021001995A2
BR112021001995A2 BR112021001995-2A BR112021001995A BR112021001995A2 BR 112021001995 A2 BR112021001995 A2 BR 112021001995A2 BR 112021001995 A BR112021001995 A BR 112021001995A BR 112021001995 A2 BR112021001995 A2 BR 112021001995A2
Authority
BR
Brazil
Prior art keywords
data object
note data
user
enriched
enriched note
Prior art date
Application number
BR112021001995-2A
Other languages
Portuguese (pt)
Inventor
Marco Valerio Masi
Original Assignee
Re Mago Ltd
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 US16/054,328 external-priority patent/US20190065012A1/en
Application filed by Re Mago Ltd filed Critical Re Mago Ltd
Publication of BR112021001995A2 publication Critical patent/BR112021001995A2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Physics & Mathematics (AREA)
  • Operations Research (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

MÉTODO, DISPOSITIVO DE COMPUTAÇÃO LOCAL E MÍDIA LEGÍVEL POR COMPUTADOR PARA A PROPAGAÇÃO DE OBJETOS DE DADOS DE NOTA ENRIQUECIDA ATRAVÉS DE UMA CONEXÃO DE SOQUETE DA WEB EM UM ESPAÇO DE TRABALHO DE COLABORAÇÃO EM REDE que inclui transmitir uma representação de um espaço de trabalho de colaboração acessível aos participantes em dispositivos de computação através de uma conexão de soquete da web, gerar um objeto de dados de nota enriquecida compreendendo texto, controles acessíveis aos usuários, e um arquivo de conteúdo e sendo configurado para exibir o texto e os controles acessíveis ao usuário e abrir o arquivo de conteúdo em resposta à seleção de um controle de exibição, detectar uma entrada de usuário que associa o objeto de dados de nota enriquecida a uma posição selecionada na representação do espaço de trabalho de colaboração, e transmitir o objeto de dados de nota enriquecida, a posição selecionada, e comandos para o servidor através de uma conexão de soquete da web, os comandos sendo configurados para fazer com que o servidor propague o objeto de dados de nota enriquecida e a posição selecionada para os dispositivos de computação.METHOD, LOCAL COMPUTING DEVICE, AND COMPUTER-READABLE MEDIA FOR THE PROPAGATION OF ENRICHED NOTE DATA OBJECTS THROUGH A WEB SOCKET CONNECTION IN A NETWORK COLLABORATION WORKSPACE that includes streaming a representation of a collaboration workspace accessible to participants on computing devices through a web socket connection, generating an enriched note data object comprising text, user-accessible controls, and a content file and being configured to display text and user-accessible controls and opening the content file in response to the selection of a display control, detecting user input that associates the enriched note data object with a selected position in the collaboration workspace representation, and passing the data object from enriched note, the selected position, and commands to the server through a web socket connection, commands being configured to have the server propagate the enriched note data object and selected position to the computing devices.

Description

MÉTODO, DISPOSITIVO DE COMPUTAÇÃO LOCAL E MÍDIA LEGÍVEL POR COMPUTADORMETHOD, LOCAL COMPUTING DEVICE AND COMPUTER-READABLE MEDIA PARA A PROPAGAÇÃO DE OBJETOS DE DADOS DE NOTA ENRIQUECIDA ATRAVÉS DEFOR THE PROPAGATION OF ENRICHED NOTE DATA OBJECTS THROUGH UMA CONEXÃO DE SOQUETE DA WEB EM UM ESPAÇO DE TRABALHO DEA SOCKET WEB CONNECTION IN A WORKSPACE OF COLABORAÇÃO EM REDENETWORK COLLABORATION ANTECEDENTES DA TÉCNICATECHNICAL BACKGROUND

[0001] Sistemas operacionais e aplicativos que executam dentro de sistemas operacionais frequentemente fazem uso de dispositivos de hardware externo para permitir aos usuários fornecerem entrada ao programa e para fornecerem saída para os usuários. Exemplos comuns de dispositivos de hardware externos incluem um teclado, um mouse de computador, um microfone e alto-falantes externos. Esses dispositivos de hardware externos fazem interface com o sistema operacional através do uso de drivers, que são programas de software especializados configurados para fazer interface entre os comandos de hardware usados por um determinado dispositivo de hardware e o sistema operacional.[0001] Operating systems and applications that run inside operating systems often make use of external hardware devices to allow users to provide input to the program and to provide output to users. Common examples of external hardware devices include a keyboard, computer mouse, microphone, and external speakers. These external hardware devices interface with the operating system through the use of drivers, which are specialized software programs configured to interface between the hardware commands used by a particular hardware device and the operating system.

[0002] Às vezes, aplicativos serão projetados para fazer interface com certos dispositivos de hardware. Por exemplo, um aplicativo de processamento de palavras de voz para texto pode ser projetado para interagir com um fone de ouvido de áudio que inclui um microfone. Neste caso, o aplicativo deve ser configurado especificamente para receber comandos de voz, realizar reconhecimento de voz, converter as palavras reconhecidas em conteúdo textual e emitir o conteúdo textual em um documento. Essa funcionalidade será tipicamente incorporada na Interface de Programação de Aplicativos (API) do aplicativo, que é um conjunto de métodos de comunicação definidos entre vários componentes de software. No exemplo do aplicativo de reconhecimento de voz, a API pode incluir uma interface entre o programa do aplicativo e o software em um driver que é responsável por fazer interface com o próprio dispositivo de hardware (o microfone).[0002] Sometimes applications will be designed to interface with certain hardware devices. For example, a speech-to-text word processing application can be designed to interact with an audio headset that includes a microphone. In this case, the application must be specifically configured to receive voice commands, perform voice recognition, convert the recognized words into textual content, and output the textual content in a document. This functionality will typically be incorporated into the application's Application Programming Interface (API), which is a set of communication methods defined between various software components. In the speech recognition application example, the API can include an interface between the application program and the software in a driver that is responsible for interfacing with the hardware device itself (the microphone).

[0003] Um problema com softwares existentes que fazem uso de dispositivos de hardware especializados é que o próprio software do aplicativo ou sistema operacional deve ser personalizado e especialmente projetado para utilizar o dispositivo de hardware. Essa personalização significa que o dispositivo de hardware não pode exceder o escopo definido para ele pelo aplicativo e não pode ser utilizado para contextos fora do aplicativo específico para o qual foi projetado para ser usado. Por exemplo, um usuário do aplicativo de processamento de palavras de voz para texto não poderia manipular outros programas de aplicativos ou outros componentes dentro do sistema operacional usando comandos de voz, a menos que esses outros programas de aplicativos ou o sistema operacional fossem especificamente projetados para fazer uso de comandos de voz recebidos pelo microfone.[0003] A problem with existing software that makes use of specialized hardware devices is that the application software or operating system itself must be customized and specially designed to utilize the hardware device. This customization means that the hardware device cannot exceed the scope defined for it by the app and cannot be used for contexts outside of the specific app for which it was designed to be used. For example, a user of the speech-to-text word processing application could not manipulate other application programs or other components within the operating system using voice commands, unless those other application programs or the operating system were specifically designed to make use of voice commands received by the microphone.

[0004] A Fig. 1 ilustra um exemplo da arquitetura existente de sistemas que fazem uso de dispositivos de hardware acoplado para entrada do usuário. O sistema operacional 100A da Fig. 1 inclui aplicativos 101A e 102A em execução, cada um dos quais tendo suas próprias APIs, 101B e 102B, respectivamente. O sistema operacional 100A também tem sua própria API 100B, assim como drivers especializados 100C, 101C e 102C, configurados para fazer interface com os dispositivos de hardware 100D, 101D e 102D.[0004] Fig. 1 illustrates an example of the existing architecture of systems that make use of hardware coupled devices for user input. Operating system 100A of Fig. 1 includes running applications 101A and 102A, each of which has its own APIs, 101B and 102B, respectively. The 100A operating system also has its own 100B API as well as specialized 100C, 101C and 102C drivers configured to interface with 100D, 101D and 102D hardware devices.

[0005] Conforme mostrado na Fig. 1, a API de aplicativo 101B é configurada para fazer interface com o driver 101C que, por sua vez, faz interface com o dispositivo de hardware 101D. De maneira similar, a API de aplicativo 102B é configurada para fazer interface com o driver 102C que, por sua vez, faz interface com o dispositivo de hardware 102D. No nível do sistema operacional, a API de sistema operacional 100B é configurada para fazer interface com o driver 100C, que, por sua vez, faz interface com dispositivo de hardware 100D.[0005] As shown in Fig. 1, application API 101B is configured to interface with driver 101C which, in turn, interfaces with hardware device 101D. Similarly, the 102B Application API is configured to interface with the 102C driver, which in turn interfaces with the 102D hardware device. At the operating system level, the 100B operating system API is configured to interface with the 100C driver, which in turn interfaces with the 100D hardware device.

[0006] A arquitetura do sistema mostrado na Fig. 1 limita a capacidade dos usuários para utilizar dispositivos de hardware fora de certos contextos de aplicativos ou sistemas operacionais. Por exemplo, um usuário não poderia utilizar o dispositivo de hardware 101D para fornecer entrada ao aplicativo 102A e não poderia utilizar o dispositivo de hardware 102D para fornecer entrada para o aplicativo 101A ou para o sistema operacional 100A.[0006] The system architecture shown in Fig. 1 limits the ability of users to use hardware devices outside of certain contexts of applications or operating systems. For example, a user could not use hardware device 101D to provide input to application 102A and could not use hardware device 102D to provide input to application 101A or operating system 100A.

[0007] Consequentemente, melhorias são necessárias em interfaces de hardware- software que permitem a utilização de dispositivos de hardware em múltiplos contextos de software.[0007] Consequently, improvements are needed in hardware-software interfaces that allow the use of hardware devices in multiple software contexts.

BREVE DESCRIÇÃO DAS FIGURASBRIEF DESCRIPTION OF THE FIGURES

[0008] A Fig. 1 ilustra um exemplo da arquitetura existente de sistemas que fazem uso de dispositivos de hardware acoplado para entrada do usuário.[0008] Fig. 1 illustrates an example of the existing architecture of systems that make use of coupled hardware devices for user input.

[0009] A Fig. 2 ilustra a arquitetura de um sistema que utiliza a interface universal hardware-software de acordo com uma modalidade exemplificativa.[0009] Fig. 2 illustrates the architecture of a system that uses the universal hardware-software interface according to an exemplary modality.

[0010] A Fig. 3 ilustra um fluxograma para a implementação de uma interface universal de hardware-software de acordo com uma modalidade exemplificativa.[0010] Fig. 3 illustrates a flowchart for the implementation of a universal hardware-software interface according to an exemplary modality.

[0011] A Fig. 4 ilustra um fluxograma para determinar uma entrada de usuário baseada, pelo menos em parte, em informações capturadas por um ou mais dispositivos de hardware acoplados comunicativamente ao sistema quando as informações capturadas pelos um ou mais dispositivos de hardware compreendem uma ou mais imagens, de acordo com uma modalidade exemplificativa.[0011] Fig. 4 illustrates a flowchart for determining a user input based, at least in part, on information captured by one or more hardware devices communicatively coupled to the system when the information captured by the one or more hardware devices comprises a or more images, according to an exemplary modality.

[0012] A Fig. 5A ilustra um exemplo de reconhecimento de objeto de acordo com uma modalidade exemplificativa.[0012] Fig. 5A illustrates an example of object recognition according to an exemplary embodiment.

[0013] A Fig. 5B ilustra um exemplo de determinação das coordenadas de localização de entrada de acordo com uma modalidade exemplificativa.[0013] Fig. 5B illustrates an example of determining the input location coordinates according to an exemplary embodiment.

[0014] A Fig. 6 ilustra um fluxograma para determinar uma entrada do usuário baseada, pelo menos em parte, em informações capturadas por um ou mais dispositivos de hardware acoplados comunicativamente ao sistema quando as informações capturadas são informações de som, de acordo com uma modalidade exemplificativa.[0014] Fig. 6 illustrates a flowchart for determining a user input based, at least in part, on information captured by one or more hardware devices communicatively coupled to the system when the captured information is sound information, according to a exemplary modality.

[0015] A Fig. 7 ilustra uma interface de ferramenta que pode fazer parte da camada transparente, de acordo com uma modalidade exemplificativa.[0015] Fig. 7 illustrates a tool interface that can be part of the transparent layer, according to an exemplary embodiment.

[0016] A Fig. 8 ilustra um exemplo de uma caneta Stylus que pode fazer parte do sistema, de acordo com uma modalidade exemplificativa.[0016] Fig. 8 illustrates an example of a Stylus pen that can be part of the system, according to an exemplary embodiment.

[0017] A Fig. 9 ilustra um fluxograma para identificar um contexto correspondente à entrada do usuário, de acordo com uma modalidade exemplificativa.[0017] Fig. 9 illustrates a flowchart to identify a context corresponding to user input, according to an exemplary modality.

[0018] A Fig. 10 ilustra um exemplo de uso das coordenadas de entrada para determinar um contexto, de acordo com uma modalidade exemplificativa.[0018] Fig. 10 illustrates an example of using the input coordinates to determine a context, according to an exemplary embodiment.

[0019] A Fig. 11 ilustra um fluxograma para converter entrada do usuário em comandos de camada transparentes, de acordo com uma modalidade exemplificativa.[0019] Fig. 11 illustrates a flowchart for converting user input into transparent layer commands, according to an exemplary embodiment.

[0020] A Fig. 12A ilustra um exemplo de recebimento de coordenadas de entrada quando o modo de seleção é selecionado, de acordo com uma modalidade exemplificativa.[0020] Fig. 12A illustrates an example of receiving input coordinates when the selection mode is selected, according to an exemplary modality.

[0021] A Fig. 12B ilustra um exemplo de recebimento de coordenadas de entrada quando o modo de indicação é selecionado, de acordo com uma modalidade exemplificativa.[0021] Fig. 12B illustrates an example of receiving input coordinates when the indication mode is selected, according to an exemplary modality.

[0022] A Fig. 12C ilustra um exemplo de recebimento de coordenadas de entrada quando o modo de desenho é selecionado, de acordo com uma modalidade exemplificativa.[0022] Fig. 12C illustrates an example of receiving input coordinates when the drawing mode is selected, according to an exemplary modality.

[0023] A Fig. 13 ilustra um exemplo de um comando de camada transparente determinado com base em uma ou mais palavras identificadas em dados de voz de entrada, de acordo com uma modalidade exemplificativa.[0023] Fig. 13 illustrates an example of a transparent layer command determined based on one or more words identified in input speech data, according to an exemplary embodiment.

[0024] A Fig. 14 ilustra outro exemplo de um comando de camada transparente determinado com base em uma ou mais palavras identificadas em dados de voz de entrada, de acordo com uma modalidade exemplificativa.[0024] Fig. 14 illustrates another example of a transparent layer command determined based on one or more words identified in input voice data, according to an exemplary embodiment.

[0025] A Fig. 15 ilustra um fluxograma para executar o um ou mais comandos de camada transparente na camada transparente, de acordo com uma modalidade exemplificativa.[0025] Fig. 15 illustrates a flowchart for executing the one or more transparent layer commands on the transparent layer, according to an exemplary embodiment.

[0026] A Fig. 16 ilustra uma interface de exemplo para adicionar novos comandos correspondentes à entrada do usuário, de acordo com uma modalidade exemplificativa.[0026] Fig. 16 illustrates an example interface to add new commands corresponding to user input, according to an example modality.

[0027] A Fig. 17 ilustra vários componentes e opções de uma interface de desenho e modo de desenho, de acordo com uma modalidade exemplificativa.[0027] Fig. 17 illustrates various components and options of a design interface and design mode, according to an exemplary embodiment.

[0028] A Fig. 18 ilustra uma interface de calibração e configurações para um dispositivo de hardware de câmera de vídeo que é usado para reconhecer objetos e permite que um usuário forneça entrada com uso de toque e gestos, de acordo com uma modalidade exemplificativa.[0028] Fig. 18 illustrates a calibration and settings interface for a video camera hardware device that is used to recognize objects and allows a user to provide input using touch and gestures, according to an exemplary modality.

[0029] A Fig. 19 ilustra uma interface de configurações gerais que permite ao usuário personalizar vários aspectos da interface, alternar modos de entrada e fazer outras alterações, de acordo com uma modalidade exemplificativa.[0029] Fig. 19 illustrates a general settings interface that allows the user to customize various aspects of the interface, switch input modes and make other changes, according to an exemplary modality.

[0030] A Fig. 20 ilustra um fluxograma para propagar objetos de dados de nota enriquecidas através de uma conexão de soquete da web em um espaço de trabalho de colaboração em rede, de acordo com uma modalidade exemplificativa.[0030] Fig. 20 illustrates a flowchart for propagating enriched note data objects through a web socket connection in a network collaboration workspace, according to an exemplary embodiment.

[0031] A Fig. 21A ilustra a arquitetura de rede usada para hospedar e transmitir um espaço de trabalho de colaboração, de acordo com uma modalidade exemplificativa.[0031] Fig. 21A illustrates the network architecture used to host and transmit a collaboration workspace, according to an exemplary modality.

[0032] A Fig. 21B ilustra o processo para a propagação de edições ao espaço de trabalho de colaboração dentro da rede, de acordo com uma modalidade exemplificativa.[0032] Fig. 21B illustrates the process for propagating edits to the collaborative workspace within the network, according to an exemplary modality.

[0033] A Fig. 22 ilustra múltiplas representações de um espaço de trabalho de colaboração, de acordo com uma modalidade exemplificativa.[0033] Fig. 22 illustrates multiple representations of a collaborative workspace, according to an exemplary modality.

[0034] As Figs. 23A-23B ilustram um processo usado para gerar o objeto de dados de nota enriquecida dentro de um espaço de trabalho de colaboração em rede, de acordo com uma modalidade exemplificativa.Figs. 23A-23B illustrate a process used to generate the enriched note data object within a network collaboration workspace, according to an exemplary embodiment.

[0035] A Fig. 24 ilustra uma nota enriquecida gerada 2400, de acordo com uma modalidade exemplificativa.[0035] Fig. 24 illustrates an enriched note generated 2400, according to an exemplary embodiment.

[0036] As Figs. 25A-25B ilustram um exemplo de detecção de uma entrada de usuário que associa o objeto de dados de nota enriquecida com uma posição selecionada na representação do espaço de trabalho de colaboração, de acordo com uma modalidade exemplificativa.Figs. 25A-25B illustrate an example of detecting a user input that associates the enriched note data object with a selected position in the collaboration workspace representation, according to an exemplary embodiment.

[0037] A Fig. 26 ilustra o processo para a propagação do objeto de dados de nota enriquecida, de acordo com uma modalidade exemplificativa.[0037] Fig. 26 illustrates the process for propagating the enriched note data object, according to an exemplary embodiment.

[0038] A Fig. 27 ilustra a nota enriquecida em múltiplos exemplos de um espaço de trabalho de colaboração, de acordo com uma modalidade exemplificativa.[0038] Fig. 27 illustrates the note enriched in multiple examples of a collaboration workspace, according to an exemplary modality.

[0039] As Figs. 28 a 32 ilustram exemplos de interação do usuário com notas enriquecidas, de acordo com uma modalidade exemplificativa.[0039] Figs. 28 to 32 illustrate examples of user interaction with enriched notes, according to an exemplary modality.

[0040] A Fig. 33 ilustra um ambiente de computação exemplificativo configurado para realizar os métodos revelados.[0040] Fig. 33 illustrates an exemplary computing environment configured to perform the disclosed methods.

DESCRIÇÃO DETALHADA DA INVENÇÃODETAILED DESCRIPTION OF THE INVENTION

[0041] Embora métodos, aparelhos e mídias legíveis por computador sejam descritos no presente documento por meio de exemplos e modalidades, aqueles versados na técnica reconhecem que métodos, aparelhos e mídias legíveis por computador para a implementação de uma interface universal de hardware-software não se limitam às modalidades ou desenhos descritos. Deve-se compreender que os desenhos e a descrição não são destinados para serem limitados à forma particular revelada. Pelo contrário, a intenção é cobrir todas as modificações, equivalentes e alternativas que caiam dentro do espírito e escopo das reivindicações anexas. Os cabeçalhos usados no presente documento são apenas para fins organizacionais e não se destinam a limitar o escopo da descrição ou das reivindicações. Conforme usado no presente documento, a palavra "pode" é usada em um sentido permissivo (ou seja, significando tendo o potencial para), em vez de no sentido obrigatório (ou seja, significando precisar). Da mesma forma, as palavras "inclui", "incluindo" e "incluir" significam incluindo, mas sem limitação.[0041] Although computer-readable methods, apparatus, and media are described herein by way of examples and embodiments, those skilled in the art recognize that computer-readable methods, apparatus, and media for implementing a universal hardware-software interface do not are limited to the modalities or designs described. It should be understood that the drawings and description are not intended to be limited to the particular form disclosed. Rather, it is intended to cover all modifications, equivalents and alternatives that fall within the spirit and scope of the appended claims. Headings used in this document are for organizational purposes only and are not intended to limit the scope of the description or claims. As used in this document, the word "may" is used in a permissive sense (ie, meaning having the potential to), rather than in the obligatory sense (ie, meaning needing). Likewise, the words "includes", "including" and "include" mean including, but not limited to.

[0042] A Requerente concebeu um método, um aparelho e mídia legível por computador que resolvem os problemas associados às interfaces de hardware-software anteriores usadas para dispositivos de hardware. Em particular, a Requerente desenvolveu uma interface de hardware-software universal que permite aos usuários utilizarem dispositivos de hardware acoplados comunicativamente em uma variedade de contextos de software. A implementação revelada elimina a necessidade de que aplicativos ou sistemas operacionais sejam projetados de forma personalizada para fazer interface com um dispositivo de hardware específico através do uso de um driver virtual especializado e uma camada transparente correspondente, conforme descrito abaixo em mais detalhes.[0042] Applicant has devised a method, a computer readable device and media that solve the problems associated with previous hardware-software interfaces used for hardware devices. In particular, the Applicant has developed a universal hardware-software interface that allows users to use communicatively coupled hardware devices in a variety of software contexts. The revealed implementation eliminates the need for applications or operating systems to be custom designed to interface with a specific hardware device through the use of a specialized virtual driver and corresponding transparent layer, as described in more detail below.

[0043] A Fig. 2 ilustra a arquitetura de um sistema que utiliza a interface hardware- software universal, de acordo com uma modalidade exemplificativa. Como mostrado na Fig. 2, o sistema operacional 200A inclui uma camada transparente 203 que se comunica com um driver virtual 204. Conforme será explicado em mais detalhes abaixo, a camada transparente 203 é uma API configurada para fazer interface entre um driver virtual e um sistema operacional e/ou aplicativo(s) em execução no sistema operacional. Neste exemplo, a camada transparente 203 faz interface entre o driver virtual 204 e a API 201B do aplicativo 201A, a API 202B do aplicativo 202A e a API de sistema operacional 200B do sistema operacional 200A.[0043] Fig. 2 illustrates the architecture of a system that uses the universal hardware-software interface, according to an exemplary modality. As shown in Fig. 2, operating system 200A includes a transparent layer 203 that communicates with a virtual driver 204. As will be explained in more detail below, the transparent layer 203 is an API configured to interface between a virtual driver and a operating system and/or application(s) running on the operating system. In this example, transparent layer 203 interfaces between virtual driver 204 and API 201B of application 201A, API 202B of application 202A, and API of operating system 200B of operating system 200A.

[0044] A camada transparente 203 pode ser parte de um processo de software em execução no sistema operacional e pode ter seus próprios elementos de interface de usuário (IU), incluindo uma IU transparente sobreposta a uma interface de usuário subjacente e/ou elementos de IU visíveis com que um usuário é capaz de interagir.[0044] The transparent layer 203 may be part of a software process running on the operating system and may have its own user interface (UI) elements, including a transparent UI overlaid with an underlying user interface and/or user interface elements. Visible UI that a user is able to interact with.

[0045] O driver virtual 204 está configurado para emular os drivers 205A e 205B, que fazem interface com os dispositivos de hardware 206A e 206B, respectivamente. O driver virtual pode receber entrada do usuário que instrui o driver virtual sobre qual driver virtual emular, por exemplo, na forma de um comando de voz, uma seleção feita em uma interface de usuário e/ou um gesto feito pelo usuário na frente de uma câmera da web acoplada. Por exemplo, cada um dos dispositivos de hardware conectados pode operar em um modo de "escuta" e cada um dos drivers emulados no driver virtual 204 pode ser configurado para detectar um sinal de inicialização que serve como um sinal para o driver virtual para mudar para um determinado modo de emulação. Por exemplo, um usuário declarando “iniciar comandos de voz” pode ativar o driver correspondente a um microfone para receber um novo comando de voz. Da mesma forma, um usuário fazendo um certo gesto pode ativar o driver correspondente a uma câmera da web para receber entrada de gesto ou entrada de toque.[0045] Virtual driver 204 is configured to emulate drivers 205A and 205B, which interface with hardware devices 206A and 206B, respectively. The virtual driver can receive input from the user that instructs the virtual driver which virtual driver to emulate, for example, in the form of a voice command, a selection made in a user interface and/or a gesture made by the user in front of a attached web camera. For example, each of the connected hardware devices can operate in a "listen" mode and each of the drivers emulated in virtual driver 204 can be configured to detect a boot signal that serves as a signal for the virtual driver to switch to a certain emulation mode. For example, a user declaring “initiate voice commands” can activate the driver corresponding to a microphone to receive a new voice command. Likewise, a user making a certain gesture can enable the corresponding driver for a web camera to receive gesture input or touch input.

[0046] O driver virtual também pode ser configurado para fazer interface com um driver nativo, tal como o driver nativo 205C, que por sua vez se comunica com o dispositivo de hardware 206C. Em um exemplo, o dispositivo de hardware 206C pode ser um dispositivo de entrada padrão, tal como um teclado ou um mouse, que é nativamente suportado pelo sistema operacional.[0046] The virtual driver can also be configured to interface with a native driver, such as the 205C native driver, which in turn communicates with the 206C hardware device. In one example, the 206C hardware device might be a standard input device, such as a keyboard or mouse, that is natively supported by the operating system.

[0047] O sistema mostrado na Fig. 2 permite a implementação de uma interface de hardware-software universal na qual os usuários podem utilizar qualquer dispositivo de hardware acoplado em uma variedade de contextos, tal como um aplicativo específico ou o sistema operacional, sem exigir que o aplicativo ou sistema operacional seja personalizado para fazer interface com o dispositivo de hardware.[0047] The system shown in Fig. 2 allows the implementation of a universal hardware-software interface in which users can use any hardware device coupled in a variety of contexts, such as a specific application or operating system, without requiring that the application or operating system is customized to interface with the hardware device.

[0048] Por exemplo, o dispositivo de hardware 206A pode capturar informações que são então recebidas pelo driver virtual 204 emulando o driver 205A. O driver virtual 204 pode determinar uma entrada do usuário com base nas informações capturadas. Por exemplo, se a informação for uma série de imagens de um usuário movendo sua mão, o driver virtual pode determinar que o usuário realizou um gesto.[0048] For example, hardware device 206A can capture information that is then received by virtual driver 204 emulating driver 205A. Virtual driver 204 can determine user input based on the captured information. For example, if the information is a series of images of a user moving their hand, the virtual driver can determine that the user performed a gesture.

[0049] Com base em um contexto identificado (tal como um determinado aplicativo ou o sistema operacional), a entrada do usuário pode ser convertida em um comando de camada transparente e transmitida para a camada transparente 203 para execução. O comando de camada transparente pode incluir comandos nativos no contexto identificado. Por exemplo, se o contexto identificado for o aplicativo 201A, então os comandos nativos estariam em um formato que é compatível com a API de aplicativo 201B do aplicativo 201A. A execução do comando de camada transparente pode então ser configurada para fazer com que seja realizada a execução de um ou mais comandos nativos no contexto identificado. Isso é realizado pela camada transparente 203 fazendo interface com cada uma das APIs dos aplicativos em execução no sistema operacional 200A, assim como com a API de sistema operacional 200B. Por exemplo, se o comando nativo for um comando de sistema operacional, tal como um comando para iniciar um novo programa, então a camada transparente 203 pode fornecer esse comando nativo para a API 200B do sistema operacional para execução.[0049] Based on an identified context (such as a particular application or operating system), user input can be converted to a transparent layer command and passed to transparent layer 203 for execution. The transparent layer command can include native commands in the identified context. For example, if the identified context is app 201A, then the native commands would be in a format that is compatible with app 201B app API 201A. Transparent layer command execution can then be configured to cause one or more native commands to execute in the identified context. This is accomplished by the transparent layer 203 interfacing with each of the application APIs running on OS 200A, as well as with OS API 200B. For example, if the native command is an operating system command, such as a command to start a new program, then transparent layer 203 can provide that native command to the operating system API 200B for execution.

[0050] Conforme mostrado na Fig. 2, há comunicação bidirecional entre todos os componentes mostrados. Isso significa, por exemplo, que a execução de um comando de camada transparente na camada transparente 203 pode resultar em transmissão de informações para o driver virtual 204 e em seguida para um dos dispositivos de hardware conectados. Por exemplo, depois que um comando de voz é reconhecido como entrada, convertido em um comando de camada transparente que inclui um comando nativo, e executado pela camada transparente (resultando na execução do comando nativo no contexto identificado), um sinal pode ser enviado da camada transparente para um alto- falante (por meio do driver virtual) para transmitir a saída de som "comando recebido".[0050] As shown in Fig. 2, there is bidirectional communication between all the components shown. This means, for example, that executing a transparent layer command at transparent layer 203 can result in information being transmitted to virtual driver 204 and then to one of the connected hardware devices. For example, after a voice command is recognized as input, converted to a transparent layer command that includes a native command, and executed by the transparent layer (resulting in the execution of the native command in the identified context), a signal can be sent from the transparent layer to a speaker (via the virtual driver) to transmit the "command received" sound output.

[0051] Naturalmente, a arquitetura mostrada na Fig. 2 tem a finalidade de explicação apenas, sendo entendido que o número de aplicativos em execução, o número e o tipo de dispositivos de hardware conectados, o número de drivers e os drivers emulados podem variar.[0051] Of course, the architecture shown in Fig. 2 is for the purpose of explanation only, it being understood that the number of running applications, the number and type of connected hardware devices, the number of drivers and emulated drivers may vary .

[0052] A Fig. 3 ilustra um fluxograma para a implementação de uma interface de hardware-software universal, de acordo com uma modalidade exemplificativa.[0052] Fig. 3 illustrates a flowchart for the implementation of a universal hardware-software interface, according to an exemplary modality.

[0053] Na etapa 301, uma entrada do usuário é determinada com base, pelo menos em parte, nas informações capturadas por um ou mais dispositivos de hardware comunicativamente acoplados ao sistema. O sistema, conforme usado no presente documento, pode se referir a um ou mais dispositivos de computação que executam as etapas do método, um aparelho que compreende um ou mais processadores e uma ou mais memórias que executam as etapas do método, ou qualquer outro sistema de computação.[0053] In step 301, a user input is determined based, at least in part, on information captured by one or more hardware devices communicatively coupled to the system. The system, as used herein, may refer to one or more computing devices that perform the method steps, an apparatus that comprises one or more processors and one or more memories that perform the method steps, or any other system of computing.

[0054] A entrada do usuário pode ser determinada por um driver virtual em execução no sistema. Conforme discutido anteriormente, o driver virtual pode estar operando em um modo de emulação no qual está emulando outros drivers de hardware e, desse modo, recebendo as informações capturadas de um dispositivo de hardware, ou pode, opcionalmente, receber as informações capturadas de um ou mais outros drivers de hardware que são configurados para fazer interface com um dispositivo de hardware específico.[0054] User input can be determined by a virtual driver running on the system. As discussed earlier, the virtual driver may be operating in an emulation mode in which it is emulating other hardware drivers and thus receiving information captured from a hardware device, or it may optionally receive information captured from one or plus other hardware drivers that are configured to interface with a specific hardware device.

[0055] Uma variedade de dispositivos de hardware pode ser utilizada, tais como uma câmera, uma câmera de vídeo, um microfone, um fone de ouvido com comunicação bidirecional, um mouse, um touchpad, um trackpad, um controlador, um game pad, um joystick, uma tela sensível ao toque, um dispositivo de captura de movimento incluindo acelerômetros e/ou sensores de inclinação, um controle remoto, uma caneta Stylus ou qualquer combinação desses dispositivos. Obviamente, esta lista de dispositivos de hardware é fornecida apenas a título de exemplo, e qualquer dispositivo de hardware que possa ser utilizado para detectar voz, imagem, vídeo ou informação de toque pode ser utilizado.[0055] A variety of hardware devices can be used, such as a camera, a video camera, a microphone, a headset with bidirectional communication, a mouse, a touchpad, a trackpad, a controller, a game pad, a joystick, a touchscreen, a motion capture device including accelerometers and/or tilt sensors, a remote control, a Stylus pen or any combination of these devices. Obviously, this list of hardware devices is provided by way of example only, and any hardware device that can be used to detect voice, image, video, or touch information can be used.

[0056] O acoplamento comunicativo entre os dispositivos de hardware e o sistema pode assumir uma variedade de formas. Por exemplo, o dispositivo de hardware pode se comunicar com o sistema por meio de uma rede sem fio, protocolo Bluetooth, radiofrequência, sinais infravermelhos e/ou por uma conexão física, tal como uma conexão de Barramento Serial Universal (USB). A comunicação também pode incluir tanto comunicações sem fio como com fio. Por exemplo, um dispositivo de hardware pode incluir dois componentes, um dos quais, sem o uso de fios (tal como através de Bluetooth), transmite sinais para um segundo componente que se conecta ao sistema por meio de uma conexão com fio (tal como USB). Uma variedade de técnicas de comunicação pode ser utilizada de acordo com o sistema descrito no presente documento, e estes exemplos não se destinam a ser limitativos.[0056] The communicative coupling between hardware devices and the system can take a variety of forms. For example, the hardware device can communicate with the system through a wireless network, Bluetooth protocol, radio frequency, infrared signals, and/or through a physical connection such as a Universal Serial Bus (USB) connection. Communication can also include both wireless and wired communications. For example, a hardware device can include two components, one of which, wirelessly (such as through Bluetooth), transmits signals to a second component that connects to the system via a wired connection (such as USB). A variety of communication techniques can be used in accordance with the system described herein, and these examples are not intended to be limiting.

[0057] As informações capturadas pelos um ou mais dispositivos de hardware podem ser qualquer tipo de informação, tais como informações de imagem incluindo uma ou mais imagens, quadros de um vídeo, informações de som e/ou informações de toque. As informações capturadas podem estar em qualquer formato adequado, tais como arquivos .wav ou .mp3 para informações de som, arquivos .jpeg para imagens, coordenadas numéricas para informações de toque etc.[0057] The information captured by the one or more hardware devices can be any type of information, such as image information including one or more images, frames of a video, sound information and/or touch information. The captured information can be in any suitable format, such as .wav or .mp3 files for sound information, .jpeg files for images, numeric coordinates for ringing information, etc.

[0058] As técnicas descritas no presente documento podem permitir que qualquer dispositivo de exibição funcione efetivamente como um dispositivo de tela de "toque" em qualquer contexto, mesmo se o dispositivo de exibição não incluir nenhum hardware para detectar sinais de toque ou gestos baseados em toque. Isto é descrito em um mais detalhe abaixo e pode ser realizado com a análise das imagens capturadas por uma câmera ou por uma câmera de vídeo.[0058] The techniques described in this document can allow any display device to effectively function as a "touch" screen device in any context, even if the display device does not include any hardware to detect touch signals or gestures based on Touch. This is described in more detail below and can be accomplished by analyzing the images captured by a camera or a video camera.

[0059] A Fig. 4 ilustra um fluxograma para determinar uma entrada de usuário baseada, pelo menos em parte, em informações capturadas por um ou mais dispositivos de hardware acoplados comunicativamente ao sistema quando as informações capturadas pelos um ou mais dispositivos de hardware compreendem uma ou mais imagens.[0059] Fig. 4 illustrates a flowchart for determining a user input based, at least in part, on information captured by one or more hardware devices communicatively coupled to the system when the information captured by the one or more hardware devices comprises a or more images.

[0060] Na etapa 401, uma ou mais imagens são recebidas. Essas imagens podem ser capturadas por um dispositivo de hardware, tal como uma câmera ou câmera de vídeo, e podem ser recebidas pelo driver virtual, conforme discutido anteriormente.[0060] In step 401, one or more images are received. These images can be captured by a hardware device, such as a camera or video camera, and can be received by the virtual driver, as discussed earlier.

[0061] Na etapa 402, um objeto nas uma ou mais imagens é reconhecido. O objeto pode ser, por exemplo, uma mão, um dedo ou outra parte do corpo de um usuário. O objeto também pode ser um dispositivo para fins especiais, tal como uma caneta Stylus ou uma caneta, ou um dispositivo de hardware para fins especiais, como uma caneta Stylus/controle remoto de rastreamento de movimento que é comunicativamente acoplado ao sistema e que contém acelerômetros e/ou sensores de inclinação. O reconhecimento do objeto pode ser realizado pelo driver virtual pode ser baseado em treinamento anterior, tal como através de uma rotina de calibração executada com uso do objeto.[0061] In step 402, an object in the one or more images is recognized. The object can be, for example, a hand, a finger or another part of a user's body. The object can also be a special purpose device, such as a Stylus pen or pen, or a special purpose hardware device such as a Stylus pen/motion tracking remote control that is communicatively coupled to the system and that contains accelerometers and/or tilt sensors. Object recognition can be performed by the virtual driver can be based on previous training, such as through a calibration routine performed using the object.

[0062] A Fig. 5A ilustra um exemplo de reconhecimento de objeto, de acordo com uma modalidade exemplificativa. Conforme mostrado na Fig. 5A, a imagem 501 inclui uma mão do usuário que foi reconhecida como objeto 502. O algoritmo de reconhecimento poderia, obviamente, ser configurado para reconhecer um objeto diferente, tal como um dedo.[0062] Fig. 5A illustrates an example of object recognition, according to an exemplary embodiment. As shown in Fig. 5A, image 501 includes a user's hand that has been recognized as object 502. The recognition algorithm could, of course, be configured to recognize a different object, such as a finger.

[0063] Voltando à Fig. 4, na etapa 403, uma ou mais orientações e uma ou mais posições do objeto reconhecido são determinadas. Isso pode ser realizado de várias maneiras. Se o objeto não for um dispositivo de hardware e sim uma parte do corpo, tal como uma mão ou um dedo, o objeto pode ser mapeado em um sistema de coordenadas tridimensional usando uma localização conhecida da câmera como um ponto de referência para determinar as coordenadas tridimensionais do objeto e os vários ângulos relativos aos eixos X, Y e Z. Se o objeto for um dispositivo de hardware e incluir hardware de rastreamento de movimento, tais como um acelerômetro e/ou sensores de inclinação, então a informação da imagem pode ser usada em conjunto com a informação indicada pelo acelerômetro e/ou pelos sensores de inclinação para determinar as posições e orientações do objeto.[0063] Returning to Fig. 4, in step 403, one or more orientations and one or more positions of the recognized object are determined. This can be done in a number of ways. If the object is not a hardware device but a body part, such as a hand or finger, the object can be mapped to a three-dimensional coordinate system using a known camera location as a reference point to determine coordinates three-dimensional dimensions of the object and the various angles relative to the X, Y, and Z axes. If the object is a hardware device and includes motion tracking hardware, such as an accelerometer and/or tilt sensors, then the image information can be used in conjunction with information indicated by the accelerometer and/or tilt sensors to determine object positions and orientations.

[0064] Na etapa 404, a entrada do usuário é determinada com base, pelo menos em parte, nas uma ou mais orientações e nas uma ou mais posições do objeto reconhecido. Isso pode incluir a determinação de coordenadas de localização em uma interface de usuário (IU) transparente da camada transparente com base, pelo menos em parte, nas uma ou mais orientações e nas uma ou mais posições. A IU transparente faz parte da camada transparente e está sobreposta a uma IU subjacente correspondente ao sistema operacional e/ou a quaisquer aplicativos em execução no sistema operacional.[0064] In step 404, user input is determined based, at least in part, on the one or more orientations and one or more positions of the recognized object. This can include determining location coordinates in a transparent UI (UI) of the transparent layer based, at least in part, on the one or more orientations and the one or more positions. The transparent UI is part of the transparent layer and is overlaid with an underlying UI corresponding to the operating system and/or any applications running on the operating system.

[0065] A Fig. 5B ilustra um exemplo desta etapa quando o objeto é o dedo de um usuário. Conforme mostrado na Fig. 5B, o dispositivo de exibição 503 inclui uma IU subjacente 506 e uma IU transparente 507 sobreposta à IU subjacente 506. Para fins de clareza, a IU transparente 507 é mostrada com sombreamento de pontos, mas entende-se que, na prática, a IU transparente é uma camada transparente que não é visível para o usuário. Adicionalmente, a IU transparente 507 é mostrada como sendo ligeiramente menor que a IU subjacente 506, mas entende-se que, na prática, a IU transparente cobriria a mesma área da tela que a IU subjacente.[0065] Fig. 5B illustrates an example of this step when the object is a user's finger. As shown in Fig. 5B, the display device 503 includes an underlying UI 506 and a transparent UI 507 superimposed on the underlying UI 506. For clarity, the transparent UI 507 is shown with dot shading, but it is understood that, in practice, the transparent UI is a transparent layer that is not visible to the user. Additionally, the transparent UI 507 is shown to be slightly smaller than the underlying UI 506, but it is understood that, in practice, the transparent UI would cover the same area of the screen as the underlying UI.

[0066] Conforme mostrado na Fig. 5B, as informações de posição e orientação do objeto (o dedo do usuário) são usadas para projetar uma linha no plano do dispositivo de exibição 503 e determinar um ponto de interseção 505. As informações de imagem capturadas pela câmera 504 e a posição conhecida do dispositivo de exibição 503 sob a câmera podem ser usadas para ajudar nesta projeção. Conforme mostrado na Fig. 5B, a entrada do usuário é determinada para ser coordenadas de entrada no ponto de interseção[0066] As shown in Fig. 5B, the position and orientation information of the object (the user's finger) is used to project a line in the plane of the display device 503 and determine an intersection point 505. The captured image information by camera 504 and the known position of display device 503 under the camera can be used to aid in this projection. As shown in Fig. 5B, user input is determined to be input coordinates at the intersection point.

505.505.

[0067] Conforme será discutido mais adiante, o comando real da camada transparente que é gerado com base nesta entrada pode ser baseado em configurações do usuário e/ou em um contexto identificado. Por exemplo, o comando pode ser um comando de toque indicando que um objeto nas coordenadas do ponto 505 deve ser selecionado e/ou aberto. O comando também pode ser um comando de apontar indicando que um ponteiro (tal como um ponteiro do mouse) deve ser movido para as coordenadas do ponto[0067] As will be discussed later, the actual transparent layer command that is generated based on this input can be based on user settings and/or an identified context. For example, the command can be a touch command indicating that an object at the coordinates of point 505 should be selected and/or opened. The command can also be a point command indicating that a pointer (such as a mouse pointer) should be moved to the point's coordinates.

505. Adicionalmente, o comando pode ser um comando de edição que modifica a saída gráfica no local (tal como para anotar na interface ou desenhar um elemento).505. Additionally, the command can be an edit command that modifies the graphical output in place (such as to annotate in the interface or draw an element).

[0068] Embora a Fig. 5B mostre o objeto reconhecido 502 como estando a alguma distância do dispositivo de exibição 503, uma entrada de toque pode ser detectada independentemente da distância. Por exemplo, se o usuário tocasse fisicamente o dispositivo de exibição 503, a técnica descrita acima ainda determinaria as coordenadas de entrada. Nesse caso, a linha de projeção entre o objeto 502 e o ponto de interseção seria apenas mais curta.[0068] Although Fig. 5B shows the recognized object 502 as being some distance from the display device 503, a touch input can be detected regardless of distance. For example, if the user were to physically touch the display device 503, the technique described above would still determine the input coordinates. In that case, the projection line between object 502 and the intersection point would just be shorter.

[0069] Obviamente, as entradas de toque não são o único tipo de entrada do usuário que pode ser determinado a partir das imagens capturadas. A etapa de determinar uma entrada do usuário com base, pelo menos em parte, nas uma ou mais orientações e nas uma ou mais posições do objeto reconhecido pode incluir determinar uma entrada de gesto. Em particular, as posições e orientações de um objeto reconhecido ao longo de múltiplas imagens poderiam ser analisadas para determinar um gesto correspondente, tal como um gesto de deslizar, um gesto de beliscar e/ou qualquer gesto conhecido ou personalizado. O usuário pode calibrar o driver virtual para reconhecer gestos personalizados que são mapeados para contextos específicos e para comandos dentro desses contextos. Por exemplo, o usuário pode criar um gesto personalizado que é mapeado para um contexto de sistema operacional e resulta na execução de um comando de sistema operacional nativo que inicia um aplicativo específico.[0069] Obviously, touch inputs are not the only type of user input that can be determined from the captured images. The step of determining user input based, at least in part, on the one or more orientations and one or more positions of the recognized object may include determining a gesture input. In particular, the positions and orientations of a recognized object across multiple images could be analyzed to determine a corresponding gesture, such as a slide gesture, a pinch gesture and/or any known or personalized gesture. The user can calibrate the virtual driver to recognize custom gestures that are mapped to specific contexts and to commands within those contexts. For example, the user can create a custom gesture that maps to an operating system context and results in the execution of a native operating system command that launches a specific application.

[0070] Conforme discutido anteriormente, as informações capturadas pelos um ou mais dispositivos de hardware na etapa 301 da Fig. 3 também podem incluir informações de som capturadas por um microfone. A Fig. 6 ilustra um fluxograma para determinar uma entrada do usuário baseada, pelo menos em parte, em informações capturadas por um ou mais dispositivos de hardware acoplados comunicativamente ao sistema quando as informações capturadas são informações de som. Conforme discutido abaixo, o reconhecimento de voz é realizado nas informações de som para identificar uma ou mais palavras correspondentes à entrada do usuário.[0070] As discussed above, the information captured by the one or more hardware devices in step 301 of Fig. 3 may also include sound information captured by a microphone. Fig. 6 illustrates a flowchart for determining user input based, at least in part, on information captured by one or more hardware devices communicatively coupled to the system when the captured information is sound information. As discussed below, speech recognition is performed on sound information to identify one or more words corresponding to user input.

[0071] Na etapa 601, os dados de som são recebidos. Os dados de som podem ser capturados por um dispositivo de hardware, tal como um microfone, e recebidos pelo driver virtual, conforme discutido acima. Na etapa 602, os dados de som recebidos podem ser comparados a um dicionário de som. O dicionário de som pode incluir assinaturas de som de uma ou mais palavras reconhecidas, tais como palavras de comando ou modificadores de comando. Na etapa 603, uma ou mais palavras nos dados de som são identificadas como a entrada do usuário com base na comparação. As uma ou mais palavras identificadas podem então ser convertidas em comandos de camada transparente e passadas para a camada transparente.[0071] In step 601, sound data is received. Sound data can be captured by a hardware device, such as a microphone, and received by the virtual driver, as discussed above. In step 602, the received sound data can be compared to a sound dictionary. The sound dictionary can include sound signatures of one or more recognized words, such as command words or command modifiers. At step 603, one or more words in the sound data are identified as user input based on the comparison. The one or more identified words can then be converted to transparent layer commands and passed to the transparent layer.

[0072] Conforme discutido anteriormente, o driver emulado pelo driver virtual, o tipo esperado de entrada do usuário e o comando gerado com base na entrada do usuário podem todos ser determinados com base, pelo menos em parte, em uma ou mais configurações ou entradas anteriores do usuário.[0072] As discussed earlier, the driver emulated by the virtual driver, the expected type of user input, and the command generated based on user input can all be determined based, at least in part, on one or more settings or inputs user's previous records.

[0073] A Fig. 7 ilustra uma interface de ferramenta 701 que pode também fazer parte da camada transparente. Ao contrário da IU transparente, a interface de ferramenta[0073] Fig. 7 illustrates a tool interface 701 that can also be part of the transparent layer. Unlike the transparent UI, the tool interface

701 é visível para o usuário e pode ser usada para selecionar entre diferentes opções que alteram o modo de emulação do driver virtual, os comandos nativos gerados com base na entrada do usuário ou realizar funções adicionais.701 is visible to the user and can be used to select between different options that change the virtual driver emulation mode, native commands generated based on user input, or perform additional functions.

[0074] O botão 701A permite que um usuário selecione o tipo de ferramenta de desenho usada para modificar graficamente a interface do usuário quando a entrada do usuário consiste em coordenadas de entrada (tais como coordenadas baseadas em um usuário tocando a tela com a mão ou uma caneta Stylus/controle remoto). As várias ferramentas de desenho podem incluir diferentes pincéis, cores, canetas, marcadores de texto etc. Essas ferramentas podem resultar em alterações gráficas de variados estilos, espessuras, cores etc.[0074] The 701A button allows a user to select the type of drawing tool used to graphically modify the user interface when user input consists of input coordinates (such as coordinates based on a user touching the screen with their hand or a Stylus pen/remote control). The various drawing tools can include different brushes, colors, pens, markers, etc. These tools can result in graphic changes of varying styles, thicknesses, colors, etc.

[0075] O botão 701B permite que o usuário alterne entre os modos de seleção, de apontar ou de desenho quando as coordenadas de entrada são recebidas como entrada do usuário. Em um modo de seleção, as coordenadas de entrada podem ser processadas como um “toque” e resultar na seleção ou abertura de um objeto nas coordenadas de entrada. No modo de apontar, as coordenadas podem ser processadas como a posição de um ponteiro (tal como um ponteiro do mouse), permitindo efetivamente ao usuário emular um mouse. No modo de desenho, as coordenadas podem ser processadas como um local onde alterar a saída gráfica da interface de usuário para apresentar a aparência de desenho ou escrita na interface de usuário. A natureza da alteração pode depender de uma ferramenta de desenho selecionada, conforme discutido com referência ao botão 701A. O botão 701B também pode alertar o driver virtual para esperar entrada de imagem e/ou entrada de movimento (se um dispositivo de rastreamento de movimento for usado) e para emular os drivers apropriados de acordo.[0075] The 701B button allows the user to toggle between selection, pointing or drawing modes when input coordinates are received as user input. In a selection mode, input coordinates can be processed as a “tap” and result in the selection or opening of an object at the input coordinates. In pointing mode, coordinates can be processed as the position of a pointer (such as a mouse pointer), effectively allowing the user to emulate a mouse. In drawing mode, coordinates can be rendered as a place to change the graphical user interface output to present the appearance of drawing or writing in the user interface. The nature of the change may depend on a selected drawing tool, as discussed with reference to button 701A. The 701B button can also alert the virtual driver to expect image input and/or motion input (if a motion tracking device is used) and to emulate the appropriate drivers accordingly.

[0076] O botão 701C alerta o driver virtual para esperar um comando de voz. Isso pode fazer com que o driver virtual emule os drivers correspondentes a um microfone acoplado para receber entrada de voz e para analisar a entrada de voz, conforme descrito em relação à Fig. 6.[0076] The 701C button alerts the virtual driver to expect a voice command. This can cause the virtual driver to emulate drivers corresponding to a microphone attached to receive voice input and to analyze voice input, as described in relation to Fig. 6.

[0077] O botão 701D abre um aplicativo inicializador que pode ser parte da camada transparente e pode ser usado para iniciar aplicativos dentro do sistema operacional ou para iniciar comandos específicos dentro de um aplicativo. O inicializador pode também ser usado para personalizar opções na camada transparente, tais como comandos de voz personalizados, gestos personalizados, comandos nativos personalizados para aplicativos associados à entrada do usuário e/ou para calibrar dispositivos de hardware e entrada do usuário (tais como calibração de voz, calibração de dispositivo de captura de movimento e/ou calibração de reconhecimento de objeto).[0077] The 701D button opens a launcher application that can be part of the transparent layer and can be used to launch applications within the operating system or to launch specific commands within an application. The launcher can also be used to customize options on the transparent layer, such as custom voice commands, custom gestures, custom native commands for apps associated with user input, and/or to calibrate hardware devices and user input (such as user input calibration). voice, motion capture device calibration and/or object recognition calibration).

[0078] O botão 701E pode ser usado para capturar uma captura de tela da interface do usuário e exportar a captura de tela como uma imagem. Isso pode ser usado em conjunto com o modo de desenho do botão 701B e as ferramentas de desenho do 701A. Depois que um usuário marcou uma interface de usuário específica, a versão marcada pode ser exportada como uma imagem.[0078] The 701E button can be used to capture a screenshot of the UI and export the screenshot as an image. This can be used in conjunction with the 701B button drawing mode and 701A drawing tools. Once a user has tagged a specific UI, the tagged version can be exported as an image.

[0079] O botão 701F também permite a edição gráfica e pode ser usado para alterar a cor de um desenho ou aspectos de um desenho que o usuário está criando na interface do usuário. Semelhante ao modo de desenho do botão 701B, esse botão altera a natureza de uma alteração gráfica nas coordenadas de entrada.[0079] The 701F button also allows for graphical editing and can be used to change the color of a design or aspects of a design that the user is creating in the user interface. Similar to the 701B button's drawing mode, this button changes the nature of a graphical change in input coordinates.

[0080] O botão 701G cancela um desenho na interface do usuário. A seleção deste botão pode remover todas as marcações gráficas na interface do usuário e redefinir a IU subjacente ao estado em que estava antes de o usuário criar um desenho.[0080] The 701G button cancels a drawing in the user interface. Selecting this button can remove all graphical markup in the user interface and reset the underlying UI to the state it was in before the user created a drawing.

[0081] O botão 701H pode ser usado para iniciar um aplicativo de quadro branco que permite ao usuário criar um desenho ou escrever usando o modo de desenho em um quadro branco virtual.[0081] The 701H button can be used to launch a whiteboard application that allows the user to create a drawing or write using the drawing mode on a virtual whiteboard.

[0082] O botão 701I pode ser usado para adicionar notas textuais a objetos, tais como objetos mostrados na IU do sistema operacional ou em uma IU de um aplicativo. As notas textuais podem ser interpretadas a partir de sinais de voz ou digitadas pelo usuário usando um teclado.[0082] The 701I button can be used to add textual notes to objects, such as objects shown in the operating system UI or in an application UI. Textual notes can be interpreted from voice signals or entered by the user using a keyboard.

[0083] O botão 701J pode ser usado para abrir ou fechar a interface da ferramenta[0083] The 701J button can be used to open or close the tool interface

701. Quando fechada, a interface da ferramenta pode ser minimizada ou removida inteiramente da interface de usuário subjacente.701. When closed, the tool interface can be minimized or removed entirely from the underlying user interface.

[0084] Conforme discutido anteriormente, uma caneta Stylus ou dispositivo de hardware remoto pode ser usado com o presente sistema, em conjunto com outros dispositivos de hardware, tais como uma câmera ou câmera de vídeo. A Fig. 8 ilustra um exemplo de uma caneta Stylus 801 que pode ser usada com o sistema. A caneta Stylus 801 pode se comunicar com um receptor de hardware 802, tal como através de Bluetooth. O receptor de hardware pode se conectar ao sistema de computador, tal como por meio da USB 802B, e os sinais da caneta Stylus passados para o sistema de computador por meio do receptor de hardware podem ser usados para controlar e interagir com o menu 803, que é semelhante à interface de ferramenta mostrada na Fig. 7.[0084] As discussed earlier, a Stylus stylus or remote hardware device can be used with the present system, in conjunction with other hardware devices such as a camera or video camera. Fig. 8 illustrates an example of a Stylus 801 pen that can be used with the system. The Stylus 801 pen can communicate with an 802 hardware receiver, such as via Bluetooth. The hardware receiver can connect to the computer system, such as via the USB 802B, and Stylus pen signals passed to the computer system via the hardware receiver can be used to control and interact with the 803 menu. which is similar to the tool interface shown in Fig. 7.

[0085] Conforme mostrado na Fig. 8, a caneta Stylus 801 pode incluir botões físicos 801A. Esses botões físicos 801A podem ser usados para ligar a caneta Stylus, navegar no menu 803 e fazer seleções. Adicionalmente, a caneta Stylus 801 pode incluir uma ponta distintiva 801B, que é capturada em imagens por uma câmera e reconhecida pelo driver virtual. Isso pode permitir que a caneta Stylus 801 seja usada para desenhar e editar no modo de desenho. A caneta Stylus 801 pode também incluir hardware de rastreamento de movimento, tais como um acelerômetro e/ou sensores de inclinação, para auxiliar na detecção de posição quando a caneta Stylus é usada para fornecer coordenadas de entrada ou gestos. Adicionalmente, o receptor de hardware 802 pode incluir um botão de calibração 802A que, quando pressionado, pode iniciar uma utilidade de calibração na interface do usuário. Isso permite a calibração da caneta Stylus.[0085] As shown in Fig. 8, the Stylus 801 pen may include physical buttons 801A. These 801A physical buttons can be used to turn on the Stylus pen, navigate the 803 menu and make selections. Additionally, the Stylus 801 pen can include a distinctive 801B nib, which is captured in images by a camera and recognized by the virtual driver. This can allow the Stylus 801 pen to be used for drawing and editing in drawing mode. The Stylus 801 pen may also include motion tracking hardware, such as an accelerometer and/or tilt sensors, to aid in position detection when the Stylus pen is used to provide input coordinates or gestures. Additionally, the 802 hardware receiver can include an 802A calibration button which, when pressed, can launch a calibration utility on the user interface. This allows for calibration of the Stylus pen.

[0086] Voltando à Fig. 3, na etapa 302 um contexto é identificado que corresponde à entrada do usuário. O contexto identificado compreende um dentre um sistema operacional ou um aplicativo em execução no sistema operacional.[0086] Returning to Fig. 3, in step 302 a context is identified that corresponds to user input. The identified context comprises one of an operating system or an application running on the operating system.

[0087] A Fig. 9 ilustra um fluxograma para identificar um contexto correspondente à entrada do usuário, de acordo com uma modalidade exemplificativa. Conforme mostrado na Fig. 9, os dados de sistema operacional 901, os dados de aplicativo 902 e os dados de entrada do usuário 903 podem todos ser usados para determinar um contexto 904.[0087] Fig. 9 illustrates a flowchart to identify a context corresponding to user input, according to an exemplary modality. As shown in Fig. 9, operating system data 901, application data 902 and user input data 903 can all be used to determine a context 904.

[0088] Os dados de sistema operacional 901 podem incluir, por exemplo, informações referentes a uma janela ativa no sistema operacional. Por exemplo, se a janela ativa for uma janela de calculadora, então o contexto pode ser determinado como um aplicativo de calculadora. Da mesma forma, se a janela ativa for uma janela do Microsoft Word, então o contexto pode ser determinado como o aplicativo Microsoft Word. Por outro lado, se a janela ativa for uma pasta de arquivos, o contexto ativo pode ser determinado como o sistema operacional. Os dados de sistema operacional podem também incluir informações adicionais, tais como quais aplicativos estão em execução no momento, um último aplicativo iniciado e quaisquer outras informações de sistema operacional que podem ser usadas para determinar o contexto.[0088] Operating system data 901 may include, for example, information regarding an active window in the operating system. For example, if the active window is a calculator window, then the context can be set to a calculator app. Likewise, if the active window is a Microsoft Word window, then the context can be set to Microsoft Word application. On the other hand, if the active window is a file folder, the active context can be determined as the operating system. Operating system data can also include additional information, such as which applications are currently running, a last launched application, and any other operating system information that can be used to determine context.

[0089] Os dados de aplicativo 902 podem incluir, por exemplo, informações sobre um ou mais aplicativos que estão em execução e/ ou informações mapeando aplicativos específicos para certos tipos de entrada do usuário. Por exemplo, um primeiro aplicativo pode ser mapeado para entrada de voz de modo que, sempre que um comando de voz for recebido, o contexto seja automaticamente determinado como o primeiro aplicativo. Em outro exemplo, um determinado gesto pode ser associado a um segundo aplicativo, de modo que, quando esse gesto for recebido como entrada, o segundo aplicativo seja iniciado ou fechado ou alguma ação dentro do segundo aplicativo será realizada.[0089] Application data 902 can include, for example, information about one or more applications that are running and/or information mapping specific applications to certain types of user input. For example, a first app can be mapped to voice input so that whenever a voice command is received, the context is automatically determined as the first app. In another example, a given gesture can be associated with a second app, so that when that gesture is received as input, the second app is started or closed, or some action within the second app is performed.

[0090] A entrada de usuário 903 pode também ser usada para determinar o contexto de variadas maneiras. Conforme discutido acima, certos tipos de entrada do usuário podem ser mapeados para certos aplicativos. No exemplo acima, a entrada de voz está associada a um contexto de um primeiro aplicativo. Adicionalmente, os atributos da entrada do usuário podem também ser usados para determinar um contexto. Gestos ou movimentos podem ser mapeados para aplicativos ou para o sistema operacional. Palavras específicas em comandos de voz podem também ser mapeadas para aplicativos ou para o sistema operacional. Coordenadas de entrada também podem ser usadas para determinar um contexto. Por exemplo, uma janela na interface do usuário na posição das coordenadas de entrada pode ser determinada e um aplicativo correspondente a essa janela pode ser determinado como o contexto.[0090] User input 903 can also be used to determine context in a variety of ways. As discussed above, certain types of user input can be mapped to certain applications. In the example above, the voice input is associated with a context of a first application. Additionally, user input attributes can also be used to determine a context. Gestures or movements can be mapped to applications or the operating system. Specific words in voice commands can also be mapped to applications or the operating system. Input coordinates can also be used to determine context. For example, a window in the UI at the position of the input coordinates can be determined and an application corresponding to that window can be determined as the context.

[0091] A Fig. 10 ilustra um exemplo de uso das coordenadas de entrada para determinar um contexto. Como mostrado na Fig. 10, o dispositivo de exibição 1001 está exibindo uma interface de usuário 1002. Também é mostrada uma câmera 1004 e uma camada transparente 1003 sobreposta sobre a interface de usuário subjacente 1002. Um usuário utiliza uma caneta Stylus 1000 para apontar para o local 1005 na interface de usuário 1002. Visto que o local 1005 está dentro de uma janela do aplicativo correspondente ao Aplicativo 1, então o Aplicativo 1 pode ser determinado como o contexto para a entrada do usuário, em oposição ao Aplicativo 2, ao Aplicativo 3 ou ao Sistema Operacional.[0091] Fig. 10 illustrates an example of using the input coordinates to determine a context. As shown in Fig. 10, display device 1001 is displaying a user interface 1002. Also shown is a camera 1004 and a transparent layer 1003 superimposed over the underlying user interface 1002. A user uses a Stylus 1000 pen to point to location 1005 in UI 1002. Since location 1005 is within an application window corresponding to Application 1, then Application 1 can be determined as the context for user input, as opposed to Application 2, to Application 3 or the Operating System.

[0092] Voltando à Fig. 3, na etapa 303 a entrada do usuário é convertida em um ou mais comandos de camada transparente com base, pelo menos em parte, no contexto identificado. Conforme discutido anteriormente, a camada transparente compreende uma interface de programação de aplicativo (API) configurada para fazer interface entre o driver virtual e o sistema operacional e/ou um aplicativo em execução no sistema operacional.[0092] Returning to Fig. 3, in step 303 the user input is converted into one or more transparent layer commands based, at least in part, on the identified context. As discussed earlier, the transparent layer comprises an application programming interface (API) configured to interface between the virtual driver and the operating system and/or an application running on the operating system.

[0093] A Fig. 11 ilustra um fluxograma para converter entrada do usuário em comandos de camada transparentes. Conforme mostrado na etapa 1104 da Fig. 11, o comando de camada transparente pode ser determinado com base, pelo menos em parte, no contexto identificado 1102 e na entrada do usuário 1103. O comando de camada transparente pode incluir um ou mais comandos nativos configurados para executar em um ou mais contextos correspondentes. O comando de camada transparente pode também incluir saídas de resposta a serem transmitidas para o driver virtual e para o(s) dispositivo(s) de hardware.[0093] Fig. 11 illustrates a flowchart for converting user input into transparent layer commands. As shown in step 1104 of Fig. 11, the transparent layer command may be determined based, at least in part, on the identified context 1102 and user input 1103. The transparent layer command may include one or more configured native commands to run in one or more matching contexts. The transparent layer command can also include response outputs to be transmitted to the virtual driver and hardware device(s).

[0094] O contexto identificado 1102 pode ser usado para determinar qual comando de camada transparente deve ser mapeado para a entrada do usuário. Por exemplo, se o contexto identificado for "sistema operacional", então uma entrada de gesto de deslizar pode ser mapeada para um comando de camada transparente que resulta na rolagem da interface do usuário através das janelas atualmente abertas no sistema operacional (minimizando uma janela aberta e maximizando uma próxima janela aberta). Alternativamente, se o contexto identificado for “aplicativo de navegador da web”, então a mesma entrada de gesto de deslizar pode ser mapeada para um comando de camada transparente que resulta na rolagem de uma página da Web.[0094] The identified context 1102 can be used to determine which transparent layer command should be mapped to user input. For example, if the identified context is "operating system", then a swipe gesture input can be mapped to a transparent layer command that results in the UI scrolling through currently open windows in the operating system (minimizing an open window and maximizing the next open window). Alternatively, if the identified context is “web browser application”, then the same swipe gesture input can be mapped to a transparent layer command that results in a web page scrolling.

[0095] A entrada de usuário 1103 também determina o comando da camada transparente, visto que entradas de usuário são especificamente mapeadas para certos comandos nativos dentro de um ou mais contextos e esses comandos nativos são parte do comando da camada transparente. Por exemplo, um comando de voz “Abrir e-mail” pode ser mapeado para um comando nativo específico do sistema operacional para inicializar o aplicativo de e-mail Outlook. Quando a entrada de voz é recebida e inclui as palavras reconhecidas “Abrir e-mail”, isso resulta em um comando de camada transparente sendo determinado que inclui o comando nativo para inicializar o Outlook.[0095] User input 1103 also determines the transparent layer command, as user inputs are specifically mapped to certain native commands within one or more contexts and these native commands are part of the transparent layer command. For example, an “Open Email” voice command can be mapped to an operating system-specific native command to launch the Outlook email application. When voice input is received and includes the recognized words “Open email”, this results in a transparent layer command being determined that includes the native command to launch Outlook.

[0096] Conforme mostrado na Fig. 11, os comandos de camada transparente podem também ser determinados com base em uma ou mais configurações de usuário 1101 e bibliotecas de API 1104. As bibliotecas de API 1104 podem ser usadas para pesquisar comandos nativos correspondentes a um contexto identificado e a uma entrada de usuário particular. No exemplo do gesto de deslizar e de um contexto de aplicativo de navegador da web, a biblioteca de API correspondente ao aplicativo de navegador da web pode ser consultada para as chamadas de API apropriadas para fazer com que seja realizada a rolagem de uma página da Web. Alternativamente, as bibliotecas de API 1104 podem ser omitidas e os comandos nativos podem ser mapeados direcionados para uma determinada entrada de usuário e contextos identificados.[0096] As shown in Fig. 11, transparent layer commands can also be determined based on one or more user settings 1101 and API libraries 1104. API libraries 1104 can be used to search for native commands corresponding to a identified context and a particular user input. In the example of the swipe gesture and a web browser application context, the API library corresponding to the web browser application can be queried for the appropriate API calls to make a web page scroll Alternatively, the 1104 API libraries can be omitted and native commands can be mapped to specific user input and identified contexts.

[0097] Na situação em que a entrada do usuário é determinada como sendo coordenadas de entrada, o comando de camada transparente é determinado com base, pelo menos em parte, nas coordenadas de localização da entrada e no contexto identificado. Neste caso, o comando de camada transparente pode incluir pelo menos um comando nativo no contexto identificado, o pelo menos um comando nativo sendo configurado para realizar uma ação nas coordenadas de localização correspondentes na IU subjacente.[0097] In the situation where the user input is determined to be input coordinates, the transparent layer command is determined based, at least in part, on the input location coordinates and the identified context. In this case, the transparent layer command may include at least one native command in the identified context, the at least one native command being configured to perform an action on the corresponding location coordinates in the underlying UI.

[0098] Quando há mais de uma ação possível mapeada para um determinado contexto e entrada do usuário, as configurações 1101 podem ser usadas para determinar o comando de camada transparente correspondente. Por exemplo, o botão 701B da Fig. 7 permite ao usuário selecionar entre os modos de seleção, de apontar ou de desenho quando as coordenadas de entrada são recebidas como entrada do usuário. Essa configuração pode ser usada para determinar o comando de camada transparente e, por extensão, qual comando nativo é realizado e qual ação é realizada. Neste caso, os comandos nativos possíveis podem incluir um comando de seleção configurado para selecionar um objeto associado às coordenadas de localização correspondentes na IU subjacente, um comando de ponteiro configurado para mover um ponteiro para as coordenadas de localização correspondentes na IU subjacente e um comando gráfico configurado para alterar a saída de exibição nas coordenadas de localização correspondentes na IU subjacente.[0098] When there is more than one possible action mapped to a given context and user input, settings 1101 can be used to determine the corresponding transparent layer command. For example, button 701B of Fig. 7 allows the user to select between selection, pointing or drawing modes when input coordinates are received as user input. This setting can be used to determine the transparent layer command and, by extension, which native command is taken and what action is taken. In this case, possible native commands can include a select command set to select an object associated with the corresponding location coordinates in the underlying UI, a pointer command set to move a pointer to the corresponding location coordinates in the underlying UI, and a graphical command set to change the display output at the corresponding location coordinates in the underlying UI.

[0099] A Fig. 12A ilustra um exemplo de recebimento de coordenadas de entrada quando o modo de seleção é selecionado. Conforme mostrado na Fig. 12A, o usuário apontou a caneta Stylus 1200 para a IU de sistema operacional 1202 (tendo IU transparente sobreposta 1203) no dispositivo de exibição 1201. De forma semelhante aos exemplos anteriores, a câmera 1204 pode ser usada para determinar a posição e as informações de orientação para a caneta Stylus 1200 e as coordenadas de entrada. Visto que o modo de seleção está selecionado e a caneta Stylus 1200 é apontada para a pasta 1205 dentro da IU de sistema operacional 1202, o comando de camada transparente determinado pode incluir um comando nativo de sistema operacional para selecionar um objeto associado às coordenadas de entrada (que neste caso é a pasta 1205). Em outro exemplo, se uma janela estivesse localizada nas coordenadas de entrada, isso resultaria na seleção de toda a janela.[0099] Fig. 12A illustrates an example of receiving input coordinates when the selection mode is selected. As shown in Fig. 12A, the user pointed the Stylus 1200 stylus at the 1202 operating system UI (having overlaid transparent UI 1203) on the 1201 display device. Similar to the previous examples, the camera 1204 can be used to determine the position and orientation information for the Stylus 1200 pen and the input coordinates. Since the selection mode is selected and the Stylus 1200 pen is pointed at the 1205 folder within the 1202 OS UI, the given transparent layer command can include a native OS command to select an object associated with the input coordinates (which in this case is folder 1205). In another example, if a window were located at the input coordinates, this would result in the selection of the entire window.

[0100] A Fig. 12B ilustra um exemplo de recebimento de coordenadas de entrada quando o modo de apontar está selecionado. Neste caso, o comando de camada transparente determinado pode incluir um comando nativo de sistema operacional para mover o ponteiro do mouse 1206 para o local das coordenadas de entrada.[0100] Fig. 12B illustrates an example of receiving input coordinates when pointing mode is selected. In this case, the determined transparent layer command may include a native operating system command to move mouse pointer 1206 to the location of the input coordinates.

[0101] A Fig. 12C ilustra um exemplo de recepção de coordenadas de entrada quando o modo de desenho está selecionado e o usuário deslizou a caneta Stylus 1200 sobre várias coordenadas de entrada. Neste caso, o comando de camada transparente determinado pode incluir um comando nativo de sistema operacional para alterar a saída de exibição nos locais de cada uma das coordenadas de entrada, resultando na linha de desenho do usuário 1207 na interface de usuário 1202. A saída gráfica modificada produzida no modo de desenho pode ser armazenada como parte da camada transparente 1203, por exemplo, como metadados relacionados a um caminho de coordenadas de entrada. O usuário pode então selecionar uma opção para exportar a saída de exibição alterada como uma imagem.[0101] Fig. 12C illustrates an example of receiving input coordinates when drawing mode is selected and the user has slid the Stylus 1200 over various input coordinates. In this case, the given transparent layer command may include a native operating system command to change the display output at the locations of each of the input coordinates, resulting in user drawing line 1207 in user interface 1202. The graphical output modified produced in design mode can be stored as part of transparent layer 1203, for example, as metadata related to an input coordinate path. The user can then select an option to export the altered display output as an image.

[0102] Na situação em que a entrada do usuário é identificada como um gesto, converter a entrada do usuário em um ou mais comandos de camada transparente com base, pelo menos em parte, no contexto identificado pode incluir determinar um comando de camada transparente com base, pelo menos em parte, no gesto identificado e no contexto identificado. O comando de camada transparente pode incluir pelo menos um comando nativo no contexto identificado, o pelo menos um comando nativo sendo configurado para realizar uma ação associada ao gesto identificado no contexto identificado. Um exemplo disso é discutido acima com relação a um gesto de deslizar e um contexto de aplicativo de navegador da web que resulta em um comando nativo configurado para realizar uma ação de rolagem no navegador da web.[0102] In the situation where user input is identified as a gesture, converting user input to one or more transparent layer commands based, at least in part, on the identified context may include determining a transparent layer command with based, at least in part, on the identified gesture and the identified context. The transparent layer command may include at least one native command in the identified context, the at least one native command being configured to perform an action associated with the identified gesture in the identified context. An example of this is discussed above with respect to a swipe gesture and a web browser application context that results in a native command configured to perform a scroll action in the web browser.

[0103] Na situação em que a entrada do usuário é identificada como uma ou mais palavras (tal como usando reconhecimento de voz), converter a entrada do usuário em um ou mais comandos de camada transparente com base, pelo menos em parte, no identificado pode incluir determinar um comando de camada transparente com base, pelo menos em parte, nas uma ou mais palavras identificadas e no contexto identificado. O comando de camada transparente pode incluir pelo menos um comando nativo no contexto identificado, o pelo menos um comando nativo sendo configurado para realizar uma ação associada às uma ou mais palavras identificadas no contexto identificado.[0103] In the situation where user input is identified as one or more words (such as using speech recognition), convert user input into one or more transparent layer commands based, at least in part, on the identified may include determining a transparent layer command based, at least in part, on the one or more identified words and the identified context. The transparent layer command may include at least one native command in the identified context, the at least one native command being configured to perform an action associated with the one or more words identified in the identified context.

[0104] A Fig. 13 ilustra um exemplo de um comando de camada transparente 1300 determinado com base em uma ou mais palavras identificadas em dados de voz de entrada. As palavras identificadas 1301 incluem uma das frases "quadro branco" ou "página em branco". O comando de camada transparente 1300 também inclui uma descrição 1302 do comando e instruções de resposta 1303 que são instruções de saída enviadas pela camada transparente para o driver virtual e para um dispositivo de saída de hardware após a execução do comando de camada transparente. Adicionalmente, o comando de camada transparente 1300 inclui o comando nativo real 1304 usado para chamar a função de quadro branco.[0104] Fig. 13 illustrates an example of a transparent layer command 1300 determined based on one or more words identified in input speech data. Words identified 1301 include one of the phrases "whiteboard" or "blank page". Transparent layer command 1300 also includes a description 1302 of the command and response instructions 1303 which are output instructions sent by the transparent layer to the virtual driver and to a hardware output device upon execution of the transparent layer command. Additionally, transparent layer command 1300 includes real native command 1304 used to invoke the whiteboard function.

[0105] A Fig. 14 ilustra outro exemplo de um comando de camada transparente 1400 determinado com base em uma ou mais palavras identificadas em dados de voz de entrada, de acordo com uma modalidade exemplificativa. Neste exemplo, as uma ou mais palavras são “abrir e-mail”. Conforme mostrado na Fig. 14, o comando de camada transparente 1400 inclui o comando nativo “outlook.exe”, que é uma instrução para executar um arquivo executável específico que inicializa o aplicativo Outlook. O comando de camada transparente 1400 também inclui uma resposta de voz “e-mail aberto” que será enviada em resposta ao recebimento do comando de voz.[0105] Fig. 14 illustrates another example of a transparent layer command 1400 determined based on one or more words identified in input voice data, according to an exemplary embodiment. In this example, the one or more words are “open email”. As shown in Fig. 14, the transparent layer command 1400 includes the native command “outlook.exe”, which is an instruction to run a specific executable file that launches the Outlook application. The transparent layer command 1400 also includes an “email open” voice response that will be sent in response to receipt of the voice command.

[0106] Voltando à Fig. 3, na etapa 304 os um ou mais comandos da camada transparente são executados na camada transparente. A execução dos um ou mais comandos de camada transparente é configurada para fazer com que seja realizada a execução de um ou mais comandos nativos no contexto identificado.[0106] Returning to Fig. 3, in step 304 the one or more commands of the transparent layer are executed in the transparent layer. The execution of one or more transparent layer commands is configured to cause the execution of one or more native commands in the identified context.

[0107] A Fig. 15 ilustra um fluxograma para executar os um ou mais comandos de camada transparente na camada transparente, de acordo com uma modalidade exemplificativa. Na etapa 1501, pelo menos um comando nativo no comando de camada transparente é identificado. O comando nativo pode ser, por exemplo, designado como um comando nativo dentro da estrutura do comando de camada transparente, permitindo a identificação.[0107] Fig. 15 illustrates a flowchart for executing the one or more transparent layer commands in the transparent layer, according to an exemplary embodiment. In step 1501, at least one native command in the transparent layer command is identified. The native command can be, for example, designated as a native command within the transparent layer command structure, allowing for identification.

[0108] Na etapa 1502, o pelo menos um comando nativo é executado no contexto identificado. Esta etapa pode incluir passar o pelo menos um comando nativo para o contexto identificado por meio de uma API identificada para esse contexto e executar o comando nativo dentro do contexto identificado. Por exemplo, se o contexto identificado for o sistema operacional, então o comando nativo pode ser passado ao sistema operacional para execução por meio da API do sistema operacional. Adicionalmente, se o contexto identificado for um aplicativo, então o comando nativo pode ser passado ao aplicativo para execução por meio da API do aplicativo.[0108] In step 1502, the at least one native command is executed in the identified context. This step may include passing the at least one native command to the identified context via an API identified to that context and executing the native command within the identified context. For example, if the identified context is the operating system, then the native command can be passed to the operating system for execution via the operating system API. Additionally, if the identified context is an application, then the native command can be passed to the application for execution via the application's API.

[0109] Opcionalmente, na etapa 1503 uma resposta pode ser transmitida para o(s) dispositivo(s) de hardware. Conforme discutido anteriormente, essa resposta pode ser roteada da camada transparente para o driver virtual e em seguida para o dispositivo de hardware.[0109] Optionally, in step 1503 a response may be transmitted to the hardware device(s). As discussed earlier, this response can be routed from the transparent layer to the virtual driver and then to the hardware device.

[0110] As Figs. 16 a 19 ilustram recursos adicionais do sistema revelado no presente documento. A Fig. 16 ilustra uma interface exemplificativa para adicionar novos comandos correspondentes a entradas de usuário, de acordo com uma modalidade exemplificativa. O painel na interface 1600 inclui ícones de aplicativos 1601 que já foram adicionados e podem ser iniciados usando entradas de usuário e dispositivos de hardware predeterminados (por exemplo, comandos de voz). O painel pode também mostrar outros comandos que são específicos dos aplicativos e que são mapeados para determinadas entradas do usuário. A seleção do botão de adição 1602 abre o menu de adicionar comando[0110] Figs. 16 to 19 illustrate additional features of the system disclosed herein. Fig. 16 illustrates an example interface for adding new commands corresponding to user inputs, according to an example modality. The panel on the 1600 interface includes 1601 application icons that have already been added and can be launched using predetermined user inputs and hardware devices (eg voice commands). The dashboard can also show other commands that are application-specific and that map to certain user inputs. Selecting the add button 1602 opens the add command menu

1603. Esse menu permite que os usuários selecionem entre as seguintes opções: Tipo do item: Item fixo para adicionar no menu da barra inferior / Item normal para adicionar em um menu de arrastar; Ícone: Selecione o ícone de imagem; Fundo: Selecione a cor do ícone de fundo; Cor: Selecione a cor do ícone; Nome: Defina o nome do novo item; Comando de voz: Defina o comando de ativação por voz para abrir o novo aplicativo; Resposta de feedback: Defina o feedback de resposta de voz do aplicativo; Comando: Selecione o tipo de aplicativo ou tipo de comando personalizado para iniciar (por exemplo, comando de iniciar o aplicativo, comando de realizar ação dentro do aplicativo, comando de fechar o aplicativo etc.); Início do Processo: se estiver iniciando um novo processo ou aplicativo, o nome do processo ou aplicativo; e Parâmetro: quaisquer parâmetros para passar para o novo processo ou aplicativo.1603. This menu allows users to select from the following options: Item Type: Fixed item to add to the bottom bar menu / Normal item to add to a drag menu; Icon: Select the image icon; Background: Select the background icon color; Color: Select icon color; Name: Set the name of the new item; Voice command: Set the voice activation command to open the new application; Feedback Response: Set the app's voice response feedback; Command: Select the type of application or type of custom command to launch (eg, start application command, perform action within application command, close application command, etc.); Process Start: if starting a new process or application, the name of the process or application; e Parameter: any parameters to pass to the new process or application.

[0111] A Fig. 17 ilustra vários componentes e opções da interface de desenho 1700 e modo de desenho, de acordo com uma modalidade exemplificativa. A Fig. 18 ilustra uma interface de calibração e configurações 1800 para um dispositivo de hardware de câmera de vídeo que é usado para reconhecer objetos e permite que um usuário forneça entrada usando toque e gestos. A Fig. 19 ilustra uma interface de configurações gerais 1900 que permite ao usuário personalizar vários aspectos da interface, alternar modos de entrada e fazer outras alterações. Conforme mostrado na interface 1900, um usuário também pode acessar uma página de configurações para calibrar e ajustar as configurações para um hardware caneta Stylus (denominada como “Caneta Stylus Mágica”).[0111] Fig. 17 illustrates various components and options of the 1700 drawing interface and drawing mode, according to an exemplary modality. Fig. 18 illustrates an 1800 calibration and settings interface for a video camera hardware device that is used to recognize objects and allows a user to provide input using touch and gestures. Fig. 19 illustrates a 1900 general settings interface that allows the user to customize various aspects of the interface, switch input modes, and make other changes. As shown in the 1900 interface, a user can also access a settings page to calibrate and adjust settings for a Stylus pen hardware (referred to as “Magic Stylus Pen”).

[0112] O sistema revelado no presente documento pode ser implementado em múltiplos dispositivos de computação em rede e usado como um auxílio na condução de sessões de colaboração em rede. Por exemplo, a funcionalidade do quadro branco descrita anteriormente pode ser um quadro branco compartilhado entre vários usuários em vários dispositivos de computação.[0112] The system disclosed in this document can be implemented on multiple network computing devices and used as an aid in conducting network collaboration sessions. For example, the whiteboard functionality described above might be a whiteboard shared between multiple users on multiple computing devices.

[0113] Espaços de colaboração em rede são frequentemente usados para gerenciamento de projetos e desenvolvimento de software para coordenar atividades entre os membros da equipe, organizar e priorizar tarefas e debater novas ideias. Por exemplo, Scrum é uma estrutura ágil para gerenciamento de trabalho e projetos em que desenvolvedores ou outros participantes colaboram em equipes para resolver problemas específicos através de troca de informações e ideias em tempo real (pessoalmente ou online). A estrutura Scrum é frequentemente implementada usando um quadro Scrum, em que usuários postam continuamente notas de post-it físicas ou digitais contendo ideias, tópicos ou outras contribuições durante uma sessão de debate.[0113] Networked collaboration spaces are often used for project management and software development to coordinate activities among team members, organize and prioritize tasks, and brainstorm new ideas. For example, Scrum is an agile framework for work and project management where developers or other participants collaborate in teams to solve specific problems through the exchange of information and ideas in real time (in person or online). The Scrum framework is often implemented using a Scrum board, where users continually post physical or digital post-it notes containing ideas, topics, or other contributions during a brainstorming session.

[0114] Um dos problemas com quadros brancos existentes e outros espaços de colaboração compartilhada, tais como quadros Scrum em rede, é que as informações que são transmitidas através das notas de post-it digitais se limitam a conteúdo textual, sem qualquer informação contextual referente a uma contribuição (tal como uma ideia, uma tarefa etc.) de um participante e sem qualquer informação de apoio que possa tornar mais fácil e eficiente compartilhar ideias em um espaço em rede, particularmente quando tempo é um recurso valioso. Adicionalmente, visto que as sessões de Scrum podem às vezes envolver várias equipes que têm responsabilidades diferentes, a inabilidade de notas de post-it digitais para restringir seletivamente o acesso às ideias contidas pode introduzir vulnerabilidades adicionais na forma de exposição de informações potencialmente confidenciais ou sensíveis aos colaboradores em equipes diferentes ou que tenham privilégios de segurança diferentes.[0114] One of the problems with existing whiteboards and other spaces for shared collaboration, such as networked Scrum boards, is that the information that is transmitted through digital post-it notes is limited to textual content, without any contextual information regarding to a contribution (such as an idea, a task, etc.) from a participant and without any supporting information that would make it easier and more efficient to share ideas in a network space, particularly when time is a valuable resource. Additionally, since Scrum sessions can sometimes involve multiple teams that have different responsibilities, the inability of digital post-it notes to selectively restrict access to contained ideas can introduce additional vulnerabilities in the form of exposure of potentially confidential or sensitive information to employees on different teams or who have different security privileges.

[0115] Não há atualmente nenhuma maneira eficiente para empacotar dados de contribuição da colaboração dos colaboradores com dados de conteúdo relacionados e dados de controle de acesso em um formato que seja transportável de maneira eficiente através de uma rede para diversos dispositivos de computação em rede dentro de sessões de colaboração e em um formato que inclua simultaneamente funcionalidade para inserir ou usar em sessões de gerenciamento de projeto em rede, tais como sessões de Scrum.[0115] There is currently no efficient way to package contributor collaboration contribution data with related content data and access control data in a format that is efficiently transportable across a network to various networked computing devices within of collaboration sessions and in a format that simultaneously includes functionality to insert or use in networked project management sessions, such as Scrum sessions.

[0116] Além dos métodos e sistemas descritos anteriormente para a implementação de uma interface de hardware-software universal, a Requerente concebeu adicionalmente métodos, aparelhos e mídias legíveis por computador que permitem a propagação de objetos de dados de nota enriquecidas através de uma conexão de soquete da web em um espaço de trabalho de colaboração em rede e que resolvem os problemas acima mencionados.[0116] In addition to the methods and systems described above for the implementation of a universal hardware-software interface, the Applicant has additionally devised computer-readable methods, apparatus and media that allow the propagation of enriched note data objects through a connection of web socket into a network collaboration workspace and that solve the aforementioned problems.

[0117] A Fig. 20 ilustra um fluxograma para propagar objetos de dados de nota enriquecidas através de uma conexão de soquete da web em um espaço de trabalho de colaboração em rede, de acordo com uma modalidade exemplificativa. Todas as etapas mostradas em na Fig. 20 podem ser realizadas em um dispositivo de computação local, tal como um dispositivo de cliente conectado a um servidor, e não requerem múltiplos dispositivos de computação. O processo revelado pode também ser implementado por múltiplos dispositivos conectados a um servidor ou por um dispositivo de computação que atua tanto como um dispositivo de computação local quanto como um servidor que hospeda uma sessão de colaboração em rede para um ou mais outros dispositivos de computação.[0117] Fig. 20 illustrates a flowchart for propagating enriched note data objects through a web socket connection in a network collaboration workspace, according to an exemplary modality. All of the steps shown in Fig. 20 can be performed on a local computing device, such as a client device connected to a server, and do not require multiple computing devices. The disclosed process can also be implemented by multiple devices connected to a server or by a computing device that acts as both a local computing device and a server hosting a network collaboration session for one or more other computing devices.

[0118] Na etapa 2001 uma representação de um espaço de trabalho de colaboração hospedado em um servidor é transmitida em uma interface de usuário de um dispositivo de computação local. O espaço de trabalho de colaboração é acessível a uma pluralidade de participantes em uma pluralidade de dispositivos de computação através de uma conexão de soquete da web, incluindo um participante local no dispositivo de computação local e um ou mais participantes remotos em dispositivos de computação remotos. Conforme usado no presente documento, dispositivos de computação remotos e participantes remotos se referem a dispositivos de computação e participantes além do participante local e do dispositivo de computação local. Dispositivos de computação remota são separados do dispositivo local por uma rede, tal como uma rede de longa distância (WAN).[0118] In step 2001 a representation of a collaboration workspace hosted on a server is streamed in a user interface of a local computing device. The collaboration workspace is accessible to a plurality of participants on a plurality of computing devices through a web socket connection, including a local participant on the local computing device and one or more remote participants on remote computing devices. As used herein, remote computing devices and remote participants refer to computing devices and participants in addition to the local participant and the local computing device. Remote computing devices are separated from the local device by a network, such as a wide area network (WAN).

[0119] A Fig. 21A ilustra a arquitetura de rede usada para hospedar e transmitir o espaço de trabalho de colaboração, de acordo com uma modalidade exemplificativa. Conforme mostrado na Fig. 21A, servidor 2100 está conectado aos dispositivos de computação 2101A-2101F. O servidor 2100 e os dispositivos de computação 2101A-2101F podem estar conectados por meio de uma conexão de rede, tal como conexão de soquete da web, que permite uma comunicação bidirecional entre os dispositivos de computação 2101A-2101F (clientes) e o servidor 2100. Conforme mostrado na Fig. 21A, os dispositivos de computação podem ser qualquer tipo de dispositivo de computação, tal como um computador do tipo laptop, computador do tipo desktop, telefone inteligente ou outro dispositivo móvel. Adicionalmente, enquanto o servidor 2100 é mostrado como uma entidade separada, entende-se que qualquer um dos dispositivos de computação 2101A- 2101F pode também servir como um servidor para os outros dispositivos de computação,[0119] Fig. 21A illustrates the network architecture used to host and transmit the collaboration workspace, according to an exemplary modality. As shown in Fig. 21A, server 2100 is connected to computing devices 2101A-2101F. The 2100 server and 2101A-2101F computing devices can be connected through a network connection, such as a web socket connection, which allows bidirectional communication between the 2101A-2101F computing devices (clients) and the 2100 server As shown in Fig. 21A, the computing devices can be any type of computing device, such as a laptop computer, desktop computer, smart phone, or other mobile device. Additionally, while server 2100 is shown as a separate entity, it is understood that any of the computing devices 2101A-2101F may also serve as a server for the other computing devices,

significando que os dispositivos de computação realizam as funções de um servidor ao hospedar a sessão de colaboração mesmo que se trate de um participante na própria sessão de colaboração.meaning that computing devices perform the functions of a server by hosting the collaboration session even if it is a participant in the collaboration session itself.

[0120] O espaço de trabalho de colaboração pode ser, por exemplo, um quadro branco digital configurado para propagar quaisquer edições de quaisquer participantes na pluralidade de participantes a outros participantes através da conexão de soquete da web. A Fig. 21B ilustra o processo para a propagação de edições para o espaço de trabalho de colaboração dentro da rede, de acordo com uma modalidade exemplificativa. Conforme mostrado na Fig. 21B, se um usuário no dispositivo de computação 2101B faz uma edição ou uma alteração no espaço de trabalho de colaboração, essa edição ou alteração 2102B é enviada ao servidor 2100, onde ela é usada para atualizar a versão hospedada do espaço de trabalho. A edição ou a alteração é então propagada como atualizações 2102A, 2102C, 2102D, 2102E e 2102F pelo servidor 2100 aos outros os dispositivos de computação conectados 2101A, 2101C, 2101D, 2101E e 2101F.[0120] The collaboration workspace can be, for example, a digital whiteboard configured to propagate any edits from any participants in the plurality of participants to other participants through the web socket connection. Fig. 21B illustrates the process for propagating edits to the collaborative workspace within the network, according to an exemplary embodiment. As shown in Fig. 21B, if a user on computing device 2101B makes an edit or change to the collaboration workspace, that edit or change 2102B is sent to server 2100, where it is used to update the hosted version of the space. of work. The edit or change is then propagated as updates 2102A, 2102C, 2102D, 2102E, and 2102F by the 2100 server to the other connected computing devices 2101A, 2101C, 2101D, 2101E, and 2101F.

[0121] Cada representação do espaço de trabalho de colaboração pode ser uma versão do espaço de trabalho de colaboração que é personalizada para um participante local. Por exemplo, conforme discutido acima, cada representação do espaço de trabalho de colaboração pode incluir um ou mais objetos de participantes remotos correspondendo a um ou mais dispositivos de computação remotos conectados ao servidor.[0121] Each Collaboration Workspace representation can be a version of the Collaboration Workspace that is customized for a local participant. For example, as discussed above, each representation of the collaboration workspace can include one or more remote participant objects corresponding to one or more remote computing devices connected to the server.

[0122] A Fig. 22 ilustra múltiplas representações de um espaço de trabalho de colaboração, de acordo com uma modalidade exemplificativa. Conforme mostrado na Fig. 22, o servidor 2200 hospeda o espaço de trabalho de colaboração 2201. A versão do espaço de trabalho de colaboração hospedado no servidor é propagada aos dispositivos conectados, conforme discutido anteriormente. A Fig. 22 também ilustra as representações do espaço de trabalho de colaboração para três usuários conectados, Usuário 1, Usuário 2 e Usuário 3. Cada representação pode opcionalmente ser personalizada para o participante local (ao dispositivo de computação local em cada localização).[0122] Fig. 22 illustrates multiple representations of a collaborative workspace, according to an exemplary modality. As shown in Fig. 22, server 2200 hosts collaboration workspace 2201. The version of the collaboration workspace hosted on the server is propagated to connected devices, as discussed earlier. Fig. 22 also illustrates the collaboration workspace representations for three connected users, User 1, User 2 and User 3. Each representation can optionally be customized for the local participant (to the local computing device at each location).

[0123] De volta à Fig. 20, na etapa 2002 um objeto de dados de nota enriquecida é gerado pelo dispositivo de computação local. O objeto de dados de nota enriquecida é criado em resposta a entradas do usuário (por exemplo, através de uma interface de usuário) e inclui texto conforme selecionado ou inserido pelo usuário e configurado para ser exibido, um ou mais controles acessíveis ao usuário configurados para serem exibidos, e pelo menos um arquivo de conteúdo que é selecionado pelo usuário. O objeto de dados de nota enriquecida é configurado para exibir o texto e os um ou mais controles acessíveis ao usuário dentro de um elemento de interface de usuário de nota enriquecida que é definido pelo objeto de dados de nota enriquecida e é adicionalmente configurado para abrir o pelo menos um arquivo de conteúdo em resposta à seleção de um controle de exibição nos um ou mais controles acessíveis ao usuário. Por exemplo, o objeto de dados de nota enriquecida pode incluir os scripts ou o software inseridos configurados para exibir o elemento de interface de usuário da nota e os controles acessíveis ao usuário. O objeto de dados de nota enriquecida pode, por exemplo, armazenar um link ou ponteiro para um endereço de um arquivo de conteúdo em associação com ou como parte de um script de controle de exibição que seja parte do objeto de dados de nota enriquecida e armazenar o item de conteúdo real em uma porção separada do objeto de dados de nota enriquecida. Neste caso, o link ou ponteiro pode fazer referência ao endereço do item de conteúdo dentro da porção separada do objeto de dados de nota enriquecida. O item de conteúdo pode ser qualquer tipo de item de conteúdo, tal como um arquivo de vídeo, um arquivo de imagem, um arquivo de áudio, um documento, uma planilha, uma página da Web.[0123] Back to Fig. 20, in step 2002 an enriched note data object is generated by the local computing device. The enriched note data object is created in response to user input (for example, through a user interface) and includes text as selected or entered by the user and configured to be displayed, one or more user-accessible controls configured to to be displayed, and at least one content file that is selected by the user. The enriched note data object is configured to display the text and one or more user-accessible controls within an enriched note user interface element that is defined by the enriched note data object and is further configured to open the at least one content file in response to selecting a display control from one or more user-accessible controls. For example, the enriched grade data object might include embedded scripts or software configured to display the grade's user interface element and user-accessible controls. The enriched note data object can, for example, store a link or pointer to an address of a content file in association with or as part of a display control script that is part of the enriched note data object and store the actual content item in a separate portion of the enriched grade data object. In this case, the link or pointer may reference the address of the content item within the separate portion of the enriched note data object. The content item can be any type of content item, such as a video file, an image file, an audio file, a document, a spreadsheet, a web page.

[0124] Uma nota enriquecida é um elemento especializado de interface de usuário que é o componente visual de um objeto de dados de nota enriquecida. A nota enriquecida é uma nota acoplada ao conteúdo ou ligada ao conteúdo em que a estrutura de dados subjacente (o objeto de dados de nota enriquecida) liga o texto exibido (a nota) com um item de conteúdo correspondente dentro do objeto de dados de nota enriquecida que foi selecionado por um usuário. Esse conteúdo ligado armazenado no objeto de dados de nota enriquecida é então acessível através da nota enriquecida por meio do controle acessível ao usuário da nota enriquecida. A nota enriquecida (e a estrutura de dados subjacente correspondente do objeto de dados de nota enriquecida), desse modo, age como uma nota de Post-It® digitalizada dinâmica na medida em que ela liga na memória de um dispositivo de exibição certo texto exibido com um item de conteúdo subjacente em uma maneira que seja acessível, móvel e compartilhável através de uma sessão de colaboração em rede tendo muitos participantes. A nota enriquecida (e o objeto de dados de nota enriquecida subjacente) oferece funcionalidade ainda maior na medida em que pode ser “fixada” a qualquer tipo de conteúdo (não apenas documentos) e integra controles de acesso dinâmico e outras funcionalidades. Conforme será discutido mais detalhadamente adiante, o objeto de dados de nota enriquecida resolve os problemas existentes em sessões de colaboração em rede porque oferece a funcionalidade de ligar contribuições dos participantes às notas que estão “afixadas” a determinadas localizações virtuais permitindo simultaneamente que cada participante interaja de maneira independente com as notas enriquecidas e acesse o conteúdo ligado relacionado.[0124] An enriched note is a specialized user interface element that is the visual component of an enriched note data object. The enriched note is a content-bound or content-linked note where the underlying data structure (the enriched note data object) links the displayed text (the note) with a corresponding content item within the note data object enriched that was selected by a user. This linked content stored in the enriched note data object is then accessible through the enriched note via the user accessible control of the enriched note. The enriched note (and the corresponding underlying data structure of the enriched note data object) thus acts like a dynamic digitized Post-It® note as it plugs into the memory of a display device certain displayed text with an underlying content item in a way that is accessible, mobile and shareable through a network collaboration session having many participants. The Enriched Note (and the underlying Enriched Note data object) provides even greater functionality in that it can be “pinned” to any type of content (not just documents) and integrates dynamic access controls and other functionality. As will be discussed in more detail later, the enriched grade data object solves the problems that exist in network collaboration sessions because it offers the functionality to link participant contributions to grades that are “pinned” to certain virtual locations while allowing each participant to interact independently with the enriched notes and access related linked content.

[0125] As Figs. 23A-23B ilustram um processo usado para gerar o objeto de dados de nota enriquecida dentro de um espaço de trabalho de colaboração em rede, de acordo com uma modalidade exemplificativa.[0125] Figs. 23A-23B illustrate a process used to generate the enriched note data object within a network collaboration workspace, according to an exemplary embodiment.

[0126] A Fig. 23A ilustra um exemplo da interface de usuário (área de trabalho) de um dispositivo de computação local antes de receber um pedido para gerar o objeto de dados de nota enriquecida. Conforme mostrado na Fig. 23A, a interface de usuário 2301 inclui um aplicativo de colaboração 2302 que exibe localmente a representação do espaço de trabalho de colaboração 2303 hospedado no servidor.[0126] Fig. 23A illustrates an example of the user interface (desktop) of a local computing device before receiving a request to generate the enriched note data object. As shown in Fig. 23A, user interface 2301 includes a collaboration application 2302 that locally displays the representation of collaboration workspace 2303 hosted on the server.

[0127] O aplicativo de colaboração 2302 pode incluir a representação do espaço de trabalho de colaboração 2303 que contém todas as edições e contribuições feitas pelo participante local e por quaisquer outros participantes, assim como uma barra de ferramentas 2304. A barra de ferramentas 2304 pode incluir várias ferramentas, configurações e opções de edição para interagir com ou configurar a representação do espaço de trabalho de colaboração. Por exemplo, a barra de ferramentas 2304 pode incluir ferramentas de edição para desenhar na representação do espaço de trabalho de colaboração 2303, com edições sendo propagadas através da conexão de soquete da web para o servidor e outros dispositivos computados conectados.[0127] Collaboration application 2302 can include the representation of Collaboration Workspace 2303 which contains all edits and contributions made by the local participant and any other participants, as well as a 2304 toolbar. The 2304 toolbar can include various tools, settings, and editing options to interact with or configure the representation of the collaboration workspace. For example, toolbar 2304 may include editing tools to draw on the representation of collaboration workspace 2303, with edits being propagated through the web socket connection to the server and other connected computing devices.

[0128] A barra de ferramentas 2304 inclui adicionalmente um botão de nota enriquecida 2305 que, quando selecionado, faz com que o dispositivo de computação local exiba um aviso ou uma interface que permite que o usuário que está selecionando gere uma nota enriquecida e especifique os atributos e as características da nota enriquecida. Um usuário pode, consequentemente, começar o processo de gerar uma nota enriquecida ao selecionar o botão de compartilhamento de tela 2305. Observe que, conforme usado no presente documento, a "nota enriquecida" se refere a um elemento de interface de usuário correspondente ao "objeto de dados de nota enriquecida". Como será discutido mais detalhadamente adiante, o "objeto de dados de nota enriquecida" inclui dados, tais como scripts automatizados, arquivos de conteúdo ou links para arquivos de conteúdo, configurações de privacidade e outros parâmetros de configuração que não são sempre exibidos como parte da "nota enriquecida”.[0128] Toolbar 2304 additionally includes an enriched note button 2305 which, when selected, causes the local computing device to display a prompt or an interface that allows the user who is selecting to generate an enriched note and specify the attributes and characteristics of the enriched note. A user can therefore begin the process of generating an enriched note by selecting screen sharing button 2305. Note that as used in this document, "enriched note" refers to a UI element corresponding to " enriched note data object". As will be discussed in more detail later, the "enriched note data object" includes data such as automated scripts, content files or links to content files, privacy settings, and other configuration parameters that are not always displayed as part of the "enriched note".

[0129] A Fig. 23B ilustra um exemplo da interface de usuário (área de trabalho) 2301 do dispositivo de computação local depois de o usuário ter selecionado o botão de nota enriquecida 2305 da barra de ferramentas 2304. Conforme mostrado na Fig. 23B, a seleção do botão de nota enriquecida 2305 faz com que o dispositivo de computação local exiba uma interface de criação de nota enriquecida 2306.[0129] Fig. 23B illustrates an example of the user interface (desktop) 2301 of the local computing device after the user has selected the enriched note button 2305 from the toolbar 2304. As shown in Fig. 23B, selecting enriched note button 2305 causes the local computing device to display an enriched note creation interface 2306.

[0130] A interface de criação de nota enriquecida 2306 inclui múltiplas áreas de entrada, incluindo uma área de entrada de texto 2306A que permite ao usuário digitar uma mensagem que será exibida na face da nota enriquecida. Alternativamente, o usuário pode selecionar a partir de um número de mensagens predefinidas. Por exemplo, uma lista de mensagens predeterminadas pode ser exibida em resposta ao usuário que seleciona a área de entrada de texto 2306A e o usuário pode então selecionar uma das mensagens predeterminadas.[0130] The enriched note creation interface 2306 includes multiple entry areas, including a 2306A text entry area that allows the user to type in a message that will be displayed on the face of the enriched note. Alternatively, the user can select from a number of predefined messages. For example, a list of predetermined messages may be displayed in response to the user selecting text entry area 2306A and the user may then select one of the predetermined messages.

[0131] A interface de criação de notas enriquecidas 2306 inclui adicionalmente um botão de anexar conteúdo 2603B. Selecionando-se o botão de anexar conteúdo 2306B, uma interface pode ser exibida que permite a um usuário selecionar um arquivo de conteúdo a partir de uma pasta local ou da rede para ser incluído no objeto de dados de nota enriquecida e acessível a partir da nota enriquecida. Além disso, a seleção do botão de anexar conteúdo 2306B pode também resultar na exibição de uma interface de inclusão de conteúdo, tal como uma ferramenta de rascunho ou outra interface de entrada que permite ao usuário criar diretamente o conteúdo. Neste caso, o conteúdo criado pode ser automaticamente salvo como um arquivo em pasta e o arquivo criado pode ser associado à nota enriquecida. Conforme discutido anteriormente, o item de conteúdo pode ser qualquer tipo de item de conteúdo, tal como um arquivo de vídeo, um arquivo de imagem, um arquivo de áudio, um documento, uma planilha e/ou uma página da Web. O usuário pode também especificar o conteúdo incluindo um link, tal como um link de página da Web, em que o conteúdo relevante pode ser baixado da página da Web e anexado como um documento de página da Web (tal como um arquivo HTML). Alternativamente, dada a prevalência de navegadores da web, o link de página da Web pode ser ele mesmo classificado como o conteúdo anexado, onde o usuário que recebe a nota enriquecida iria simplesmente ter que clicar no link para acessar o conteúdo a partir da fonte da Web relevante dentro de seu navegador local.[0131] The enriched notes creation interface 2306 additionally includes an attach content button 2603B. By selecting attach content button 2306B, an interface can be displayed that allows a user to select a content file from a local or network folder to be included in the enriched note data object and accessible from the note enriched. In addition, selecting the attach content button 2306B may also result in the display of a content inclusion interface, such as a drafting tool or other input interface that allows the user to directly create content. In this case, the created content can be automatically saved as a folder file and the created file can be associated with the enriched note. As discussed earlier, the content item can be any type of content item, such as a video file, an image file, an audio file, a document, a spreadsheet and/or a web page. also specify content including a link, such as a webpage link, where relevant content can be downloaded from the webpage and attached as a webpage document (such as an HTML file). Alternatively, given the prevalence of web browsers, the webpage link could itself be classified as the attached content, where the user receiving the enriched note would simply have to click on the link to access the content from the source of the Relevant web within your local browser.

[0132] A interface de criação de nota enriquecida 2306 inclui adicionalmente um botão ‘importante’ 2603C. Ao selecionar-se o botão ‘importante’ 2306C, uma bandeira de importância associada à nota enriquecida pode ser definida como verdadeira. Isto resulta em a nota enriquecida ser exibida com um indicador de ‘importante’ (tal como um gráfico ou uma mensagem) que alerta os visualizadores de que a nota enriquecida é considerada como sendo urgente ou importante.[0132] The enriched note creation interface 2306 additionally includes an 'important' button 2603C. By selecting the 'important' button 2306C, an importance flag associated with the enriched note can be set to true. This results in the enriched note being displayed with an 'important' indicator (such as a graphic or a message) that alerts viewers that the enriched note is considered to be urgent or important.

[0133] A interface de criação de nota enriquecida 2306 inclui adicionalmente um botão de privacidade 2306D. Ao selecionar-se o botão de privacidade 2306D, uma interface pode ser exibida permitindo que um usuário insira configurações de privacidade. As configurações de privacidade podem permitir que o usuário configure controles de acesso para a porção de conteúdo da nota enriquecida, tais como uma senha, uma verificação de autenticação e/ou de uma lista de participantes aprovados. Quando uma lista de participantes aprovados é utilizada, os endereços de IP associados a cada um dos participantes aprovados podem ser obtidos a partir do servidor através da conexão de soquete da web e ser ligados aos controles de acesso, de modo que a porção de conteúdo da nota enriquecida possa somente ser acessada a partir de endereços de IP associados a usuários aprovados. Alternativamente, o criador da nota enriquecida pode especificar algum identificador de cada participante aprovado e esses participantes podem inserir o identificador apropriado para ter acesso ao conteúdo. Muitas variações de controles de privacidade são possíveis e esses exemplos não são destinados a serem limitativos.[0133] The enriched note creation interface 2306 additionally includes a privacy button 2306D. By selecting the 2306D privacy button, an interface can be displayed allowing a user to enter privacy settings. Privacy settings can allow the user to configure access controls for the content portion of the enriched note, such as a password, an authentication check and/or a list of approved participants. When an approved participant list is used, the IP addresses associated with each of the approved participants can be obtained from the server through the web socket connection and be linked to access controls, so that the content portion of the enriched note can only be accessed from IP addresses associated with approved users. Alternatively, the creator of the enriched note can specify some identifier of each approved participant and those participants can enter the appropriate identifier to access the content. Many variations of privacy controls are possible and these examples are not intended to be limiting.

[0134] A interface de criação de nota enriquecida 2306 inclui adicionalmente um botão de avisos 2306E. Ao selecionar-se o botão de avisos 2306E, uma interface pode ser exibida permitindo que um usuário configure um ou mais avisos associados à nota enriquecida. Os avisos podem ser notificações, tais como janelas pop-up, comunicações, tais como e-mails, ou outras notificações, tais como lembretes de calendário. O usuário pode selecionar uma hora e data associadas a cada um dos avisos, assim como uma mensagem de aviso. Para avisos locais, como janelas pop-up ou notificações de calendário, qualquer receptor da nota enriquecida terá assim quaisquer avisos associados à nota enriquecida ativados em seu dispositivo de computação local na hora e data apropriadas. Para avisos de comunicação, uma comunicação do criador da nota enriquecida aos receptores da nota enriquecida pode ser acionada na hora e data selecionadas. Por exemplo, um aviso de lembrete pode lembrar os destinatários da nota enriquecida para fazer a revisão até uma determinada data limite.[0134] The enriched note creation interface 2306 additionally includes a prompts button 2306E. By selecting the notices button 2306E, an interface can be displayed allowing a user to configure one or more notices associated with the enriched note. Notices can be notifications, such as pop-up windows, communications, such as emails, or other notifications, such as calendar reminders. The user can select a time and date associated with each of the warnings, as well as a warning message. For local notices, such as pop-up windows or calendar notifications, any recipients of the enriched note will thus have any notices associated with the enriched note activated on their local computing device at the appropriate time and date. For communication notices, a communication from the creator of the enriched note to the recipients of the enriched note can be triggered at the selected time and date. For example, a reminder notice can remind recipients of the enriched note to review by a certain deadline.

[0135] A interface de criação de nota enriquecida 2306 inclui adicionalmente um botão de nota de voz 2306F. A seleção do botão de nota de voz 2306F resulta em um aviso ou em uma interface que pede ao o criador para fazer uma gravação de voz a ser incluída no objeto de dados de nota enriquecida e acessível a partir da nota enriquecida. Opcionalmente, o botão de nota de voz 2306F pode ser integrado ao botão de anexar conteúdo 2306B, de modo que um usuário possa gravar notas de voz e anexar outro tipo de conteúdo ao selecionar o botão de anexar conteúdo 2306B.[0135] The enriched note creation interface 2306 additionally includes a voice note button 2306F. Selecting voice note button 2306F results in a prompt or an interface asking the creator to make a voice recording to be included in the enriched note data object and accessible from the enriched note. Optionally, voice note button 2306F can be integrated with attach content button 2306B so that a user can record voice notes and attach other type of content by selecting attach content button 2306B.

[0136] Os botões 2306B-2306F são fornecidos apenas a título de exemplo e a interface de criação de notas enriquecida 2306 pode incluir outras opções configuráveis pelo usuário. Por exemplo, a interface de criação de nota enriquecida 2306 pode incluir opções que permitem ao usuário configurar um tamanho, uma forma, uma cor ou um padrão da nota enriquecida.[0136] Buttons 2306B-2306F are provided by way of example only and the enriched note creation interface 2306 can include other user configurable options. For example, the enriched note creation interface 2306 can include options that allow the user to configure a size, shape, color or pattern of the enriched note.

[0137] Uma vez que o criador tenha completado a configuração da nota enriquecida, a configuração de quaisquer bandeiras, a configuração de controles de privacidade, a anexação de conteúdos e/ou a gravação de uma nota de voz, ele pode criar o objeto de dados de nota enriquecida selecionando o botão ‘criar’ 2306G. A criação do objeto de dados de nota enriquecida inclui a integração de todas as configurações e conteúdos especificados pelo criador e pode ser realizada de várias maneiras. Por exemplo, o objeto de dados de nota enriquecida pode ser configurado como continente de dados, incluindo scripts automatizados correspondentes às configurações selecionadas e links para o conteúdo especificado, junto com os próprios arquivos de conteúdo. O objeto de dados de nota enriquecida pode também ser um modelo predefinido de objeto de dados tendo inúmeras bandeiras que são definidas com base nas seleções do criador e incluindo links predefinidos que são preenchidos com o endereço de arquivos de conteúdo selecionados.[0137] Once the creator has completed setting up the enriched note, setting any flags, setting privacy controls, attaching content and/or recording a voice note, he can create the object of Enriched note data by selecting 'create' button 2306G. The creation of the enriched note data object includes the integration of all settings and contents specified by the creator and can be done in several ways. For example, the enriched note data object can be configured as a data container, including automated scripts corresponding to selected settings and links to specified content, along with the content files themselves. The enriched note data object can also be a predefined data object template having numerous flags that are defined based on the creator's selections and including predefined links that are populated with the address of selected content files.

[0138] A Fig. 24 ilustra uma nota enriquecida gerada 2400, de acordo com uma modalidade exemplificativa. Conforme mostrado na Fig. 24, a nota enriquecida 2400 exibe o texto "Ideia para implementar o recurso de teste de dados" e inclui controles acessíveis ao usuário 2401-2405. Cada um dos controles acessíveis ao usuário está vinculado a uma funcionalidade ou configuração da nota enriquecida, conforme definido pelo objeto de dados de nota enriquecida.[0138] Fig. 24 illustrates an enriched note generated 2400, according to an exemplary embodiment. As shown in Fig. 24, the enriched note 2400 displays the text "Idea for implementing the data test feature" and includes user accessible controls 2401-2405. Each of the user-accessible controls is linked to an enriched note functionality or setting as defined by the enriched note data object.

[0139] A nota enriquecida 2400 inclui um controle de exibição 2401 que indica a existência de conteúdo adicional associado à nota enriquecida. A seleção do controle de exibição 2401 está configurada para fazer com que a nota enriquecida 2400 exiba o item de conteúdo que está associado à nota enriquecida 2400. Em resposta à seleção do controle de exibição 2401, o objeto de dados de nota enriquecida é configurado para detectar um aplicativo associado ao pelo menos um arquivo de conteúdo e abrir o pelo menos um arquivo de conteúdo inicializando o aplicativo associado ao pelo menos um arquivo de conteúdo em uma área de exibição de conteúdo da nota enriquecida e carregando o pelo menos um arquivo de conteúdo no aplicativo inicializado. A área de exibição de conteúdo pode ser adjacente a uma área de exibição primária que é configurada para exibir o texto e o um ou mais controles acessíveis ao usuário 2401-2405. O usuário é então capaz de pesquisar, rolar ou de outro modo interagir com o conteúdo aberto.[0139] The enriched note 2400 includes a display control 2401 that indicates the existence of additional content associated with the enriched note. The 2401 display control selection is configured to make the enriched note 2400 display the content item that is associated with the enriched note 2400. In response to the 2401 display control selection, the enriched note data object is set to detect an application associated with the at least one content file and open the at least one content file by launching the application associated with the at least one content file in an enriched note content display area and loading the at least one content file in the initialized application. The content display area can be adjacent to a primary display area that is configured to display text and one or more user-accessible controls 2401-2405. The user is then able to search, scroll or otherwise interact with the open content.

[0140] O ícone usado para o controle de exibição 2401 pode ser determinado com base no tipo de arquivo de conteúdo que está associado ou vinculado à nota enriquecida. Conforme mostrado na Fig. 24, o ícone de controle de exibição 2401 corresponde a um arquivo de imagem, indicando que o conteúdo vinculado é uma imagem. Outros tipos de ícones podem ser automaticamente determinados e utilizados em vez de um controle acessível ao usuário com base em uma análise do tipo de arquivo de conteúdo vinculado pelo criador. Por exemplo, diferentes ícones podem ser usados para arquivos de documentos, arquivos em formato de documento portátil (PDF), arquivos de vídeo ou links de navegador da web. Caso o criador não tenha associado nenhum item de conteúdo à nota enriquecida, o objeto de dados de nota enriquecida pode ser configurado para omitir o ícone de controle de exibição 2401 a partir da nota enriquecida 2400.[0140] The icon used for the 2401 display control can be determined based on the type of content file that is associated or linked to the enriched note. As shown in Fig. 24, the display control icon 2401 corresponds to an image file, indicating that the linked content is an image. Other icon types can be automatically determined and used instead of a user-accessible control based on an analysis of the content file type linked by the creator. For example, different icons can be used for document files, portable document format (PDF) files, video files or web browser links. If the creator has not associated any content items with the enriched note, the enriched note data object can be configured to omit the display control icon 2401 from the enriched note 2400.

[0141] É também mostrado na Fig. 24 um ícone indicador de importância 2402. O objeto de dados de nota enriquecida é configurado para exibir o ícone indicador de importância (mostrado como um ícone de estrela) quando o criador da nota enriquecida tenha sinalizado a nota como sendo importante. A importância da nota enriquecida tanto pode ser indicada como uma bandeira (tanto importante quanto não importante) quanto pode ser definida como um valor de importância a partir de uma pluralidade de diferentes valores de importância (por exemplo, baixo, médio, alto). O ícone indicador de importância 2402 pode indicar o valor de importância associado à nota enriquecida. O ícone indicador de importância 2402 pode exibir uma imagem ou ter um atributo visual que indique o nível de importância. Por exemplo, o ícone indicador de importância 2402 pode ser codificado por cores de modo que as notas enriquecidas mais importantes tenham um ícone indicador de importância 2402 vermelho enquanto as notas enriquecidas de menor importância têm um ícone indicador de importância 2402 verde. Caso o criador não tenha sinalizado a nota enriquecida como importante, o ícone de indicador de importância 2402 pode ser opcionalmente omitido.[0141] An importance indicator icon 2402 is also shown in Fig. 24. The enriched note data object is configured to display the importance indicator icon (shown as a star icon) when the creator of the enriched note has flagged the note as being important. The importance of the enriched grade can either be indicated as a flag (both important and unimportant) or it can be defined as an importance value from a plurality of different importance values (eg low, medium, high). The 2402 importance indicator icon can indicate the importance value associated with the enriched note. The 2402 importance indicator icon can display an image or have a visual attribute that indicates the level of importance. For example, the importance indicator icon 2402 can be color coded so that the most important enriched notes have a red 2402 importance indicator icon while the lesser enriched notes have a green 2402 importance indicator icon. If the creator has not flagged the enriched note as important, the importance indicator icon 2402 can be optionally omitted.

[0142] A seleção do controle de alerta 2402 pode exibir quaisquer avisos ou notificações associados à nota enriquecida 2400. Por exemplo, a seleção do controle de alerta pode indicar uma hora e data associadas com uma notificação específica. Quando a nota enriquecida inclui avisos, o aviso pode ser acionado pelo sistema operacional do dispositivo que recebe a nota enriquecida. Por exemplo, o aviso pode ser acionado como uma notificação de push que é transmitida ao cliente ou como um evento de calendário que é adicionado ao calendário do cliente. O evento de calendário pode ser transmitido como um aviso de notificação e, em seguida, selecionado pelo usuário para ser adicionado ao calendário. Alternativamente, se o usuário fornece permissões para acesso ao aplicativo de calendário em seu dispositivo, então os eventos de calendário podem ser adicionados automaticamente.[0142] The alert control selection 2402 can display any warnings or notifications associated with the enriched note 2400. For example, the alert control selection can indicate a time and date associated with a specific notification. When the enriched note includes warnings, the warning can be triggered by the operating system of the device receiving the enriched note. For example, the notice can be triggered as a push notification that is broadcast to the customer or as a calendar event that is added to the customer's calendar. The calendar event can be broadcast as a notification notice and then selected by the user to be added to the calendar. Alternatively, if the user provides permissions to access the calendar app on their device, then calendar events can be added automatically.

[0143] A Fig. 24 ilustra adicionalmente um ícone de controle de privacidade 2403 (mostrado como um cadeado). O objeto de dados de nota enriquecida é configurado para exibir o controle de privacidade 2403 quando houver controles de privacidade ou acesso associados à nota enriquecida. O objeto de dados de nota de conteúdo enriquecido é configurado para determinar se existem quaisquer mecanismos de controle de privacidade ou de acesso associados ao objeto de dados de nota enriquecida em resposta à seleção seja do controle de exibição 2401, seja do controle de privacidade 2403. Se houver qualquer tipo de mecanismo de controle de privacidade ou de acesso associado ao objeto de dados de nota enriquecida, então o objeto de dados de nota de conteúdo enriquecido será configurado para fazer com que uma verificação de autenticação (de acordo com os mecanismos de controle de privacidade ou acesso) seja realizada antes de abrir ou de outra forma fornecer acesso a qualquer arquivo de conteúdo associado.[0143] Fig. 24 further illustrates a privacy control icon 2403 (shown as a padlock). The enriched note data object is configured to display the 2403 privacy control when there are privacy or access controls associated with the enriched note. The enriched note data object is configured to determine whether there are any privacy or access control mechanisms associated with the enriched note data object in response to selecting either the 2401 display control or the 2403 privacy control. If there is any kind of privacy or access control mechanism associated with the enriched note data object, then the enriched note data object will be configured to cause an authentication check (according to the control mechanisms Privacy Policy or Access) is performed prior to opening or otherwise providing access to any associated content file.

[0144] A verificação de autenticação pode ser, por exemplo, exigir uma senha, exigir e validar credenciais do usuário, verificar se um endereço de protocolo de internet (IP) associado ao usuário está em uma lista aprovada, exigir que o usuário concorde com determinados termos etc. Por exemplo, quando há controles de privacidade associados à nota enriquecida e um usuário seleciona o ícone de controle de exibição 2401, uma verificação de autenticação pode ser realizada antes do conteúdo associado ser exibido ao usuário. Opcionalmente, o usuário pode acionar uma verificação de autenticação antes de tentar abrir o conteúdo associado apenas selecionando o ícone de controle de privacidade[0144] Authentication verification can be, for example, require a password, require and validate user credentials, verify that an internet protocol (IP) address associated with the user is on an approved list, require the user to agree to certain terms etc. For example, when there are privacy controls associated with the enriched note and a user selects the 2401 display control icon, an authentication check can be performed before the associated content is displayed to the user. Optionally, the user can trigger an authentication check before trying to open the associated content just by selecting the privacy control icon

2403. O objeto de dados de nota enriquecida é configurado para negar acesso ao arquivo de conteúdo associado se uma verificação de autenticação falhar.2403. The enriched note data object is configured to deny access to the associated content file if an authentication check fails.

[0145] É também mostrado na Fig. 24 um controle de avisos 2404. O objeto de dados de nota enriquecida é configurado para exibir o controle de avisos (mostrado como um ícone de relógio) quando há avisos associados à nota enriquecida. A seleção do controle de avisos 2404 pode exibir quaisquer avisos ou notificações associados à nota enriquecida 2400 em uma hora e data associadas com o aviso. Por exemplo, a seleção do controle de avisos pode indicar uma hora e data associadas a uma notificação específica. Quando a nota enriquecida inclui avisos, o aviso pode ser acionado pelo sistema operacional do dispositivo que recebe a nota enriquecida. Por exemplo, o aviso pode ser acionado como uma notificação de push que é transmitida ao cliente ou como um evento de calendário que é adicionado ao calendário do cliente. O evento de calendário pode ser transmitido como um aviso de notificação e, em seguida, selecionado pelo usuário para ser adicionado ao calendário. Alternativamente, se o usuário fornece permissões para acesso ao aplicativo de calendário em seu dispositivo, então os eventos de calendário podem ser adicionados automaticamente.[0145] Also shown in Fig. 24 is a notices control 2404. The enriched note data object is configured to display the notices control (shown as a clock icon) when there are notices associated with the enriched note. Selecting the 2404 notices control can display any notices or notifications associated with the 2400 enriched note at a time and date associated with the notice. For example, selecting the notifications control can indicate a time and date associated with a specific notification. When the enriched note includes warnings, the warning can be triggered by the operating system of the device receiving the enriched note. For example, the notice can be triggered as a push notification that is broadcast to the customer or as a calendar event that is added to the customer's calendar. The calendar event can be broadcast as a notification notice and then selected by the user to be added to the calendar. Alternatively, if the user provides permissions to access the calendar app on their device, then calendar events can be added automatically.

[0146] A nota enriquecida 2400 pode também incluir um ícone indicador de nota de voz 2405. A nota enriquecida é configurada para exibir o ícone indicador de nota de voz 2405 quando o criador incluiu uma nota de voz no objeto de dados de nota enriquecida. Quando o ícone indicador de nota de voz 2405 é exibido, a seleção do ícone indicador de nota de voz 2405 resulta na abertura de um aplicativo de reprodução de áudio em uma janela ou interface adjacente e no carregamento da nota de voz correspondente no aplicativo de reprodução de áudio. O usuário pode então escutar ou navegar através da nota de voz.[0146] The enriched note 2400 may also include a voice note indicator icon 2405. The enriched note is configured to display the voice note indicator icon 2405 when the creator has added a voice note to the enriched note data object. When voice memo indicator icon 2405 is displayed, selecting voice memo indicator icon 2405 results in opening an audio playback application in an adjacent window or interface and loading the corresponding voice note in the playback application of audio. The user can then listen or browse through the voice memo.

[0147] Voltando à Fig. 20, na etapa 2003 uma entrada de usuário associando o objeto de dados de nota enriquecida a uma posição selecionada na representação do espaço de trabalho de colaboração é detectada pelo dispositivo de computação local. Por exemplo, uma vez criada a nota enriquecida (tal como é mostrado na Fig. 24), um usuário pode arrastar e soltar ou posicionar de outro modo a nota enriquecida dentro do espaço de trabalho de colaboração, a fim de "fixar" a nota enriquecida a essa posição dentro do espaço de trabalho de colaboração.[0147] Returning to Fig. 20, in step 2003 a user input associating the enriched note data object to a selected position in the collaboration workspace representation is detected by the local computing device. For example, once the enriched note is created (as shown in Fig. 24), a user can drag and drop or otherwise position the enriched note within the collaboration workspace in order to "pin" the note. enriched to that position within the collaboration workspace.

[0148] As Figuras 25A-25B ilustram um exemplo de detecção de uma entrada de usuário que associa o objeto de dados de nota enriquecida a uma posição selecionada na representação do espaço de trabalho de colaboração, de acordo com uma modalidade exemplificativa.[0148] Figures 25A-25B illustrate an example of detection of a user input that associates the enriched note data object to a selected position in the representation of the collaboration workspace, according to an exemplary modality.

[0149] Conforme mostrado na Fig. 25A, um criador concluiu o processo para criar a nota enriquecida e a nota enriquecida resultante 2501 é inicialmente exibida dentro do espaço de trabalho de colaboração 2502 do aplicativo de colaboração 2503 na interface de usuário 2500. A esta altura, uma posição para a nota enriquecida 2501 ainda não foi selecionada.[0149] As shown in Fig. 25A, a creator has completed the process to create the enriched note and the resulting enriched note 2501 is initially displayed within the 2502 collaboration workspace of the 2503 collaboration application in the 2500 user interface. height, a position for the enriched note 2501 has not yet been selected.

[0150] A Fig. 25B ilustra o processo para selecionar uma posição para a nota enriquecida 2501. Conforme mostrado na Fig. 25B, o usuário pode arrastar a nota enriquecida 2501 para a posição desejada dentro do espaço de trabalho de colaboração[0150] Fig. 25B illustrates the process for selecting a position for the enriched note 2501. As shown in Fig. 25B, the user can drag the enriched note 2501 to the desired position within the collaboration workspace

2502. Uma vez que o usuário esteja satisfeito com a posição, a posição pode ser detectada tanto com o usuário "soltando" a nota enriquecida 2501 (por exemplo, pressionando o dispositivo apontador) e/ou com o usuário selecionando algum elemento de interface de usuário (tal como o ícone de nota enriquecida 2504) para indicar que está satisfeito com a posição. A posição dentro do espaço de trabalho de colaboração 2502 é então detectada e armazenada na memória em associação com a nota enriquecida. A posição pode ser detectada pelo próprio aplicativo de colaboração 2503, por um sistema operacional ou por uma camada transparente, conforme discutido anteriormente neste pedido.2502. Once the user is satisfied with the position, the position can be detected either by the user "dropping" the enriched note 2501 (eg by pressing the pointing device) and/or by the user selecting some interface element. user (such as the enriched note icon 2504) to indicate that you are satisfied with the position. The position within the collaboration workspace 2502 is then detected and stored in memory in association with the enriched note. Position can be detected by the collaboration application 2503 itself, by an operating system, or by a transparent layer, as discussed earlier in this application.

[0151] Como uma alternativa para detectar uma entrada de usuário associando o objeto de dados de nota enriquecida a uma posição selecionada após a criação da nota enriquecida, uma entrada de usuário pode ser detectada antes da criação do objeto de dados de nota enriquecida onde o usuário primeiro especifica uma posição dentro do espaço de trabalho de colaboração. Por exemplo, fazendo-se referência à Fig. 25A, o usuário pode arrastar o ícone de nota enriquecida 2504 para uma posição desejada dentro do espaço de trabalho de colaboração 2502 para iniciar o processo de geração de nota enriquecida, conforme descrito em relação às Figuras 23A-23B. Uma vez que a nota enriquecida é gerada, ela pode ser automaticamente "fixada" à posição detectada anteriormente que o usuário especificou arrastando o ícone de nota enriquecida 2504.[0151] As an alternative to detecting a user input by associating the enriched note data object with a selected position after creating the enriched note, a user input can be detected before creating the enriched note data object where the user first specifies a position within the collaboration workspace. For example, referring to Fig. 25A, the user can drag the enriched note icon 2504 to a desired position within the collaboration workspace 2502 to start the enriched note generation process as described in relation to the Figures 23A-23B. Once the enriched note is generated, it can be automatically "pinned" to the previously detected position that the user specified by dragging the enriched note icon 2504.

[0152] Voltando à Fig. 20, na etapa 2004 o objeto de dados de nota enriquecida, a posição selecionada e um ou mais comandos são transmitidos pelo dispositivo de computação local para o servidor através de uma conexão de soquete da web. Os um ou mais comandos são configurados para fazer com que o servidor propague o objeto de dados de nota enriquecida e a posição selecionada para todos os dispositivos de computação conectados ao servidor para a sessão de colaboração. Os um ou mais comandos são adicionalmente configurados para fazer com que o servidor instrua cada um dos dispositivos de computação conectados (ou seja, a versão local do aplicativo de colaboração em cada dispositivo de computação e/ou a camada transparente em cada dispositivo de computação) para inserir uma nota enriquecida correspondente ao objeto de dados de nota enriquecida (incluindo todos os conteúdos e configurações associados) na posição selecionada. Por exemplo, os comandos enviados a partir do dispositivo de computação local ao servidor podem fazer com que o servidor envie comandos adicionais a cada dispositivo conectado que instrui os dispositivos de computação conectados a inserir ou instanciar uma cópia da nota enriquecida dentro de suas representações locais do espaço de trabalho de colaboração na posição selecionada. Ao receber o objeto de dados de nota enriquecida e a posição selecionada, cada dispositivo de computação conectado à sessão de colaboração pode ser configurado para inserir o objeto de dados de nota enriquecida na posição selecionada dentro de uma representação local do espaço de trabalho de colaboração. Cada cópia da nota enriquecida em cada dispositivo de computação conectado inclui as configurações (tais como controles de privacidade, avisos etc.) e links para conteúdos (itens de conteúdo associados, gravações de voz etc.) como a nota enriquecida original, todos os quais estão contidos dentro do objeto de dados de nota enriquecida recebido por cada dispositivo de computação conectado.[0152] Returning to Fig. 20, in step 2004 the enriched note data object, the selected position and one or more commands are transmitted by the local computing device to the server through a web socket connection. The one or more commands are configured to cause the server to propagate the enriched note data object and selected position to all computing devices connected to the server for the collaboration session. The one or more commands are additionally configured to cause the server to instruct each of the connected computing devices (ie, the local version of the collaboration application on each computing device and/or the transparent layer on each computing device) to insert an enriched note corresponding to the enriched note data object (including all associated contents and settings) at the selected position. For example, commands sent from the local computing device to the server can cause the server to send additional commands to each connected device that instruct the connected computing devices to insert or instantiate a copy of the enriched note within their local representations of the Collaboration workspace at the selected position. Upon receiving the enriched note data object and the selected position, each computing device connected to the collaboration session can be configured to insert the enriched note data object at the selected position within a local representation of the collaboration workspace. Each copy of the enriched note on each connected computing device includes settings (such as privacy controls, notices, etc.) and links to content (associated content items, voice recordings, etc.) like the original enriched note, all of which are contained within the enriched note data object received by each connected computing device.

[0153] A Fig. 26 ilustra o processo para a propagação do objeto de dados de nota enriquecida, de acordo com uma modalidade exemplificativa. Conforme mostrado na Fig. 26, depois que o Usuário 1 no dispositivo de computação 2601 cria o objeto de dados de nota enriquecida e seleciona uma posição associada para o objeto de dados de nota enriquecida, o objeto de dados de nota enriquecida é enviado ao servidor 2600 juntamente com informações de posição (detectadas na etapa 103 da Fig. 20) que indicam onde o objeto de dados de nota enriquecida deveria ser inserido dentro do espaço de trabalho de colaboração e comandos que instruem o servidor 2600 a propagar tanto o objeto de dados de nota enriquecida quanto as informações de posição selecionadas para todos os dispositivos de computação 2601-2603 conectados à sessão de colaboração.[0153] Fig. 26 illustrates the process for the propagation of the enriched note data object, according to an exemplary modality. As shown in Fig. 26, after User 1 at computing device 2601 creates the enriched note data object and selects an associated position for the enriched note data object, the enriched note data object is sent to the server 2600 along with position information (detected in step 103 of Fig. 20) that indicates where the enriched note data object should be inserted within the collaboration workspace and commands that instruct the 2600 server to both propagate the data object note enriched with selected position information for all computing devices 2601-2603 connected to the collaboration session.

[0154] O objeto de dados de nota enriquecida que é transmitido pelo dispositivo de computação local 2601 para o servidor 2600 e, em seguida, do servidor 2600 para todos os dispositivos de computação 2601-2603 inclui não apenas o texto para exibição dentro da nota enriquecida, mas também os ajustes e as configurações do usuário (tais como controles de privacidade, avisos, níveis de importância) e qualquer conteúdo associado à nota enriquecida (tais como arquivos de conteúdo ou gravações de voz). Ao, finalmente, armazenar uma cópia local do objeto de dados enriquecidos (incluindo todos os conteúdos e configurações), cada usuário pode interagir com o objeto de dados enriquecidos de forma independente e sem depender do servidor para fornecer informações em resposta às interações do usuário, melhorando assim os tempos de resposta de interação e a carga no servidor enquanto ainda se mantém um espaço de trabalho de colaboração de planejamento de projeto uniforme (uma vez que cada nota enriquecida aparece na mesma posição nas diversas representações do espaço de trabalho de colaboração).[0154] The enriched note data object that is transmitted by the local computing device 2601 to the server 2600 and then from the server 2600 to all computing devices 2601-2603 includes not only the text for display within the note but also the user's settings and settings (such as privacy controls, warnings, importance levels) and any content associated with the enriched note (such as content files or voice recordings). By finally storing a local copy of the enriched data object (including all contents and settings), each user can interact with the enriched data object independently and without relying on the server to provide information in response to the user's interactions, thereby improving interaction response times and server load while still maintaining a uniform project planning collaboration workspace (since each enriched note appears in the same position in the various representations of the collaboration workspace).

[0155] Opcionalmente, o servidor pode armazenar uma cópia do objeto de dados de nota enriquecida e as informações de posição em um repositório de arquivos de servidor ou armazenamento 2604. Caso um dos clientes (dispositivos de computação 2601-2603) seja desconectado da sessão de colaboração, o servidor 2600 pode então reabastecer o cliente com os objetos de dados de nota enriquecida e informações de posição relevantes após a reconexão.[0155] Optionally, the server can store a copy of the enriched note data object and position information in a server file repository or 2604 storage. If one of the clients (computing devices 2601-2603) is disconnected from the session In collaboration, the server 2600 can then replenish the client with the enriched note data objects and relevant position information after reconnection.

[0156] A Fig. 27 ilustra a nota enriquecida em múltiplas instâncias de um espaço de trabalho de colaboração, de acordo com uma modalidade exemplificativa. Conforme mostrado na Fig. 27, cada representação do espaço de trabalho de colaboração, incluindo as representações 2701, 2702 e 2703, exibe uma cópia da nota enriquecida na mesma posição selecionada (designada pelo criador do objeto de dados de nota enriquecida). Conforme discutido acima, o objeto de dados de nota enriquecida correspondente à nota enriquecida é enviado a todos os dispositivos de computação conectados por meio do servidor 2700. Embora cada representação exiba a mesma nota enriquecida, o Usuário 1, o Usuário 2 e o Usuário 3 são livres para interagir com cada uma de suas respectivas notas enriquecidas de forma independente uns dos outros.[0156] Fig. 27 illustrates the note enriched in multiple instances of a collaboration workspace, according to an exemplary modality. As shown in Fig. 27, each collaboration workspace representation, including representations 2701, 2702, and 2703, displays a copy of the enriched note in the same selected position (designated by the creator of the enriched note data object). As discussed above, the enriched note data object corresponding to the enriched note is sent to all computing devices connected through the server 2700. Although each representation displays the same enriched note, User 1, User 2 and User 3 are free to interact with each of their respective enriched notes independently of each other.

[0157] As Figs. 28 a 32 ilustram exemplos de interações de usuários com notas enriquecidas, de acordo com uma modalidade exemplificativa. A Fig. 28 ilustra uma nota enriquecida 2800, tendo o texto de exibição "Foto da Linha do Horizonte para Apresentação", onde o usuário selecionou um ícone de controle de exibição 2801. Como resultado desta seleção, o arquivo de conteúdo associado (uma imagem) é exibido em uma área de exibição de conteúdo adjacente 2802.[0157] Figs. 28 to 32 illustrate examples of user interactions with enriched notes, according to an exemplary modality. Fig. 28 illustrates an enriched note 2800, having the display text "Photo of the Horizon Line for Presentation", where the user has selected a display control icon 2801. As a result of this selection, the associated content file (an image ) is displayed in an adjacent content display area 2802.

[0158] Conforme discutido anteriormente, o tipo de arquivo de conteúdo associado pode ser detectado antes da renderização da nota enriquecida 2800 e usado para determinar o tipo de ícone usado para o controle de exibição 2801. Adicionalmente, o tipo de arquivo de conteúdo associado pode ser usado para determinar um aplicativo apropriado para inicializar dentro da área de exibição de conteúdo adjacente 2802. Por exemplo, um documento associado resultaria na inicialização de um programa de processamento de texto dentro da área de exibição adjacente 2802, enquanto um vídeo associado resultaria na inicialização de um reprodutor de mídia dentro da área de exibição adjacente.[0158] As discussed earlier, the associated content file type can be detected prior to rendering the 2800 enriched note and used to determine the icon type used for the 2801 display control. Additionally, the associated content file type can be used to determine an appropriate application to launch within the adjacent content display area 2802. For example, an associated document would result in the launch of a word processing program within the adjacent display area 2802, while an associated video would result in launch of a media player within the adjacent display area.

[0159] O usuário pode interagir com o arquivo de conteúdo associado usando um dos controles de navegação de conteúdo adjacentes 2803. Os controles de navegação de conteúdo 2803 permitem que o usuário maximize a janela de conteúdo, role, navegue ou interaja com o conteúdo e fornecem informações (tais como metadados) sobre o conteúdo. Por exemplo, quando o conteúdo anexado é um vídeo, o usuário pode avançar, retroceder ou pular para diferentes segmentos dentro do vídeo.[0159] The user can interact with the associated content file using one of the adjacent 2803 content navigation controls. The 2803 content navigation controls allow the user to maximize the content window, scroll, navigate or interact with the content and provide information (such as metadata) about the content. For example, when the attached content is a video, the user can fast forward, rewind or jump to different segments within the video.

[0160] Ao desmarcar o controle 2801 ou selecionar algum outro elemento de interface de usuário que minimize o conteúdo associado, a nota enriquecida então reverte para sua forma original (por exemplo, conforme mostrado na Fig. 24).[0160] When deselecting control 2801 or selecting some other UI element that minimizes the associated content, the enriched note then reverts to its original form (for example, as shown in Fig. 24).

[0161] A Fig. 29 ilustra uma nota enriquecida 2900 em que o criador estabeleceu um controle de privacidade, resultando na exibição do ícone de controle de privacidade[0161] Fig. 29 illustrates an enriched note 2900 where the creator established a privacy control, resulting in the display of the privacy control icon

2902. Conforme mostrado na Fig. 29, ao selecionar-se o controle de exibição 2901, um aviso 2903 é exibido exigindo que o usuário digite uma senha para visualizar a imagem. Opcionalmente, o usuário também pode iniciar esse aviso 2903 ao selecionar o ícone de controle de privacidade 2902. Uma vez que o usuário responda com sucesso ao teste de controle de privacidade digitando a senha correta, o usuário será capaz de visualizar o conteúdo associado em um formato semelhante ao mostrado na Fig. 28.2902. As shown in Fig. 29, when selecting the 2901 display control, a 2903 prompt is displayed requiring the user to enter a password to view the image. Optionally, the user can also initiate this 2903 prompt by selecting the 2902 privacy control icon. Once the user successfully responds to the privacy control test by entering the correct password, the user will be able to view the associated content in a format similar to that shown in Fig. 28.

[0162] A Fig. 30 ilustra uma nota enriquecida 3000 em que o criador estabeleceu um nível de importância ‘alto’. Conforme mostrado na Fig. 30, se o usuário selecionar o ícone indicador de importância correspondente 3001, um aviso 3002 é exibido informando ao usuário o nível de importância da nota enriquecida 3000.[0162] Fig. 30 illustrates an enriched note 3000 in which the creator set a 'high' importance level. As shown in Fig. 30, if the user selects the corresponding importance indicator icon 3001, a warning 3002 is displayed informing the user of the importance level of the enriched note 3000.

[0163] A Fig. 31 ilustra uma nota enriquecida 3100 em que o criador estabeleceu um nível de importância alto, incluiu controles de acesso e incluiu um aviso. Conforme mostrado na Fig. 31, se o usuário selecionar o ícone de controle de avisos 3101, um aviso 3102 é exibido informando o usuário da notificação de aviso associada. Neste caso, a notificação de aviso é uma mensagem configurada para ser exibida às 13h00 EST que lembra o usuário a rever a nota enriquecida até as 14h00 EST.[0163] Fig. 31 illustrates an enriched note 3100 where the creator set a high importance level, added access controls, and included a warning. As shown in Fig. 31, if the user selects the warnings control icon 3101, a 3102 warning is displayed informing the user of the associated warning notification. In this case, the warning notification is a message configured to display at 1:00 pm EST that reminds the user to review the enriched note until 2:00 pm EST.

[0164] A Fig. 32 ilustra uma nota enriquecida 3200 em que o criador incluiu uma nota de voz. Conforme mostrado na Fig. 32, se o usuário selecionar o ícone indicador de nota de voz 3201, uma área de exibição de conteúdo 3202 será apresentada com a nota de voz reproduzível. O usuário poderá navegar e interagir com a nota de voz através dos controles de navegação de conteúdo 3204 ou diretamente, tal como usando um dispositivo apontador ou gestos de mão ou toque 3203, conforme mostrado na figura. Por exemplo, o usuário pode avançar para certas partes da nota de voz.[0164] Fig. 32 illustrates an enriched note 3200 in which the creator added a voice note. As shown in Fig. 32, if the user selects the voice note indicator icon 3201, a content display area 3202 will be presented with the playable voice note. The user will be able to navigate and interact with the voice note through the 3204 content navigation controls or directly, such as using a pointing device or 3203 hand or touch gestures, as shown in the figure. For example, the user can advance to certain parts of the voice note.

[0165] As entradas recebidas dos usuários como parte do método para propagar objetos de dados de nota enriquecida através de uma conexão de soquete da web em um espaço de trabalho de colaboração em rede podem ser recebidas por meio de qualquer tipo de dispositivo apontador, tal como um mouse, tela sensível ao toque ou caneta Stylus. As técnicas descritas anteriormente envolvendo o driver virtual e/ou a camada transparente podem ser usadas para detectar entradas. Por exemplo, a entrada pode ser um gesto de apontar pelo usuário. Além disso, as ações descritas acima, tais como ações de arrastar e soltar, seleção, desmarcação ou outras entradas ou sequências de entradas, podem também ser inseridas usando as técnicas descritas anteriormente envolvendo o driver virtual e/ou a camada transparente.[0165] Inputs received from users as part of the method to propagate enriched note data objects over a web socket connection in a network collaboration workspace can be received through any type of pointing device, such as like a mouse, touchscreen or Stylus pen. The techniques described above involving the virtual driver and/or the transparent layer can be used to detect inputs. For example, input can be a pointing gesture by the user. In addition, the actions described above, such as drag and drop actions, selection, deselection or other inputs or input sequences, can also be inserted using the techniques described above involving the virtual driver and/or the transparent layer.

[0166] Uma ou mais das técnicas descritas acima podem ser implementadas em ou envolver um ou mais sistemas de computador. A Fig. 33 ilustra um exemplo de um ambiente de computação especializado 3300. O ambiente de computação 3300 não é destinado para sugerir qualquer limitação ao escopo de uso ou a funcionalidades de uma ou mais modalidades descritas.[0166] One or more of the techniques described above may be implemented in or involve one or more computer systems. Fig. 33 illustrates an example of a 3300 specialized computing environment. The 3300 computing environment is not intended to suggest any limitation on the scope of use or functionality of one or more of the described modalities.

[0167] Com referência à Fig. 33, o ambiente de computação 3300 inclui pelo menos uma unidade de processamento 3310 e memória 3320. A unidade de processamento 3310 executa instruções executáveis por computador e pode ser um processador real ou virtual. Em um sistema de múltiplos processamentos, várias unidades de processamento executam instruções executáveis por computador para aumentar a potência de processamento. A memória 3320 pode ser uma memória volátil (por exemplo, registros, cache, RAM), uma memória não volátil (por exemplo, ROM, EEPROM, memória flash etc.), ou alguma combinação das duas. A memória 3320 pode armazenar o software 3380 implementando técnicas descritas.[0167] Referring to Fig. 33, the computing environment 3300 includes at least a processing unit 3310 and memory 3320. The processing unit 3310 executes computer-executable instructions and can be a real or virtual processor. In a multiple processing system, several processing units execute computer-executable instructions to increase processing power. 3320 memory can be volatile memory (eg, registers, cache, RAM), non-volatile memory (eg, ROM, EEPROM, flash memory, etc.), or some combination of the two. The 3320 memory can store the 3380 software implementing techniques described.

[0168] Um ambiente de computação pode ter recursos adicionais. Por exemplo, o ambiente de computação 3300 inclui armazenamento 3340, um ou mais dispositivos de entrada 3350, um ou mais dispositivos de saída 3360, e uma ou mais conexões de comunicação 3390. Um mecanismo de interconexão 3370, tal como um barramento, um controlador ou uma rede interconecta os componentes do ambiente de computação 3300. Normalmente, o software ou firmware do sistema operacional (não mostrado) fornece um ambiente operacional para outros softwares executados no ambiente de computação 3300 e coordena as atividades dos componentes do ambiente de computação 3300.[0168] A computing environment can have additional features. For example, the 3300 computing environment includes 3340 storage, one or more 3350 input devices, one or more 3360 output devices, and one or more 3390 communication connections. A 3370 interconnect mechanism, such as a bus, a controller or a network interconnects the components of the 3300 computing environment. Typically, operating system software or firmware (not shown) provides an operating environment for other software running in the 3300 computing environment and coordinates the activities of the components of the 3300 computing environment.

[0169] O armazenamento 3340 pode ser removível ou não removível, e inclui discos magnéticos, fitas magnéticas ou cassetes, CD-ROMs, CD-RWs, DVDs ou qualquer outra mídia que possa ser usada para armazenar informações e que possa ser acessada dentro do ambiente de computação 3300. O armazenamento 3340 pode armazenar instruções para o software 3380.[0169] 3340 storage can be removable or non-removable, and includes magnetic disks, magnetic tapes or cassettes, CD-ROMs, CD-RWs, DVDs or any other media that can be used to store information and that can be accessed within the 3300 computing environment. The 3340 storage can store instructions for the 3380 software.

[0170] O(s) dispositivo(s) de entrada 3350 pode(m) ser um dispositivo de entrada de toque, tal como um teclado, um mouse, uma caneta, uma trackball, uma tela sensível ao toque, um controlador de jogo, um dispositivo de entrada de voz, um dispositivo de digitalização, uma câmera digital, um controle remoto ou outro dispositivo que forneça entrada para o ambiente de computação 3300. O(s) dispositivo(s) de saída 3360 pode(m) ser um visor, uma televisão, um monitor, uma impressora, um alto-falante ou outro dispositivo que forneça saída do ambiente de computação 3300.[0170] The 3350 input device(s) may be a touch input device, such as a keyboard, mouse, pen, trackball, touch screen, game controller , a voice input device, a digitizing device, a digital camera, a remote control, or other device that provides input to the 3300 computing environment. The 3360 output device(s) may be a display, a television, a monitor, a printer, a speaker, or other device that provides output from the 3300 computing environment.

[0171] A(s) conexão(ões) de comunicação 3390 permite(m) a comunicação através de uma mídia de comunicação para outra entidade de computação. A mídia de comunicação transmite informações tais como instruções executáveis por computador, informações de áudio ou vídeo ou outros dados em um sinal de dados modulado. Um sinal de dados modulado é um sinal que tem uma ou mais de suas características definidas ou alteradas de tal maneira para codificar informações no sinal. A título de exemplo, e não de limitação, mídia de comunicação inclui técnicas com fio ou sem fio implementadas com um carreador elétrico, óptico, RF, infravermelho, acústico ou outro.[0171] The 3390 communication connection(s) allows communication through a communication medium to another computing entity. Communication media conveys information such as computer executable instructions, audio or video information, or other data in a modulated data signal. A modulated data signal is a signal that has one or more of its characteristics defined or altered in such a way as to encode information in the signal. By way of example, and not limitation, communication media includes wired or wireless techniques implemented with an electrical, optical, RF, infrared, acoustic or other carrier.

[0172] Implementações podem ser descritas no contexto de mídia legível por computador. As mídias legíveis por computador são quaisquer mídias disponíveis que possam ser acessadas dentro de um ambiente de computação. A título de exemplo, e não de limitação, dentro do ambiente de computação 3300, mídias legíveis por computador incluem a memória 3320, o armazenamento 3340, mídias de comunicação e combinações de quaisquer destes.[0172] Implementations can be described in the context of computer readable media. Computer readable media is any available media that can be accessed within a computing environment. By way of example, and not limitation, within the 3300 computing environment, computer readable media includes 3320 memory, 3340 storage, communication media, and combinations of any of these.

[0173] Obviamente, a Fig. 33 ilustra o ambiente de computação 3300, o dispositivo de exibição 3360 e o dispositivo de entrada 3350 como dispositivos separados apenas para facilitar a identificação. O ambiente de computação 3300, o dispositivo de exibição 3360 e o dispositivo de entrada 3350 podem ser dispositivos separados (por exemplo, um computador pessoal conectado por fios a um monitor e a um mouse), podem ser integrado em um único dispositivo (por exemplo, um dispositivo móvel com um visor sensível ao toque, como um smartphone ou um tablet), ou qualquer combinação de dispositivos (por exemplo, um dispositivo de computação acoplado operativamente a um dispositivo de exibição de tela sensível ao toque, uma pluralidade de dispositivos de computação ligados a um único dispositivo de exibição e dispositivo de entrada etc.). O ambiente de computação 3300 pode ser um decodificador de sinais, um computador pessoal ou um ou mais servidores, como, por exemplo, uma fazenda de servidores em rede, um ambiente de servidor em cluster ou uma rede em nuvem de dispositivos de computação.[0173] Obviously, Fig. 33 illustrates computing environment 3300, display device 3360 and input device 3350 as separate devices just for easy identification. The 3300 computing environment, the 3360 display device and the 3350 input device can be separate devices (eg a personal computer wired to a monitor and a mouse), can be integrated into a single device (eg , a mobile device with a touch-sensitive display, such as a smartphone or tablet), or any combination of devices (e.g., a computing device operatively coupled to a touch-screen display device, a plurality of computing connected to a single display device and input device etc.). The 3300 computing environment can be a set top box, a personal computer, or one or more servers, such as a networked server farm, a clustered server environment, or a cloud network of computing devices.

[0174] Tendo descrito e ilustrado os princípios de nossa invenção com referência à modalidade descrita, deve ser reconhecido que a modalidade descrita pode ser modificada em sua estrutura e detalhes sem se afastar de tais princípios. Elementos da modalidade descrita mostrados em software podem ser implementados em hardware e vice-versa.[0174] Having described and illustrated the principles of our invention with reference to the described modality, it should be recognized that the described modality can be modified in its structure and details without departing from such principles. Elements of the described modality shown in software can be implemented in hardware and vice versa.

[0175] Em vista das muitas modalidades possíveis às quais os princípios da invenção podem ser aplicados, reivindicam-se como nossa invenção todas as tais modalidades que possam ser abrangidas pelo escopo e pelo espírito das reivindicações a seguir e equivalentes às mesmas.[0175] In view of the many possible embodiments to which the principles of the invention can be applied, we claim as our invention all such embodiments that may fall within the scope and spirit of the following claims and equivalent thereto.

Claims (30)

REIVINDICAÇÕES 1. MÉTODO PARA A PROPAGAÇÃO DE OBJETOS DE DADOS DE NOTA ENRIQUECIDA1. METHOD FOR THE PROPAGATION OF ENRICHED GRADE DATA OBJECTS ATRAVÉS DE UMA CONEXÃO DE SOQUETE DA WEB EM UM ESPAÇO DE TRABALHO DE COLABORAÇÃO EM REDE, caracterizado por compreender as etapas de: - transmitir, em uma interface de usuário de um dispositivo de computação local, uma representação de um espaço de trabalho de colaboração hospedado em um servidor e acessível a uma pluralidade de participantes em uma pluralidade de dispositivos de computação através de uma conexão de soquete da Web; - gerar, pelo dispositivo de computação local, um objeto de dados de nota enriquecida, o objeto de dados de nota enriquecida compreendendo texto, um ou mais controles acessíveis ao usuário, e pelo menos um arquivo de conteúdo, o objeto de dados de nota enriquecida sendo configurado para exibir o texto e os um ou mais controles acessíveis ao usuário e, adicionalmente, para abrir o pelo menos um arquivo de conteúdo em resposta à seleção de um controle de exibição nos um ou mais controles acessíveis ao usuário; - detectar, pelo dispositivo de computação local, uma entrada de usuário que associa o objeto de dados de nota enriquecida a uma posição selecionada na representação do espaço de trabalho da colaboração; e - transmitir, pelo dispositivo de computação local, o objeto de dados de nota enriquecida, a posição selecionada e um ou mais comandos ao servidor através da conexão de soquete da web, o um ou mais comandos sendo configurados para fazer com que o servidor propague o objeto de dados de nota enriquecida e a posição selecionada à pluralidade de dispositivos de computação.THROUGH A WEB SOCKET CONNECTION TO A NETWORK COLLABORATION WORKSPACE, characterized by comprising the steps of: - transmitting, on a user interface of a local computing device, a representation of a hosted collaboration workspace on a server and accessible to a plurality of participants on a plurality of computing devices via a web socket connection; - generate, by the local computing device, an enriched note data object, the enriched note data object comprising text, one or more user-accessible controls, and at least one content file, the enriched note data object being configured to display the text and the one or more user-accessible controls and, additionally, to open the at least one content file in response to the selection of a display control in the one or more user-accessible controls; - detect, by the local computing device, a user input that associates the enriched note data object with a selected position in the collaboration workspace representation; and - transmit, by the local computing device, the enriched note data object, the selected position and one or more commands to the server through the web socket connection, the one or more commands being configured to cause the server to propagate the enriched note data object and the selected position to the plurality of computing devices. 2. MÉTODO, de acordo com a reivindicação 1, caracterizado pelo fato de que o objeto de dados de nota enriquecida é adicionalmente configurado para detectar um aplicativo associado com o pelo menos um arquivo de conteúdo.2. METHOD according to claim 1, characterized in that the enriched note data object is further configured to detect an application associated with the at least one content file. 3. MÉTODO, de acordo com a reivindicação 2, caracterizado pelo fato de que o objeto de dados de nota enriquecida é configurado para abrir o pelo menos um arquivo de conteúdo em resposta à seleção do controle de exibição nos um ou mais controles acessíveis ao usuário: - detectando a seleção do controle de exibição; - inicializando o aplicativo associado com o pelo menos um arquivo de conteúdo em uma área de exibição de conteúdo; e - carregando o pelo menos um arquivo de conteúdo no aplicativo inicializado.3. METHOD according to claim 2, characterized in that the enriched note data object is configured to open the at least one content file in response to the selection of the display control in the one or more user-accessible controls : - detecting display control selection; - launching the application associated with the at least one content file in a content display area; and - loading the at least one content file into the launched application. 4. MÉTODO, de acordo com a reivindicação 3, caracterizado pelo fato de que o objeto de dados de nota enriquecida é adicionalmente configurado para exibir o texto e os um ou mais controles acessíveis ao usuário em uma área de exibição primária e onde a área de exibição de conteúdo é adjacente à área de exibição primária.4. METHOD according to claim 3, characterized in that the enriched note data object is further configured to display the text and the one or more user-accessible controls in a primary display area and where the content display is adjacent to the primary display area. 5. MÉTODO, de acordo com a reivindicação 1, caracterizado pelo fato de que os um ou mais controles acessíveis ao usuário compreendem um controle de privacidade e onde o objeto de dados de nota enriquecida é adicionalmente configurado para: - determinar se existem quaisquer mecanismos de controle de acesso associados com o objeto de dados de nota enriquecida em resposta à seleção seja do controle de exibição, seja do controle de privacidade; e - conduzir uma verificação de autenticação baseada, pelo menos em parte, em uma determinação de que o controle da privacidade está ativado, antes de abrir o pelo menos um arquivo de conteúdo.5. METHOD, according to claim 1, characterized by the fact that the one or more controls accessible to the user comprise a privacy control and where the enriched note data object is further configured to: - determine if there are any mechanisms of access control associated with the enriched note data object in response to selection of either display control or privacy control; and - conduct an authentication check based, at least in part, on a determination that privacy controls are enabled, before opening the at least one content file. 6. MÉTODO, de acordo com a reivindicação 5, caracterizado pelo fato de que o objeto de dados de nota enriquecida é adicionalmente configurado para negar acesso ao pelo menos um arquivo de conteúdo caso a verificação de autenticação falhe.6. METHOD according to claim 5, characterized in that the enriched note data object is additionally configured to deny access to the at least one content file if the authentication verification fails. 7. MÉTODO, de acordo com a reivindicação 1, caracterizado pelo fato de que os um ou mais controles acessíveis ao usuário compreendem um controle de avisos e onde o objeto de dados de nota enriquecida é adicionalmente configurado para: - receber uma seleção de uma hora e data de aviso e uma notificação de aviso por meio do controle de avisos de um criador do objeto de dados de nota enriquecida; e - transmitir a notificação de aviso em qualquer dispositivo de computação que possua armazenado o objeto de dados de nota enriquecida na hora e data de aviso.7. METHOD, according to claim 1, characterized in that the one or more user-accessible controls comprise a warning control and where the enriched note data object is additionally configured to: - receive a selection of one hour and notice date and a notice notice by controlling notices from a creator of the enriched note data object; and - transmitting the reminder notice on any computing device that has stored the note data object enriched in the reminder time and date. 8. MÉTODO, de acordo com a reivindicação 1, caracterizado pelo fato de que o servidor compreende o dispositivo de computação local ou um dispositivo de computação na pluralidade de dispositivos de computação.8. METHOD according to claim 1, characterized in that the server comprises the local computing device or a computing device in the plurality of computing devices. 9. MÉTODO, de acordo com a reivindicação 1, caracterizado pelo fato de que cada dispositivo de computação na pluralidade de dispositivos de computação é configurado para inserir o objeto de dados de nota enriquecida em uma representação local do espaço de trabalho de colaboração na posição selecionada.9. METHOD according to claim 1, characterized in that each computing device in the plurality of computing devices is configured to insert the enriched note data object into a local representation of the collaboration workspace at the selected position . 10. MÉTODO, de acordo com a reivindicação 1, caracterizado pelo fato de que o objeto de dados de nota enriquecida é configurado para exibir o texto e os um ou mais controles acessíveis ao usuário em um elemento de interface de usuário de nota enriquecida definido pelo objeto de dados de nota enriquecida.10. METHOD according to claim 1, characterized in that the enriched note data object is configured to display the text and the one or more user-accessible controls in an enriched note user interface element defined by Enriched note data object. 11. DISPOSITIVO DE COMPUTAÇÃO LOCAL PARA A PROPAGAÇÃO DE OBJETOS DE11. LOCAL COMPUTING DEVICE FOR THE PROPAGATION OF OBJECTS OF DADOS DE NOTA ENRIQUECIDA ATRAVÉS DE UMA CONEXÃO DE SOQUETE DA WEB EM UM ESPAÇO DE TRABALHO DE COLABORAÇÃO EM REDE caracterizado por compreender: - um ou mais processadores; e - uma ou mais memórias operativamente acopladas a pelo menos um dentre os um ou mais processadores e tendo instruções nelas armazenadas que, quando executadas por pelo menos por um dentre os um ou mais processadores, fazem com que pelo menos um dentre os um ou mais processadores: - transmita, em uma interface de usuário do dispositivo de computação local, uma representação de um espaço de trabalho de colaboração hospedado em um servidor e acessível a uma pluralidade de participantes em uma pluralidade de dispositivos de computação através de uma conexão de soquete da web; - gere um objeto de dados de nota enriquecida, o objeto de dados de nota enriquecida compreendendo texto, um ou mais controles acessíveis ao usuário e pelo menos um arquivo de conteúdo, onde o objeto de dados de nota enriquecida é configurado para exibir o texto e os um ou mais controles acessíveis ao usuário e, adicionalmente, para abrir o pelo menos um arquivo de conteúdo em resposta à seleção de um controle de exibição nos um ou mais controles acessíveis ao usuário; - detecte uma entrada de usuário que associa o objeto de dados de nota enriquecida a uma posição selecionada na representação do espaço de trabalho da colaboração; e - transmita o objeto de dados de nota enriquecida, a posição selecionada e um ou mais comandos ao servidor através da conexão de soquete da web,ENRICHED NOTE DATA THROUGH A WEB SOCKET CONNECTION IN A NETWORK COLLABORATION WORKSPACE characterized by comprising: - one or more processors; and - one or more memories operatively coupled to at least one of the one or more processors and having instructions stored therein which, when executed by at least one of the one or more processors, cause at least one of the one or more processors: - transmit, on a local computing device user interface, a representation of a collaboration workspace hosted on a server and accessible to a plurality of participants on a plurality of computing devices through a socket connection. web; - generates an enriched note data object, the enriched note data object comprising text, one or more user accessible controls and at least one content file, where the enriched note data object is configured to display the text and the one or more user-accessible controls and, additionally, to open the at least one content file in response to the selection of a display control in the one or more user-accessible controls; - detect a user input that associates the enriched note data object with a selected position in the collaboration workspace representation; and - transmit the enriched note data object, the selected position and one or more commands to the server via the web socket connection, os um ou mais comandos sendo configurados para fazer com que o servidor propague o objeto de dados de nota enriquecida e a posição selecionada à pluralidade de dispositivos de computação.the one or more commands being configured to cause the server to propagate the enriched note data object and selected position to the plurality of computing devices. 12. DISPOSITIVO DE COMPUTAÇÃO LOCAL de acordo com a reivindicação 11, caracterizado pelo fato de que o objeto de dados de nota enriquecida é adicionalmente configurado para detectar um aplicativo associado com o pelo menos um arquivo de conteúdo.12. LOCAL COMPUTING DEVICE according to claim 11, characterized in that the enriched note data object is further configured to detect an application associated with the at least one content file. 13. DISPOSITIVO DE COMPUTAÇÃO LOCAL de acordo com a reivindicação 12, caracterizado pelo fato de que o objeto de dados de nota enriquecida é configurado para abrir o pelo menos um arquivo de conteúdo em resposta à seleção do controle de exibição nos um ou mais controles acessíveis ao usuário: - detectando a seleção do controle de exibição; - inicializando o aplicativo associado com o pelo menos um arquivo de conteúdo em uma área de exibição de conteúdo; e - carregando o pelo menos um arquivo de conteúdo no aplicativo inicializado.13. LOCAL COMPUTING DEVICE according to claim 12, characterized in that the enriched note data object is configured to open the at least one content file in response to the selection of the display control in the one or more accessible controls to the user: - detecting the display control selection; - launching the application associated with the at least one content file in a content display area; and - loading the at least one content file into the launched application. 14. DISPOSITIVO DE COMPUTAÇÃO LOCAL de acordo com a reivindicação 13, caracterizado pelo fato de que o objeto de dados de nota enriquecida é adicionalmente configurado para exibir o texto e os um ou mais controles acessíveis ao usuário em uma área de exibição primária e onde a área de exibição de conteúdo é adjacente à área de exibição primária.14. LOCAL COMPUTING DEVICE according to claim 13, characterized in that the enriched note data object is further configured to display the text and the one or more user-accessible controls in a primary display area and where the content display area is adjacent to the primary display area. 15. DISPOSITIVO DE COMPUTAÇÃO LOCAL de acordo com a reivindicação 11, caracterizado pelo fato de que os um ou mais controles acessíveis ao usuário compreendem um controle de privacidade e onde o objeto de dados de nota enriquecida é adicionalmente configurado para:15. LOCAL COMPUTING DEVICE according to claim 11, characterized in that the one or more user-accessible controls comprise a privacy control and where the enriched note data object is additionally configured to: - determinar se existem quaisquer mecanismos de controle de acesso associados com o objeto de dados de nota enriquecida em resposta à seleção seja do controle de exibição, seja do controle de privacidade; e - conduzir uma verificação de autenticação baseada, pelo menos em parte, em uma determinação de que o controle da privacidade está ativado, antes de abrir o pelo menos um arquivo de conteúdo.- determine whether there are any access control mechanisms associated with the enriched note data object in response to the selection of either display control or privacy control; and - conduct an authentication check based, at least in part, on a determination that privacy controls are enabled, before opening the at least one content file. 16. DISPOSITIVO DE COMPUTAÇÃO LOCAL de acordo com a reivindicação 15, caracterizado pelo fato de que o objeto de dados de nota enriquecida é adicionalmente configurado para negar acesso ao pelo menos um arquivo de conteúdo caso a verificação de autenticação falhe.16. LOCAL COMPUTING DEVICE according to claim 15, characterized in that the enriched note data object is additionally configured to deny access to the at least one content file if the authentication verification fails. 17. DISPOSITIVO DE COMPUTAÇÃO LOCAL de acordo com a reivindicação 11, caracterizado pelo fato de que os um ou mais controles acessíveis ao usuário compreendem um controle de avisos e onde o objeto de dados de nota enriquecida é adicionalmente configurado para: - receber uma seleção de uma hora e data de aviso e uma notificação de aviso por meio do controle de avisos de um criador do objeto de dados de nota enriquecida; e - transmitir a notificação de aviso em qualquer dispositivo de computação que possua armazenado o objeto de dados de nota enriquecida na hora e data de aviso.17. LOCAL COMPUTING DEVICE according to claim 11, characterized in that the one or more user-accessible controls comprise a notices control and where the enriched note data object is further configured to: - receive a selection of a warning time and date and a warning notification via the control of warnings from a creator of the enriched note data object; and - transmitting the reminder notice on any computing device that has stored the note data object enriched in the reminder time and date. 18. DISPOSITIVO DE COMPUTAÇÃO LOCAL de acordo com a reivindicação 11, caracterizado pelo fato de que o servidor compreende o dispositivo de computação local ou um dispositivo de computação na pluralidade de dispositivos de computação.18. LOCAL COMPUTING DEVICE according to claim 11, characterized in that the server comprises the local computing device or a computing device in the plurality of computing devices. 19. DISPOSITIVO DE COMPUTAÇÃO LOCAL de acordo com a reivindicação 11, caracterizado pelo fato de que cada dispositivo de computação na pluralidade de dispositivos de computação é configurado para inserir o objeto de dados de nota enriquecida em uma representação local do espaço de trabalho de colaboração na posição selecionada.19. LOCAL COMPUTING DEVICE according to claim 11, characterized in that each computing device in the plurality of computing devices is configured to insert the enriched note data object into a local representation of the collaboration workspace in the selected position. 20. DISPOSITIVO DE COMPUTAÇÃO LOCAL de acordo com a reivindicação 11, caracterizado pelo fato de que o objeto de dados de nota enriquecida é configurado para exibir o texto e os um ou mais controles acessíveis ao usuário em um elemento de interface de usuário de nota enriquecida definido pelo objeto de dados de nota enriquecida.20. LOCAL COMPUTING DEVICE according to claim 11, characterized in that the enriched note data object is configured to display the text and one or more user-accessible controls in an enriched note user interface element defined by the enriched note data object. 21. MÍDIA LEGÍVEL POR COMPUTADOR NÃO TRANSITÓRIA (pelo menos uma) que armazena instruções legíveis por computador caracterizada pelo fato de que, quando estas são executadas por um dispositivo de computação local, fazem com que o dispositivo de computação local: - transmita, em uma interface de usuário do dispositivo de computação local, uma representação de um espaço de trabalho de colaboração hospedado em um servidor e acessível a uma pluralidade de participantes em uma pluralidade de dispositivos de computação através de uma conexão de soquete da web; - gere um objeto de dados de nota enriquecida, o objeto de dados de nota enriquecida compreendendo texto, um ou mais controles acessíveis ao usuário, e pelo menos um arquivo de conteúdo, onde o objeto de dados de nota enriquecida é configurado para exibir o texto e os um ou mais controles acessíveis ao usuário e, adicionalmente, para abrir o pelo menos um arquivo de conteúdo em resposta à seleção de um controle de exibição nos um ou mais controles acessíveis ao usuário;21. NON TRANSIENT COMPUTER-READABLE MEDIA (at least one) that stores computer-readable instructions characterized by the fact that, when they are executed by a local computing device, they cause the local computing device to: - transmit, in a local computing device user interface, a representation of a collaboration workspace hosted on a server and accessible to a plurality of participants on a plurality of computing devices through a web socket connection; - generates an enriched note data object, the enriched note data object comprising text, one or more user-accessible controls, and at least one content file, where the enriched note data object is configured to display the text and the one or more user-accessible controls, and additionally to open the at least one content file in response to selecting a display control in the one or more user-accessible controls; - detecte uma entrada de usuário que associa o objeto de dados de nota enriquecida com uma posição selecionada na representação do espaço de trabalho da colaboração; e - transmita o objeto de dados de nota enriquecida, a posição selecionada, e um ou mais comandos ao servidor através da conexão de soquete da web, o um ou mais comandos sendo configurados para fazer com que o servidor propague o objeto de dados de nota enriquecida e a posição selecionada à pluralidade de dispositivos de computação.- detect a user input that associates the enriched note data object with a selected position in the collaboration workspace representation; and - transmit the enriched grade data object, the selected position, and one or more commands to the server via the web socket connection, the one or more commands being configured to cause the server to propagate the grade data object enriched and selected position to the plurality of computing devices. 22. MÍDIA, de acordo com a reivindicação 21, caracterizada pelo fato de que o objeto de dados de nota enriquecida é adicionalmente configurado para detectar um aplicativo associado com o pelo menos um arquivo de conteúdo.22. MEDIA according to claim 21, characterized in that the enriched note data object is further configured to detect an application associated with the at least one content file. 23. MÍDIA, de acordo com a reivindicação 22, caracterizada pelo fato de que o objeto de dados de nota enriquecida é configurado para abrir o pelo menos um arquivo de conteúdo em resposta à seleção do controle de exibição nos um ou mais controle acessíveis ao usuário: - detectando a seleção do controle de exibição; - inicializando o aplicativo associado com o pelo menos um arquivo de conteúdo em uma área de exibição de conteúdo; e - carregando o pelo menos um arquivo de conteúdo no aplicativo inicializado.23. MEDIA according to claim 22, characterized in that the enriched note data object is configured to open the at least one content file in response to the display control selection in the one or more user-accessible controls : - detecting display control selection; - launching the application associated with the at least one content file in a content display area; and - loading the at least one content file into the launched application. 24. MÍDIA, de acordo com a reivindicação 23, caracterizada pelo fato de que o objeto de dados de nota enriquecida é adicionalmente configurado para exibir o texto e os um ou mais controles acessíveis ao usuário em uma área de exibição primária e onde a área de exibição de conteúdo é adjacente à área de exibição primária.24. MEDIA according to claim 23, characterized in that the enriched note data object is additionally configured to display the text and the one or more user-accessible controls in a primary display area and where the content display is adjacent to the primary display area. 25. MÍDIA, de acordo com a reivindicação 21, caracterizada pelo fato de que os um ou mais controles acessíveis ao usuário compreendem um controle de privacidade e onde o objeto de dados de nota enriquecida é adicionalmente configurado para: - determinar se existem quaisquer mecanismos de controle de acesso associados com o objeto de dados de nota enriquecida em resposta à seleção seja do controle de exibição, seja do controle de privacidade; e - conduzir uma verificação de autenticação baseada, pelo menos em parte, em uma determinação de que o controle da privacidade está ativado, antes de abrir o pelo menos um arquivo de conteúdo.25. MEDIA, according to claim 21, characterized in that the one or more user-accessible controls comprise a privacy control and where the enriched note data object is further configured to: - determine if there are any mechanisms for access control associated with the enriched note data object in response to selection of either display control or privacy control; and - conduct an authentication check based, at least in part, on a determination that privacy controls are enabled, before opening the at least one content file. 26. MÍDIA, de acordo com a reivindicação 25, caracterizada pelo fato de que o objeto de dados de nota enriquecida é adicionalmente configurado para negar acesso ao pelo menos um arquivo de conteúdo caso a verificação de autenticação falhe.26. MEDIA, according to claim 25, characterized in that the enriched note data object is additionally configured to deny access to the at least one content file if the authentication verification fails. 27. MÍDIA, de acordo com a reivindicação 21, caracterizada pelo fato de que os um ou mais controles acessíveis ao usuário compreendem um controle de avisos e onde o objeto de dados de nota enriquecida é adicionalmente configurado para: - receber uma seleção de uma hora e data de aviso e uma notificação de aviso por meio do controle de avisos de um criador do objeto de dados de nota enriquecida; e - transmitir a notificação de aviso em qualquer dispositivo de computação que possua armazenado o objeto de dados de nota enriquecida na hora e data de aviso.27. MEDIA, according to claim 21, characterized in that the one or more user-accessible controls comprise a notices control and where the enriched note data object is additionally configured to: - receive a selection of one hour and notice date and a notice notice by controlling notices from a creator of the enriched note data object; and - transmitting the reminder notice on any computing device that has stored the note data object enriched in the reminder time and date. 28. MÍDIA, de acordo com a reivindicação 21, caracterizada pelo fato de que o servidor compreende o dispositivo de computação local ou um dispositivo de computação na pluralidade de dispositivos de computação.28. MEDIA according to claim 21, characterized in that the server comprises the local computing device or a computing device in the plurality of computing devices. 29. MÍDIA, de acordo com a reivindicação 21, caracterizada pelo fato de que cada dispositivo de computação na pluralidade de dispositivos de computação é configurado para inserir o objeto de dados de nota enriquecida em uma representação local do espaço de trabalho de colaboração na posição selecionada.29. MEDIA according to claim 21, characterized in that each computing device in the plurality of computing devices is configured to insert the enriched note data object into a local representation of the collaboration workspace at the selected position . 30. MÍDIA, de acordo com a reivindicação 21, caracterizada pelo fato de que o objeto de dados de nota enriquecida é configurado para exibir o texto e os um ou mais controles acessíveis ao usuário em um elemento de interface de usuário de nota enriquecida definido pelo objeto de dados de nota enriquecida.30. MEDIA according to claim 21, characterized in that the enriched note data object is configured to display the text and one or more user-accessible controls in an enriched note user interface element defined by Enriched note data object.
BR112021001995-2A 2018-08-03 2019-08-01 method, local computing device, and computer-readable media for propagating enriched note data objects over a web socket connection in a network collaboration workspace BR112021001995A2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/054,328 2018-08-03
US16/054,328 US20190065012A1 (en) 2017-08-24 2018-08-03 Method, apparatus, and computer-readable medium for propagating enriched note data objects over a web socket connection in a networked collaboration workspace
PCT/EP2019/070822 WO2020025769A1 (en) 2018-08-03 2019-08-01 Method, apparatus, and computer-readable medium for propagating enriched note data objects over a web socket connection in a networked collaboration workspace

Publications (1)

Publication Number Publication Date
BR112021001995A2 true BR112021001995A2 (en) 2021-04-27

Family

ID=67660515

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021001995-2A BR112021001995A2 (en) 2018-08-03 2019-08-01 method, local computing device, and computer-readable media for propagating enriched note data objects over a web socket connection in a network collaboration workspace

Country Status (6)

Country Link
EP (1) EP3837606A1 (en)
JP (1) JP2021533456A (en)
KR (1) KR20210038660A (en)
CN (1) CN112805685A (en)
BR (1) BR112021001995A2 (en)
WO (1) WO2020025769A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111625094B (en) * 2020-05-25 2023-07-14 阿波罗智联(北京)科技有限公司 Interaction method and device of intelligent rearview mirror, electronic equipment and storage medium

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060059235A1 (en) * 2004-09-15 2006-03-16 International Business Machines Corporation System and method for multi-threaded discussion within a single instant messenger pane
CN100579053C (en) * 2007-05-31 2010-01-06 北大方正集团有限公司 Method for sharing, managing and downloading postil on Internet
US9449303B2 (en) * 2012-01-19 2016-09-20 Microsoft Technology Licensing, Llc Notebook driven accumulation of meeting documentation and notations
US20140208220A1 (en) * 2012-03-01 2014-07-24 Aditya Watal System and Method for Contextual and Collaborative Knowledge Generation and Management Through an Integrated Online-Offline Workspace
CN103731458B (en) * 2012-10-15 2017-10-31 金蝶软件(中国)有限公司 Terminal room shares the method and system of file
US10235383B2 (en) * 2012-12-19 2019-03-19 Box, Inc. Method and apparatus for synchronization of items with read-only permissions in a cloud-based environment
US9961030B2 (en) * 2015-06-24 2018-05-01 Private Giant Method and system for sender-controlled messaging and content sharing
US10747418B2 (en) * 2015-07-24 2020-08-18 Coscreen, Inc. Frictionless interface for virtual collaboration, communication and cloud computing
US20170230466A1 (en) * 2016-02-05 2017-08-10 Prysm, Inc. Cross Platform Annotation Syncing
US10586211B2 (en) * 2016-06-17 2020-03-10 Microsoft Technology Licensing, Llc Shared collaboration objects

Also Published As

Publication number Publication date
KR20210038660A (en) 2021-04-07
CN112805685A (en) 2021-05-14
EP3837606A1 (en) 2021-06-23
JP2021533456A (en) 2021-12-02
WO2020025769A1 (en) 2020-02-06

Similar Documents

Publication Publication Date Title
US20190065012A1 (en) Method, apparatus, and computer-readable medium for propagating enriched note data objects over a web socket connection in a networked collaboration workspace
JP6763899B2 (en) Coordinated communication in web applications
US11412012B2 (en) Method, apparatus, and computer-readable medium for desktop sharing over a web socket connection in a networked collaboration workspace
US11483376B2 (en) Method, apparatus, and computer-readable medium for transmission of files over a web socket connection in a networked collaboration workspace
JP5442727B2 (en) Display of teaching videos on the user interface display
US10402034B2 (en) Adaptive user interface pane manager
WO2021008334A1 (en) Data binding method, apparatus, and device of mini program, and storage medium
TW201617839A (en) Light dismiss manager
US10990344B2 (en) Information processing apparatus, information processing system, and information processing method
BR112021001995A2 (en) method, local computing device, and computer-readable media for propagating enriched note data objects over a web socket connection in a network collaboration workspace
BR112020018877A2 (en) METHOD, LOCAL COMPUTER DEVICE AND LEGIBLE STORAGE MEDIA BY NON-TRANSITIONAL COMPUTER FOR TRANSMITTING FILES THROUGH A WEB SOCKET CONNECTION IN A NETWORK COLLABORATION WORK SPACE
BR112020003524A2 (en) computer-readable method, device and medium for implementing a universal hardware-software interface
US9965484B1 (en) Template-driven data extraction and insertion
BR112020024441A2 (en) method, local computing device and non-transitory computer-readable media for desktop sharing over a web socket connection in a networked collaboration workspace
US11334220B2 (en) Method, apparatus, and computer-readable medium for propagating cropped images over a web socket connection in a networked collaboration workspace
BR112020023519A2 (en) method, local computing device and non-transitory computer-readable media that stores computer-readable instructions for propagating cropped images over a web socket connection in a networked collaboration workspace
US20230143785A1 (en) Collaborative digital board
Bakir Program the Internet of Things with Swift for IOS: Learn how to Program Apps for the Internet of Things

Legal Events

Date Code Title Description
B11A Dismissal acc. art.33 of ipl - examination not requested within 36 months of filing
B11Y Definitive dismissal - extension of time limit for request of examination expired [chapter 11.1.1 patent gazette]