Home | History | Annotate | Download | only in include
      1 /*
      2  *
      3  * Copyright 2012 Samsung Electronics S.LSI Co. LTD
      4  *
      5  * Licensed under the Apache License, Version 2.0 (the "License");
      6  * you may not use this file except in compliance with the License.
      7  * You may obtain a copy of the License at
      8  *
      9  *      http://www.apache.org/licenses/LICENSE-2.0
     10  *
     11  * Unless required by applicable law or agreed to in writing, software
     12  * distributed under the License is distributed on an "AS IS" BASIS,
     13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14  * See the License for the specific language governing permissions and
     15  * limitations under the License.
     16  */
     17 
     18 /*!
     19  * \file      exynos_rotator.h
     20  * \brief     header file for exynos_rotator HAL
     21  * \author    Sunmi Lee (carrotsm.lee (at) samsung.com)
     22  * \date      2012/03/05
     23  *
     24  * <b>Revision History: </b>
     25  * - 2012/03/05 : Sunmi Lee (carrotsm.lee (at) samsung.com) \n
     26  *   Create
     27  *
     28  */
     29 
     30 /*!
     31  * \defgroup exynos_rotator
     32  * \brief API for rotator
     33  * \addtogroup Exynos
     34  */
     35 
     36 #ifndef _EXYNOS_ROTATOR_H_
     37 #define _EXYNOS_ROTATOR_H_
     38 
     39 #ifdef __cplusplus
     40 extern "C" {
     41 #endif
     42 
     43 /*!
     44  * Create librotator handle
     45  *
     46  * \ingroup exynos_rotator
     47  *
     48  * \return
     49  *   librotator handle
     50  */
     51 void *exynos_rotator_create(void);
     52 
     53 /*!
     54  * Destroy librotator handle
     55  *
     56  * \ingroup exynos_rotator
     57  *
     58  * \param handle
     59  *   librotator handle[in]
     60  */
     61 void exynos_rotator_destroy(
     62     void *handle);
     63 
     64 /*!
     65  * Set source format.
     66  *
     67  * \ingroup exynos_rotator
     68  *
     69  * \param handle
     70  *   librotator handle[in]
     71  *
     72  * \param width
     73  *   image width[in]
     74  *
     75  * \param height
     76  *   image height[in]
     77  *
     78  * \param crop_left
     79  *   image left crop size[in]
     80  *
     81  * \param crop_top
     82  *   image top crop size[in]
     83  *
     84  * \param crop_width
     85  *   cropped image width[in]
     86  *
     87  * \param crop_height
     88  *   cropped image height[in]
     89  *
     90  * \param v4l2_colorformat
     91  *   color format[in]
     92  *
     93  * \param cacheable
     94  *   ccacheable[in]
     95  *
     96  * \return
     97  *   error code
     98  */
     99 int exynos_rotator_set_src_format(
    100     void        *handle,
    101     unsigned int width,
    102     unsigned int height,
    103     unsigned int crop_left,
    104     unsigned int crop_top,
    105     unsigned int crop_width,
    106     unsigned int crop_height,
    107     unsigned int v4l2_colorformat,
    108     unsigned int cacheable);
    109 
    110 /*!
    111  * Set destination format.
    112  *
    113  * \ingroup exynos_rotator
    114  *
    115  * \param handle
    116  *   librotator handle[in]
    117  *
    118  * \param width
    119  *   image width[in]
    120  *
    121  * \param height
    122  *   image height[in]
    123  *
    124  * \param crop_left
    125  *   image left crop size[in]
    126  *
    127  * \param crop_top
    128  *   image top crop size[in]
    129  *
    130  * \param v4l2_colorformat
    131  *   color format[in]
    132  *
    133  * \param cacheable
    134  *   ccacheable[in]
    135  *
    136  * \return
    137  *   error code
    138  */
    139 int exynos_rotator_set_dst_format(
    140     void        *handle,
    141     unsigned int width,
    142     unsigned int height,
    143     unsigned int crop_left,
    144     unsigned int crop_top,
    145     unsigned int v4l2_colorformat,
    146     unsigned int cacheable);
    147 
    148 /*!
    149  * Set rotation.
    150  *
    151  * \ingroup exynos_rotator
    152  *
    153  * \param handle
    154  *   librotator handle[in]
    155  *
    156  * \param rotation
    157  *   image rotation. It should be multiple of 90[in]
    158  *
    159  * \return
    160  *   error code
    161  */
    162 int exynos_rotator_set_rotation(
    163     void *handle,
    164     int   rotation);
    165 
    166 /*!
    167  * Set source buffer
    168  *
    169  * \ingroup exynos_rotator
    170  *
    171  * \param handle
    172  *   librotator handle[in]
    173  *
    174  * \param addr
    175  *   buffer pointer array[in]
    176  *
    177  * \return
    178  *   error code
    179  */
    180 int exynos_rotator_set_src_addr(
    181     void *handle,
    182     void *addr[3]);
    183 
    184 /*!
    185  * Set destination buffer
    186  *
    187  * \ingroup exynos_rotator
    188  *
    189  * \param handle
    190  *   librotator handle[in]
    191  *
    192  * \param addr
    193  *   buffer pointer array[in]
    194  *
    195  * \return
    196  *   error code
    197  */
    198 int exynos_rotator_set_dst_addr(
    199     void *handle,
    200     void *addr[3]);
    201 
    202 /*!
    203  * Convert color space with presetup color format
    204  *
    205  * \ingroup exynos_rotator
    206  *
    207  * \param handle
    208  *   librotator handle[in]
    209  *
    210  * \return
    211  *   error code
    212  */
    213 int exynos_rotator_convert(
    214     void *handle);
    215 
    216 /*!
    217  * api for local path rotator. Not yet support.
    218  *
    219  * \ingroup exynos_rotator
    220  */
    221 int exynos_rotator_connect(
    222     void *handle,
    223     void *hw);
    224 
    225 /*!
    226  * api for local path rotator. Not yet support.
    227  *
    228  * \ingroup exynos_rotator
    229  */
    230 int exynos_rotator_disconnect(
    231     void *handle,
    232     void *hw);
    233 
    234 #ifdef __cplusplus
    235 }
    236 #endif
    237 
    238 #endif /*EXYNOS_ROTATORALER_H_*/