Vekatech / VK_RZ_A1H_LCD_demo
Committer:
tvendov
Date:
Thu Feb 16 10:23:48 2017 +0000
Revision:
0:6435b67ad23c
Initial lcd support (VKLCD50RTA & VKLCD70RT companion boards)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tvendov 0:6435b67ad23c 1 /*******************************************************************************
tvendov 0:6435b67ad23c 2 * DISCLAIMER
tvendov 0:6435b67ad23c 3 * This software is supplied by Renesas Electronics Corporation and is only
tvendov 0:6435b67ad23c 4 * intended for use with Renesas products. No other uses are authorized. This
tvendov 0:6435b67ad23c 5 * software is owned by Renesas Electronics Corporation and is protected under
tvendov 0:6435b67ad23c 6 * all applicable laws, including copyright laws.
tvendov 0:6435b67ad23c 7 * THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
tvendov 0:6435b67ad23c 8 * THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
tvendov 0:6435b67ad23c 9 * LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
tvendov 0:6435b67ad23c 10 * AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
tvendov 0:6435b67ad23c 11 * TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
tvendov 0:6435b67ad23c 12 * ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
tvendov 0:6435b67ad23c 13 * FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
tvendov 0:6435b67ad23c 14 * ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
tvendov 0:6435b67ad23c 15 * BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
tvendov 0:6435b67ad23c 16 * Renesas reserves the right, without notice, to make changes to this software
tvendov 0:6435b67ad23c 17 * and to discontinue the availability of this software. By using this software,
tvendov 0:6435b67ad23c 18 * you agree to the additional terms and conditions found by accessing the
tvendov 0:6435b67ad23c 19 * following link:
tvendov 0:6435b67ad23c 20 * http://www.renesas.com/disclaimer
tvendov 0:6435b67ad23c 21 * Copyright (C) 2012 - 2015 Renesas Electronics Corporation. All rights reserved.
tvendov 0:6435b67ad23c 22 *******************************************************************************/
tvendov 0:6435b67ad23c 23 /**************************************************************************//**
tvendov 0:6435b67ad23c 24 * @file r_vdec.c
tvendov 0:6435b67ad23c 25 * @version 1.00
tvendov 0:6435b67ad23c 26 * $Rev: 199 $
tvendov 0:6435b67ad23c 27 * $Date:: 2014-05-23 16:33:52 +0900#$
tvendov 0:6435b67ad23c 28 * @brief VDEC driver API function
tvendov 0:6435b67ad23c 29 ******************************************************************************/
tvendov 0:6435b67ad23c 30
tvendov 0:6435b67ad23c 31 /******************************************************************************
tvendov 0:6435b67ad23c 32 Includes <System Includes> , "Project Includes"
tvendov 0:6435b67ad23c 33 ******************************************************************************/
tvendov 0:6435b67ad23c 34 #include "r_vdec.h"
tvendov 0:6435b67ad23c 35 #include "r_vdec_user.h"
tvendov 0:6435b67ad23c 36 #include "r_vdec_register.h"
tvendov 0:6435b67ad23c 37 #include "r_vdec_check_parameter.h"
tvendov 0:6435b67ad23c 38
tvendov 0:6435b67ad23c 39
tvendov 0:6435b67ad23c 40 /******************************************************************************
tvendov 0:6435b67ad23c 41 Macro definitions
tvendov 0:6435b67ad23c 42 ******************************************************************************/
tvendov 0:6435b67ad23c 43
tvendov 0:6435b67ad23c 44 /******************************************************************************
tvendov 0:6435b67ad23c 45 Typedef definitions
tvendov 0:6435b67ad23c 46 ******************************************************************************/
tvendov 0:6435b67ad23c 47
tvendov 0:6435b67ad23c 48 /******************************************************************************
tvendov 0:6435b67ad23c 49 Private global variables and functions
tvendov 0:6435b67ad23c 50 ******************************************************************************/
tvendov 0:6435b67ad23c 51
tvendov 0:6435b67ad23c 52 /**************************************************************************//**
tvendov 0:6435b67ad23c 53 * @brief VDEC driver initialization
tvendov 0:6435b67ad23c 54 *
tvendov 0:6435b67ad23c 55 * Description:<br>
tvendov 0:6435b67ad23c 56 * This function performs the following processing:
tvendov 0:6435b67ad23c 57 * - Calls the user-defined function specified in init_func.
tvendov 0:6435b67ad23c 58 * - Sets up the input pins.
tvendov 0:6435b67ad23c 59 * @param[in] ch : Channel
tvendov 0:6435b67ad23c 60 * @param[in] vinsel : Input pin control
tvendov 0:6435b67ad23c 61 * - VDEC_ADC_VINSEL_VIN1
tvendov 0:6435b67ad23c 62 * - VDEC_ADC_VINSEL_VIN2
tvendov 0:6435b67ad23c 63 * @param[in] init_func : Pointer to a user-defined function
tvendov 0:6435b67ad23c 64 * @param[in] user_num : User defined number
tvendov 0:6435b67ad23c 65 * @retval Error code
tvendov 0:6435b67ad23c 66 *****************************************************************************/
tvendov 0:6435b67ad23c 67 vdec_error_t R_VDEC_Initialize (
tvendov 0:6435b67ad23c 68 const vdec_channel_t ch,
tvendov 0:6435b67ad23c 69 const vdec_adc_vinsel_t vinsel,
tvendov 0:6435b67ad23c 70 void (* const init_func)(uint32_t),
tvendov 0:6435b67ad23c 71 const uint32_t user_num)
tvendov 0:6435b67ad23c 72 {
tvendov 0:6435b67ad23c 73 vdec_error_t vdec_error;
tvendov 0:6435b67ad23c 74
tvendov 0:6435b67ad23c 75 vdec_error = VDEC_OK;
tvendov 0:6435b67ad23c 76 #ifdef R_VDEC_CHECK_PARAMETERS
tvendov 0:6435b67ad23c 77 if ((ch != VDEC_CHANNEL_0) && (ch != VDEC_CHANNEL_1)) {
tvendov 0:6435b67ad23c 78 vdec_error = VDEC_ERR_CHANNEL; /* Channel error */
tvendov 0:6435b67ad23c 79 }
tvendov 0:6435b67ad23c 80 if (vdec_error == VDEC_OK) {
tvendov 0:6435b67ad23c 81 vdec_error = VDEC_InitializeCheckParam(vinsel);
tvendov 0:6435b67ad23c 82 }
tvendov 0:6435b67ad23c 83 #endif /* R_VDEC_CHECK_PARAMETERS */
tvendov 0:6435b67ad23c 84 if (vdec_error == VDEC_OK) {
tvendov 0:6435b67ad23c 85 /* User-defined function */
tvendov 0:6435b67ad23c 86 if (init_func != 0) {
tvendov 0:6435b67ad23c 87 init_func(user_num);
tvendov 0:6435b67ad23c 88 }
tvendov 0:6435b67ad23c 89 VDEC_Initialize(ch, vinsel);
tvendov 0:6435b67ad23c 90 }
tvendov 0:6435b67ad23c 91 return vdec_error;
tvendov 0:6435b67ad23c 92 } /* End of function R_VDEC_Initialize() */
tvendov 0:6435b67ad23c 93
tvendov 0:6435b67ad23c 94 /**************************************************************************//**
tvendov 0:6435b67ad23c 95 * @brief VDEC driver termination
tvendov 0:6435b67ad23c 96 *
tvendov 0:6435b67ad23c 97 * Description:<br>
tvendov 0:6435b67ad23c 98 * This function performs the following processing:
tvendov 0:6435b67ad23c 99 * - Calls the user-defined function specified in quit_func.
tvendov 0:6435b67ad23c 100 * @param[in] ch : Channel
tvendov 0:6435b67ad23c 101 * @param[in] quit_func : Pointer to a user-defined function
tvendov 0:6435b67ad23c 102 * @param[in] user_num : User defined number
tvendov 0:6435b67ad23c 103 * @retval Error code
tvendov 0:6435b67ad23c 104 *****************************************************************************/
tvendov 0:6435b67ad23c 105 vdec_error_t R_VDEC_Terminate (const vdec_channel_t ch, void (* const quit_func)(uint32_t), const uint32_t user_num)
tvendov 0:6435b67ad23c 106 {
tvendov 0:6435b67ad23c 107 vdec_error_t vdec_error;
tvendov 0:6435b67ad23c 108
tvendov 0:6435b67ad23c 109 vdec_error = VDEC_OK;
tvendov 0:6435b67ad23c 110 #ifdef R_VDEC_CHECK_PARAMETERS
tvendov 0:6435b67ad23c 111 if ((ch != VDEC_CHANNEL_0) && (ch != VDEC_CHANNEL_1)) {
tvendov 0:6435b67ad23c 112 vdec_error = VDEC_ERR_CHANNEL; /* Channel error */
tvendov 0:6435b67ad23c 113 }
tvendov 0:6435b67ad23c 114 #endif /* R_VDEC_CHECK_PARAMETERS */
tvendov 0:6435b67ad23c 115 if (vdec_error == VDEC_OK) {
tvendov 0:6435b67ad23c 116 /* User-defined function */
tvendov 0:6435b67ad23c 117 if (quit_func != 0) {
tvendov 0:6435b67ad23c 118 quit_func(user_num);
tvendov 0:6435b67ad23c 119 }
tvendov 0:6435b67ad23c 120 }
tvendov 0:6435b67ad23c 121 return vdec_error;
tvendov 0:6435b67ad23c 122 } /* End of function R_VDEC_Terminate() */
tvendov 0:6435b67ad23c 123
tvendov 0:6435b67ad23c 124 /**************************************************************************//**
tvendov 0:6435b67ad23c 125 * @brief Active image period setup
tvendov 0:6435b67ad23c 126 *
tvendov 0:6435b67ad23c 127 * Description:<br>
tvendov 0:6435b67ad23c 128 * This function configures the active image period.
tvendov 0:6435b67ad23c 129 * @param[in] ch : Channel
tvendov 0:6435b67ad23c 130 * @param[in] param : Active image period parameter
tvendov 0:6435b67ad23c 131 * @retval Error code
tvendov 0:6435b67ad23c 132 *****************************************************************************/
tvendov 0:6435b67ad23c 133 vdec_error_t R_VDEC_ActivePeriod (const vdec_channel_t ch, const vdec_active_period_t * const param)
tvendov 0:6435b67ad23c 134 {
tvendov 0:6435b67ad23c 135 vdec_error_t vdec_error;
tvendov 0:6435b67ad23c 136
tvendov 0:6435b67ad23c 137 vdec_error = VDEC_OK;
tvendov 0:6435b67ad23c 138 #ifdef R_VDEC_CHECK_PARAMETERS
tvendov 0:6435b67ad23c 139 if ((ch != VDEC_CHANNEL_0) && (ch != VDEC_CHANNEL_1)) {
tvendov 0:6435b67ad23c 140 vdec_error = VDEC_ERR_CHANNEL; /* Channel error */
tvendov 0:6435b67ad23c 141 }
tvendov 0:6435b67ad23c 142 if (vdec_error == VDEC_OK) {
tvendov 0:6435b67ad23c 143 vdec_error = VDEC_ActivePeriodCheckParam(param);
tvendov 0:6435b67ad23c 144 }
tvendov 0:6435b67ad23c 145 #endif /* R_VDEC_CHECK_PARAMETERS */
tvendov 0:6435b67ad23c 146 if (vdec_error == VDEC_OK) {
tvendov 0:6435b67ad23c 147 VDEC_ActivePeriod(ch, param);
tvendov 0:6435b67ad23c 148 }
tvendov 0:6435b67ad23c 149 return vdec_error;
tvendov 0:6435b67ad23c 150 } /* End of function R_VDEC_ActivePeriod() */
tvendov 0:6435b67ad23c 151
tvendov 0:6435b67ad23c 152 /**************************************************************************//**
tvendov 0:6435b67ad23c 153 * @brief Sync separation processing
tvendov 0:6435b67ad23c 154 *
tvendov 0:6435b67ad23c 155 * Description:<br>
tvendov 0:6435b67ad23c 156 * This function performs the following processing:
tvendov 0:6435b67ad23c 157 * - Configures the noise reduction LPF.
tvendov 0:6435b67ad23c 158 * - Configures the auto level control sync slicer.
tvendov 0:6435b67ad23c 159 * - Configures the horizontal AFC.
tvendov 0:6435b67ad23c 160 * - Configures the vertical count-down.
tvendov 0:6435b67ad23c 161 * - Configures the AGC.
tvendov 0:6435b67ad23c 162 * - Configures the peak limiter control.
tvendov 0:6435b67ad23c 163 * @param[in] ch : Channel
tvendov 0:6435b67ad23c 164 * @param[in] param : Sync separation parameter
tvendov 0:6435b67ad23c 165 * @retval Error code
tvendov 0:6435b67ad23c 166 *****************************************************************************/
tvendov 0:6435b67ad23c 167 vdec_error_t R_VDEC_SyncSeparation (const vdec_channel_t ch, const vdec_sync_separation_t * const param)
tvendov 0:6435b67ad23c 168 {
tvendov 0:6435b67ad23c 169 vdec_error_t vdec_error;
tvendov 0:6435b67ad23c 170
tvendov 0:6435b67ad23c 171 vdec_error = VDEC_OK;
tvendov 0:6435b67ad23c 172 #ifdef R_VDEC_CHECK_PARAMETERS
tvendov 0:6435b67ad23c 173 if ((ch != VDEC_CHANNEL_0) && (ch != VDEC_CHANNEL_1)) {
tvendov 0:6435b67ad23c 174 vdec_error = VDEC_ERR_CHANNEL; /* Channel error */
tvendov 0:6435b67ad23c 175 }
tvendov 0:6435b67ad23c 176 if (vdec_error == VDEC_OK) {
tvendov 0:6435b67ad23c 177 vdec_error = VDEC_SyncSeparationCheckParam(param);
tvendov 0:6435b67ad23c 178 }
tvendov 0:6435b67ad23c 179 #endif /* R_VDEC_CHECK_PARAMETERS */
tvendov 0:6435b67ad23c 180 if (vdec_error == VDEC_OK) {
tvendov 0:6435b67ad23c 181 VDEC_SyncSeparation(ch, param);
tvendov 0:6435b67ad23c 182 }
tvendov 0:6435b67ad23c 183 return vdec_error;
tvendov 0:6435b67ad23c 184 } /* End of function R_VDEC_SyncSeparation() */
tvendov 0:6435b67ad23c 185
tvendov 0:6435b67ad23c 186 /**************************************************************************//**
tvendov 0:6435b67ad23c 187 * @brief Y/C separation processing
tvendov 0:6435b67ad23c 188 *
tvendov 0:6435b67ad23c 189 * Description:<br>
tvendov 0:6435b67ad23c 190 * This function performs the following processing:
tvendov 0:6435b67ad23c 191 * - Configures the over-range control.
tvendov 0:6435b67ad23c 192 * - Configures the Y/C separation control.
tvendov 0:6435b67ad23c 193 * - Configures the chroma filter TAP coefficients for Y/C separation.
tvendov 0:6435b67ad23c 194 * @param[in] ch : Channel
tvendov 0:6435b67ad23c 195 * @param[in] param : Y/C separation parameter
tvendov 0:6435b67ad23c 196 * @retval Error code
tvendov 0:6435b67ad23c 197 *****************************************************************************/
tvendov 0:6435b67ad23c 198 vdec_error_t R_VDEC_YcSeparation (const vdec_channel_t ch, const vdec_yc_separation_t * const param)
tvendov 0:6435b67ad23c 199 {
tvendov 0:6435b67ad23c 200 vdec_error_t vdec_error;
tvendov 0:6435b67ad23c 201
tvendov 0:6435b67ad23c 202 vdec_error = VDEC_OK;
tvendov 0:6435b67ad23c 203 #ifdef R_VDEC_CHECK_PARAMETERS
tvendov 0:6435b67ad23c 204 if ((ch != VDEC_CHANNEL_0) && (ch != VDEC_CHANNEL_1)) {
tvendov 0:6435b67ad23c 205 vdec_error = VDEC_ERR_CHANNEL; /* Channel error */
tvendov 0:6435b67ad23c 206 }
tvendov 0:6435b67ad23c 207 if (vdec_error == VDEC_OK) {
tvendov 0:6435b67ad23c 208 vdec_error = VDEC_YcSeparationCheckParam(param);
tvendov 0:6435b67ad23c 209 }
tvendov 0:6435b67ad23c 210 #endif /* R_VDEC_CHECK_PARAMETERS */
tvendov 0:6435b67ad23c 211 if (vdec_error == VDEC_OK) {
tvendov 0:6435b67ad23c 212 VDEC_YcSeparation(ch, param);
tvendov 0:6435b67ad23c 213 }
tvendov 0:6435b67ad23c 214 return vdec_error;
tvendov 0:6435b67ad23c 215 } /* End of function R_VDEC_YcSeparation() */
tvendov 0:6435b67ad23c 216
tvendov 0:6435b67ad23c 217 /**************************************************************************//**
tvendov 0:6435b67ad23c 218 * @brief Chroma decoding processing
tvendov 0:6435b67ad23c 219 *
tvendov 0:6435b67ad23c 220 * Description:<br>
tvendov 0:6435b67ad23c 221 * This function performs the following processing:
tvendov 0:6435b67ad23c 222 * - Configures the color system detection.
tvendov 0:6435b67ad23c 223 * - Configures the BCO.
tvendov 0:6435b67ad23c 224 * - Configures the ACC/color killer.
tvendov 0:6435b67ad23c 225 * - Configures the TINT correction/R-Y axis correction.
tvendov 0:6435b67ad23c 226 * @param[in] ch : Channel
tvendov 0:6435b67ad23c 227 * @param[in] param : Chroma decoding parameter
tvendov 0:6435b67ad23c 228 * @retval Error code
tvendov 0:6435b67ad23c 229 *****************************************************************************/
tvendov 0:6435b67ad23c 230 vdec_error_t R_VDEC_ChromaDecoding (const vdec_channel_t ch, const vdec_chroma_decoding_t * const param)
tvendov 0:6435b67ad23c 231 {
tvendov 0:6435b67ad23c 232 vdec_error_t vdec_error;
tvendov 0:6435b67ad23c 233
tvendov 0:6435b67ad23c 234 vdec_error = VDEC_OK;
tvendov 0:6435b67ad23c 235 #ifdef R_VDEC_CHECK_PARAMETERS
tvendov 0:6435b67ad23c 236 if ((ch != VDEC_CHANNEL_0) && (ch != VDEC_CHANNEL_1)) {
tvendov 0:6435b67ad23c 237 vdec_error = VDEC_ERR_CHANNEL; /* Channel error */
tvendov 0:6435b67ad23c 238 }
tvendov 0:6435b67ad23c 239 if (vdec_error == VDEC_OK) {
tvendov 0:6435b67ad23c 240 vdec_error = VDEC_ChromaDecodingCheckParam(param);
tvendov 0:6435b67ad23c 241 }
tvendov 0:6435b67ad23c 242 #endif /* R_VDEC_CHECK_PARAMETERS */
tvendov 0:6435b67ad23c 243 if (vdec_error == VDEC_OK) {
tvendov 0:6435b67ad23c 244 VDEC_ChromaDecoding(ch, param);
tvendov 0:6435b67ad23c 245 }
tvendov 0:6435b67ad23c 246 return vdec_error;
tvendov 0:6435b67ad23c 247 } /* End of function R_VDEC_ChromaDecoding() */
tvendov 0:6435b67ad23c 248
tvendov 0:6435b67ad23c 249 /**************************************************************************//**
tvendov 0:6435b67ad23c 250 * @brief Digital clamp processing
tvendov 0:6435b67ad23c 251 *
tvendov 0:6435b67ad23c 252 * Description:<br>
tvendov 0:6435b67ad23c 253 * This function performs the following processing:
tvendov 0:6435b67ad23c 254 * - Configures the digital clamp control.
tvendov 0:6435b67ad23c 255 * - Configures the center clamp.
tvendov 0:6435b67ad23c 256 * - Configures the pedestal clamp.
tvendov 0:6435b67ad23c 257 * - Configures the noise detection control.
tvendov 0:6435b67ad23c 258 * @param[in] ch : Channel
tvendov 0:6435b67ad23c 259 * @param[in] param : Digital clamp parameter
tvendov 0:6435b67ad23c 260 * @retval Error code
tvendov 0:6435b67ad23c 261 *****************************************************************************/
tvendov 0:6435b67ad23c 262 vdec_error_t R_VDEC_DigitalClamp (const vdec_channel_t ch, const vdec_degital_clamp_t * const param)
tvendov 0:6435b67ad23c 263 {
tvendov 0:6435b67ad23c 264 vdec_error_t vdec_error;
tvendov 0:6435b67ad23c 265
tvendov 0:6435b67ad23c 266 vdec_error = VDEC_OK;
tvendov 0:6435b67ad23c 267 #ifdef R_VDEC_CHECK_PARAMETERS
tvendov 0:6435b67ad23c 268 if ((ch != VDEC_CHANNEL_0) && (ch != VDEC_CHANNEL_1)) {
tvendov 0:6435b67ad23c 269 vdec_error = VDEC_ERR_CHANNEL; /* Channel error */
tvendov 0:6435b67ad23c 270 }
tvendov 0:6435b67ad23c 271 if (vdec_error == VDEC_OK) {
tvendov 0:6435b67ad23c 272 vdec_error = VDEC_DigitalClampCheckParam(param);
tvendov 0:6435b67ad23c 273 }
tvendov 0:6435b67ad23c 274 #endif /* R_VDEC_CHECK_PARAMETERS */
tvendov 0:6435b67ad23c 275 if (vdec_error == VDEC_OK) {
tvendov 0:6435b67ad23c 276 VDEC_DigitalClamp(ch, param);
tvendov 0:6435b67ad23c 277 }
tvendov 0:6435b67ad23c 278 return vdec_error;
tvendov 0:6435b67ad23c 279 } /* End of function R_VDEC_DigitalClamp() */
tvendov 0:6435b67ad23c 280
tvendov 0:6435b67ad23c 281 /**************************************************************************//**
tvendov 0:6435b67ad23c 282 * @brief Output adjustment processing
tvendov 0:6435b67ad23c 283 *
tvendov 0:6435b67ad23c 284 * Description:<br>
tvendov 0:6435b67ad23c 285 * This function makes settings for output adjustment.
tvendov 0:6435b67ad23c 286 * @param[in] ch : Channel
tvendov 0:6435b67ad23c 287 * @param[in] param : Output adjustment parameter
tvendov 0:6435b67ad23c 288 * @retval Error code
tvendov 0:6435b67ad23c 289 *****************************************************************************/
tvendov 0:6435b67ad23c 290 vdec_error_t R_VDEC_Output (const vdec_channel_t ch, const vdec_output_t * const param)
tvendov 0:6435b67ad23c 291 {
tvendov 0:6435b67ad23c 292 vdec_error_t vdec_error;
tvendov 0:6435b67ad23c 293
tvendov 0:6435b67ad23c 294 vdec_error = VDEC_OK;
tvendov 0:6435b67ad23c 295 #ifdef R_VDEC_CHECK_PARAMETERS
tvendov 0:6435b67ad23c 296 if ((ch != VDEC_CHANNEL_0) && (ch != VDEC_CHANNEL_1)) {
tvendov 0:6435b67ad23c 297 vdec_error = VDEC_ERR_CHANNEL; /* Channel error */
tvendov 0:6435b67ad23c 298 }
tvendov 0:6435b67ad23c 299 if (vdec_error == VDEC_OK) {
tvendov 0:6435b67ad23c 300 vdec_error = VDEC_OutputCheckParam(param);
tvendov 0:6435b67ad23c 301 }
tvendov 0:6435b67ad23c 302 #endif /* R_VDEC_CHECK_PARAMETERS */
tvendov 0:6435b67ad23c 303 if (vdec_error == VDEC_OK) {
tvendov 0:6435b67ad23c 304 VDEC_Output(ch, param);
tvendov 0:6435b67ad23c 305 }
tvendov 0:6435b67ad23c 306 return vdec_error;
tvendov 0:6435b67ad23c 307 } /* End of function R_VDEC_Output() */
tvendov 0:6435b67ad23c 308
tvendov 0:6435b67ad23c 309 /**************************************************************************//**
tvendov 0:6435b67ad23c 310 * @brief VDEC information acquisition processing
tvendov 0:6435b67ad23c 311 *
tvendov 0:6435b67ad23c 312 * Description:<br>
tvendov 0:6435b67ad23c 313 * This gets the parameters of the VDEC modules. The parameters that can be obtained are listed below.
tvendov 0:6435b67ad23c 314 * - Sync separation parameters
tvendov 0:6435b67ad23c 315 * - AGC parameters
tvendov 0:6435b67ad23c 316 * - Chroma decoding parameters
tvendov 0:6435b67ad23c 317 * - Digital clamp parameters
tvendov 0:6435b67ad23c 318 * @param[in] ch : Channel
tvendov 0:6435b67ad23c 319 * @param[out] q_sync_sep : Pointer to the place where the sync separation parameters are stored.
tvendov 0:6435b67ad23c 320 * @param[out] q_agc : Pointer to the place where the AGC parameters are stored.
tvendov 0:6435b67ad23c 321 * @param[out] q_chroma_dec : Pointer to the place where the chroma decoding parameters are stored.
tvendov 0:6435b67ad23c 322 * @param[out] q_digital_clamp : Pointer to the place where the digital clamp parameters are stored.
tvendov 0:6435b67ad23c 323 * @retval Error code
tvendov 0:6435b67ad23c 324 *****************************************************************************/
tvendov 0:6435b67ad23c 325 vdec_error_t R_VDEC_Query (
tvendov 0:6435b67ad23c 326 const vdec_channel_t ch,
tvendov 0:6435b67ad23c 327 vdec_q_sync_sep_t * const q_sync_sep,
tvendov 0:6435b67ad23c 328 vdec_q_agc_t * const q_agc,
tvendov 0:6435b67ad23c 329 vdec_q_chroma_dec_t * const q_chroma_dec,
tvendov 0:6435b67ad23c 330 vdec_q_digital_clamp_t * const q_digital_clamp)
tvendov 0:6435b67ad23c 331 {
tvendov 0:6435b67ad23c 332 vdec_error_t vdec_error;
tvendov 0:6435b67ad23c 333
tvendov 0:6435b67ad23c 334 vdec_error = VDEC_OK;
tvendov 0:6435b67ad23c 335 #ifdef R_VDEC_CHECK_PARAMETERS
tvendov 0:6435b67ad23c 336 if ((ch != VDEC_CHANNEL_0) && (ch != VDEC_CHANNEL_1)) {
tvendov 0:6435b67ad23c 337 vdec_error = VDEC_ERR_CHANNEL; /* Channel error */
tvendov 0:6435b67ad23c 338 }
tvendov 0:6435b67ad23c 339 #endif /* R_VDEC_CHECK_PARAMETERS */
tvendov 0:6435b67ad23c 340 if (vdec_error == VDEC_OK) {
tvendov 0:6435b67ad23c 341 VDEC_Query(ch, q_sync_sep, q_agc, q_chroma_dec, q_digital_clamp);
tvendov 0:6435b67ad23c 342 }
tvendov 0:6435b67ad23c 343 return vdec_error;
tvendov 0:6435b67ad23c 344 } /* End of function R_VDEC_Query() */
tvendov 0:6435b67ad23c 345
tvendov 0:6435b67ad23c 346