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_TYPES_H_
17 #define NN_Y2R_CTR_Y2R_TYPES_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 #pragma push
135 #pragma diag_suppress 1301
136 
137     /* Please see man pages for details
138 
139     */
140     struct PackageParameter
141     {
142         util::SizedEnum1<InputFormat>             inputFormat;            //
143         util::SizedEnum1<OutputFormat>            outputFormat;           //
144         util::SizedEnum1<Rotation>                rotation;               //
145         util::SizedEnum1<BlockAlignment>          blockAlignment;         //
146         s16                                      inputLineWidth;          //
147         s16                                      inputLines;              //
148         util::SizedEnum1<StandardCoefficient>     standardCoefficientNo;  //
149         NN_PADDING1;
150         s16                                      alpha;                   //
151     };
152 
153 #pragma diag_default 1301
154 #pragma pop
155 
156 } // namespace CTR
157 } // namespace y2r
158 } // namespace nn
159 
160 #endif //NN_Y2R_CTR_Y2R_TYPES_H_
161