• Jarkko Koivikko's avatar
    Add support for pattern recognition based input methods · 28cf4492
    Jarkko Koivikko authored
    
    This change adds generic support for pattern recognition
    based input methods.
    
    Added new API for the input engine and input method to
    process trace data. The trace data can originate from
    various input devices, e.g. from touch screen or from
    a dedicated hardware touch panel.
    
    Added new data model type for trace supporting both the C++
    and QML interfaces. The new data model is DeclarativeTrace
    and Trace respectively, and it stores the trace data captured
    from the input device.
    
    The trace object is owned by the input method and is accessible
    to the UI layer, capture device and the input method.
    
    First, when the trace event begins, the capture device invokes
    the InputEngine.traceBegin(). The input engine forwards this
    call to the input method, which creates the trace object in
    response to successful call.
    
    Then the capture device receives the trace object and starts
    collecting the data. Also, in case of touch screen input, there
    are also the UI layer which renders the data. For this purpose
    there are new kinds of Style elements available in the Styles
    plugin. TraceCanvas is a specialized Canvas for rendering the
    trace object on screen. The TraceCanvas is a normal styling
    component, and can be customized like any other style element.
    
    Finally, the InputMethod.traceEnd() is called when the trace
    interaction ends. The trace is removed from screen automatically
    when the trace object is deleted. I.e., the input method has
    full control on how many traces it wants to collect for single
    recognition phase.
    
    Change-Id: I80ed90032f715726280197d9e94e7f0bd8280ff3
    Reviewed-by: default avatarGatis Paeglis <gatis.paeglis@theqtcompany.com>
    28cf4492
segmentation.h 1.50 KiB
/*
 *  Copyright (c) 2010 The WebM project authors. All Rights Reserved.
 *  Use of this source code is governed by a BSD-style license
 *  that can be found in the LICENSE file in the root of the source
 *  tree. An additional intellectual property rights grant can be found
 *  in the file PATENTS.  All contributing project authors may
 *  be found in the AUTHORS file in the root of the source tree.
 */
#include "string.h"
#include "vp8/common/blockd.h"
#include "onyx_int.h"
#ifndef __INC_SEGMENTATION_H__
#define __INC_SEGMENTATION_H__ 1
extern void vp8_update_gf_useage_maps(VP8_COMP *cpi, VP8_COMMON *cm, MACROBLOCK *x);
extern void vp8_enable_segmentation(VP8_PTR ptr);
extern void vp8_disable_segmentation(VP8_PTR ptr);
// Valid values for a segment are 0 to 3
// Segmentation map is arrange as [Rows][Columns]
extern void vp8_set_segmentation_map(VP8_PTR ptr, unsigned char *segmentation_map);
// The values given for each segment can be either deltas (from the default
// value chosen for the frame) or absolute values.
// Valid range for abs values is (0-127 for MB_LVL_ALT_Q) , (0-63 for
// SEGMENT_ALT_LF)
// Valid range for delta values are (+/-127 for MB_LVL_ALT_Q) , (+/-63 for
// SEGMENT_ALT_LF)
// abs_delta = SEGMENT_DELTADATA (deltas) abs_delta = SEGMENT_ABSDATA (use
// the absolute values given).
extern void vp8_set_segment_data(VP8_PTR ptr, signed char *feature_data, unsigned char abs_delta);
extern void choose_segmap_coding_method( VP8_COMP *cpi );
#endif /* __INC_SEGMENTATION_H__ */