Home | History | Annotate | Download | only in include
      1 /*
      2  * Copyright@ Samsung Electronics Co. LTD
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15 */
     16 
     17 /*!
     18  * \file      ExynosRect.h
     19  * \brief     header file for ExynosRect
     20  * \author    Sangwoo, Park(sw5771.park (at) samsung.com)
     21  * \date      2011/06/02
     22  *
     23  * <b>Revision History: </b>
     24  * - 2010/06/03 : Sangwoo, Park(sw5771.park (at) samsung.com) \n
     25  *   Initial version
     26  *
     27  * - 2012/03/14 : sangwoo.park(sw5771.park (at) samsung.com) \n
     28  *   Change file, struct name to ExynosXXX.
     29  *
     30  */
     31 
     32 #ifndef EXYNOS_RECT_H_
     33 #define EXYNOS_RECT_H_
     34 
     35 //! Rectangle information
     36 /*!
     37  * \ingroup Exynos
     38  */
     39 struct ExynosRect
     40 {
     41     int x;           //!< x pos
     42     int y;           //!< y pos
     43     int w;           //!< width
     44     int h;           //!< height
     45     int fullW;       //!< full width of image
     46     int fullH;       //!< full height of image
     47     int colorFormat; //!< V4L2_PIX_FMT_XXX
     48 
     49 #ifdef __cplusplus
     50     //! Constructor
     51     ExynosRect(int _x_ = 0,
     52             int _y_ = 0,
     53             int _w_ = 0,
     54             int _h_ = 0,
     55             int _fullW_ = 0,
     56             int _fullH_ = 0,
     57             int _colorFormat_ = 0)
     58     {
     59         x = _x_;
     60         y = _y_;
     61         w = _w_;
     62         h = _h_;
     63         fullW = _fullW_;
     64         fullH = _fullH_;
     65         colorFormat = _colorFormat_;
     66     }
     67 
     68     //! Constructor
     69     ExynosRect(const ExynosRect *other)
     70     {
     71         x           = other->x;
     72         y           = other->y;
     73         w           = other->w;
     74         h           = other->h;
     75         fullW       = other->fullW;
     76         fullH       = other->fullH;
     77         colorFormat = other->colorFormat;
     78     }
     79 
     80     //! Operator(=) override
     81     ExynosRect& operator =(const ExynosRect &other)
     82     {
     83         x           = other.x;
     84         y           = other.y;
     85         w           = other.w;
     86         h           = other.h;
     87         fullW       = other.fullW;
     88         fullH       = other.fullH;
     89         colorFormat = other.colorFormat;
     90         return *this;
     91     }
     92 
     93     //! Operator(==) override
     94     bool operator ==(const ExynosRect &other) const
     95     {
     96         return (   x           == other.x
     97                 && y           == other.y
     98                 && w           == other.w
     99                 && h           == other.h
    100                 && fullW       == other.fullW
    101                 && fullH       == other.fullH
    102                 && colorFormat == other.colorFormat);
    103     }
    104 
    105     //! Operator(!=) override
    106     bool operator !=(const ExynosRect &other) const
    107     {
    108         // use operator(==)
    109         return !(*this == other);
    110     }
    111 #endif
    112 };
    113 
    114 //! Clip information
    115 /*!
    116  * \ingroup Exynos
    117  */
    118 struct ExynosRect2
    119 {
    120     int x1; //!< Left   (The x-coordinate value of upper-left corner)
    121     int y1; //!< Top    (The y-coordinate value of upper-left corner)
    122     int x2; //!< Right  (The x-coordinate value of lower-right corner)
    123     int y2; //!< Bottom (The y-coordinate value of lower-right corner)
    124 
    125 #ifdef __cplusplus
    126     //! Constructor
    127     ExynosRect2(int _x1_ = 0, int _y1_ = 0, int _x2_ = 0, int _y2_ = 0)
    128     {
    129         x1 = _x1_;
    130         y1 = _y1_;
    131         x2 = _x2_;
    132         y2 = _y2_;
    133     }
    134 
    135     //! Constructor
    136     ExynosRect2(const ExynosRect2 *other)
    137     {
    138         x1 = other->x1;
    139         y1 = other->y1;
    140         x2 = other->x2;
    141         y2 = other->y2;
    142     }
    143 
    144     //! Operator(=) override
    145     ExynosRect2& operator =(const ExynosRect2 &other)
    146     {
    147         x1 = other.x1;
    148         y1 = other.y1;
    149         x2 = other.x2;
    150         y2 = other.y2;
    151         return *this;
    152     }
    153 
    154     //! Operator(==) override
    155     bool operator ==(const ExynosRect2 &other) const
    156     {
    157         return (   x1 == other.x1
    158                 && y1 == other.y1
    159                 && x2 == other.x2
    160                 && y2 == other.y2);
    161     }
    162 
    163     //! Operator(!=) override
    164     bool operator !=(const ExynosRect2 &other) const
    165     {
    166         // use operator(==)
    167         return !(*this == other);
    168     }
    169 #endif
    170 };
    171 
    172 #endif //EXYNOS_RECT_H_
    173