1 /*---------------------------------------------------------------------------*
2   Project:  Horizon
3   File:     y2r_Types.h
4 
5   Copyright (C)2009-2012 Nintendo Co., Ltd.  All rights reserved.
6 
7   These coded instructions, statements, and computer programs contain
8   proprietary information of Nintendo of America Inc. and/or Nintendo
9   Company Ltd., and are protected by Federal copyright law.  They may
10   not be disclosed to third parties or copied or duplicated in any form,
11   in whole or in part, without the prior written consent of Nintendo.
12 
13   $Rev: 46347 $
14  *---------------------------------------------------------------------------*/
15 
16 #ifndef NN_Y2R_CTR_Y2R_Y2RTYPES_H_
17 #define NN_Y2R_CTR_Y2R_Y2RTYPES_H_
18 
19 #include <nn/Result.h>
20 
21 namespace nn {
22 namespace y2r {
23 namespace CTR {
24 
25     /* Please see man pages for details
26 
27     */
28     enum InputFormat
29     {
30         INPUT_YUV422_INDIV_8  = 0, //
31         INPUT_YUV420_INDIV_8  = 1, //
32         INPUT_YUV422_INDIV_16 = 2, //
33         INPUT_YUV420_INDIV_16 = 3, //
34         INPUT_YUV422_BATCH    = 4  //
35 
36     };
37 
38     /* Please see man pages for details
39 
40     */
41     enum OutputFormat
42     {
43         OUTPUT_RGB_32     = 0, //
44         OUTPUT_RGB_24     = 1, //
45         OUTPUT_RGB_16_555 = 2, //
46         OUTPUT_RGB_16_565 = 3  //
47     };
48 
49     /* Please see man pages for details
50 
51     */
52     enum Rotation
53     {
54         ROTATION_NONE          = 0, //
55         ROTATION_CLOCKWISE_90  = 1, //
56         ROTATION_CLOCKWISE_180 = 2, //
57         ROTATION_CLOCKWISE_270 = 3  //
58     };
59 
60     /* Please see man pages for details
61 
62     */
63     enum BlockAlignment
64     {
65         BLOCK_LINE   = 0, //
66         BLOCK_8_BY_8 = 1  //
67     };
68 
69     /* Please see man pages for details
70 
71 
72 
73 
74 
75 
76 
77 
78     */
79     struct CoefficientParams
80     {
81         u16  Y_A;
82         u16  R_V;
83         u16  G_V;
84         u16  G_U;
85         u16  B_U;
86         u16  R_Offset;
87         u16  G_Offset;
88         u16  B_Offset;
89     };
90 
91     /* Please see man pages for details
92 
93     */
94     enum StandardCoefficient
95     {
96         COEFFICIENT_ITU_R_BT_601 = 0,       //
97         COEFFICIENT_ITU_R_BT_709,           //
98         COEFFICIENT_ITU_R_BT_601_SCALING,   //
99         COEFFICIENT_ITU_R_BT_709_SCALING,   //
100 
101         COEFFICIENT_MAX
102     };
103 
104     /* Please see man pages for details
105 
106 
107 
108 
109 
110     */
111     struct DitheringWeightParams
112     {
113         u16   w0_xEven_yEven; //
114         u16   w0_xOdd_yEven;  //
115         u16   w0_xEven_yOdd;  //
116         u16   w0_xOdd_yOdd;   //
117 
118         u16   w1_xEven_yEven; //
119         u16   w1_xOdd_yEven;  //
120         u16   w1_xEven_yOdd;  //
121         u16   w1_xOdd_yOdd;   //
122 
123         u16   w2_xEven_yEven; //
124         u16   w2_xOdd_yEven;  //
125         u16   w2_xEven_yOdd;  //
126         u16   w2_xOdd_yOdd;   //
127 
128         u16   w3_xEven_yEven; //
129         u16   w3_xOdd_yEven;  //
130         u16   w3_xEven_yOdd;  //
131         u16   w3_xOdd_yOdd;   //
132     };
133 
134     /* Please see man pages for details
135 
136     */
137     struct PackageParameter
138     {
139         util::SizedEnum1<InputFormat>             inputFormat;            //
140         util::SizedEnum1<OutputFormat>            outputFormat;           //
141         util::SizedEnum1<Rotation>                rotation;               //
142         util::SizedEnum1<BlockAlignment>          blockAlignment;         //
143         s16                                      inputLineWidth;         //
144         s16                                      inputLines;             //
145         util::SizedEnum1<StandardCoefficient>     standardCoefficientNo;  //
146         NN_PADDING1;
147         s16                                      alpha;                  //
148     };
149 
150 } // namespace CTR
151 } // namespace y2r
152 } // namespace nn
153 
154 #endif //NN_Y2R_CTR_Y2R_Y2RTYPES_H_
155