/*
 * Copyright 2010 Trident Microsystems (Far East) Ltd. All rights reserved.
 * All prior copyright rights in this work and the accompanying software
 * products transferred to Trident Microsystems (Far East) Ltd. by written
 * agreement.
 */
/*****************************************************************************/
/* Copyright (c) 2010 NXP B.V.  All rights are reserved.                     */
/*                                                                           */
/* Redistribution and use in source and binary forms, with or without        */
/* modification, are permitted provided that the following conditions        */
/* are met:                                                                  */
/*                                                                           */
/* Redistributions of source code must retain the above copyright            */
/* notice, this list of conditions and the following disclaimer.             */
/*                                                                           */
/* Redistributions in binary form must reproduce the above copyright         */
/* notice, this list of conditions and the following disclaimer in the       */
/* documentation and/or other materials provided with the distribution.      */
/*                                                                           */
/* Neither the name of NXP nor the names of its                              */
/* contributors may be used to endorse or promote products derived from      */
/* this software without specific prior written permission.                  */
/*                                                                           */
/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS       */
/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT         */
/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR     */
/* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT      */
/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,     */
/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT          */
/* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,     */
/* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY     */
/* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT       */
/* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE         */
/* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH          */
/* DAMAGE.                                                                   */
/*                                                                           */
/*****************************************************************************/
/**
    @file   phStbRCProtocol.h
    @brief  Linux implementation of the Infra-red protocol driver.

    @b  Module:  phStbRCProtocol

*//*

Rev Date        Author      Comments
--------------------------------------------------------------------------------
  1 20070116    neill       Original
  2 20070517    scully      Additional protocol
  3 20070604    neill       Simplified interface
  3 20071010    ashetty     Added new interface for setting repeat delay
  7 20080207    batelaan    Update file copyright/license text
  8 20080229    neill       Allow RC protocol to be replaced
  9 20090120    batelaan    Update file copyright/license text
 10 2009080825  amccurdy    Remove dependency on tmtypes.h
--------------------------------------------------------------------------------
    For consistency and standardisation retain the Section Separators.
*/
#ifndef __PHSTBRCPROTOCOL_H__
#define __PHSTBRCPROTOCOL_H__

//-----------------------------------------------------------------------------
// Standard include files:
//-----------------------------------------------------------------------------
//

#ifdef __cplusplus
extern "C"
{
#endif

typedef struct _phStbRCProtocolOpcode_t
{
   unsigned int RC_key;
   unsigned int translated_Key;
}phStbRCProtocolOpcode_t;

/* Maximum number of remote control keys that can be mapped */
#define PHSTBRCPROTOCOL_MAX_KEYS (256)

/* Required final entry in the the opcode protocol list */
#define PHSTBRCPROTOCOL_END_OF_KEY_LIST (0xFFFFFFFF)

#ifdef __KERNEL__

extern void phStbRCProtocol_init(struct input_dev * pInput_dev);
extern void phStbRCProtocol_setRepeatDelay(struct input_dev * pInput_dev);

#endif

/** The base of phStbRCProtocol ioctls */
#define PHSTBRCPROTOCOL_IOCTL_BASE 0x1C

/** Select the field to be accessed */
#define PHSTBRCPROTOCOL_IOCTL_SET_PROTOCOL _IOW(PHSTBRCPROTOCOL_IOCTL_BASE, 0, phStbRCProtocolOpcode_t*)
#define PHSTBRCPROTOCOL_IOCTL_WRITE_PROTOCOL _IOW(PHSTBRCPROTOCOL_IOCTL_BASE, 1, unsigned int)

#ifdef __cplusplus
}
#endif

#endif /* __PHSTBRCPROTOCOL_H__ */

