Skip to content
  • Jarkko Koivikko's avatar
    Add Cerence HWR and Cerence XT9 extension plugins · 6dec71ba
    Jarkko Koivikko authored
    
    
    Cerence SDK enables two extension plugins for the Qt Virtual Keyboard.
    
    - Cerence HWR: Handwriting extension know previously as T9 Write
    - Cerence XT9: Advanced keyboard extension, supporting various languages
    
    This commit removes the previous T9 Write extension and reintroduces
    it as the Cerence HWR extension. This commit also adds the Cerence XT9
    as a new feature. The Cerence HWR can also utilize the XT9 for some
    additional features.
    
    Here is a list of changes made to the handwriting extension:
    
    - Move the T9 Write extension to the general "cerence" directory,
      which allows data and code to be shared between T9 Write and XT9.
    - Update unpack.py to match the latest Cerence SDK. Drop support
      for legacy delivery rules, as they interfere with the latest
      SDK.
    - Alphabetic API was renamed from decuma* to decumaUcr at version
      number 21
    - Add extra parameter to BeginArcAddition and set
      bMinimizePreProcessing to 1 to avoid defining the parameter.
    - Do not pass the support lines to engine as they are not
      supported/needed. For example, the latest CJK SDK returns error
      when the support lines are defined.
    - Remove reference to decumaFunctionalSupport.h, which is not part
      of the official SDK. As a consequence, disable support for
      recognition interrupt, which is not critical feature anyway.
    - Fix several compiler warnings.
    - Enable UCR mode for new languages.
    - Filter out duplicate candidates (after case formatting)
    - Use handwriting recognition timeout setting
    - Check and recover from an init failure when UCR not supported
    - Use common dictionary management with XT9
    - Add user defined search path for HWR db
      QT_VIRTUALKEYBOARD_T9WRITE_DB_PATH
    - Use generic dictionary API
    - Add user dictionary (DLM)
    - Limit too many simultaneous input
    - Add support for the latest SDK (removed support from previous
      versions of the SDK)
    - Add support for background recognition supported by the engine.
      This improves latencies and removes delays in certain situations.
    - Clear old traces from screen after specified delay.
      Previously, old traces were cleared from the screen based on the
      information from the engine to identify strokes of the recognized
      characters. Unfortunately, the engine does not provide this
      information at the same detail in UCR mode.
      This change introduces a timer-based approach, where traces are
      removed after a specified time, calculated from the recognition
      result. This time can be adjusted in the virtual keyboard settings.
    - Add auto correction for alphabetic languages
    - Add predictions from custom dictionary (XT9 Nav)
    - Fix language id mapping between Qt6 QLocale::Language and Cerence
      HWR.
    
    Change-Id: Iff4daea67cbb8adee1caf2e9513198482da48a38
    Reviewed-by: default avatarMitch Curtis <mitch.curtis@qt.io>
    Reviewed-by: default avatarJarkko Koivikko <jarkko.koivikko@code-q.fi>
    6dec71ba