/*
 * 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   phStbStreamingSystem_SBMPinClient.h
    @brief  SBM Client interface

@b  Component:  phStbStreamingSystem.

    This header file is the SBMPinClient interface from the
    Streaming System detailed design.
*//*

Rev Date        Author      Comments
--------------------------------------------------------------------------------
  1 20060808    G.Lawrance  Original
  2 20080625    burningh    Update license text
  3 20090120    batelaan    Update file copyright/license text
--------------------------------------------------------------------------------
    For consistency and standardisation retain the Section Separators.
*/

#ifndef PHSTBSTREAMINGSYSTEM_SBMPINCLIENT_H
#define PHSTBSTREAMINGSYSTEM_SBMPINCLIENT_H

/*******************
* INCLUDE FILES    *
********************/

#include "sbm_ctl.h"
#include "tmNxTypes.h"

#ifdef __cplusplus
extern "C"
{
#endif

/**************************************************************************
* EXPORTED MACROS         PH[<LNX|TM|NONE>]_IPSTBSTREAMINGSYSTEM_SBMSINKCLIENT_<_WORD>+        *
***************************************************************************/

/*********************************************************************
* EXPORTED TYPEDEFS       [p]ph[<lnx|tm|NONE>]StbStreamingSystem_SBMPinClient_<Word>+_t  *
**********************************************************************/

/** Possible operations using the SBMPinClient interface */
typedef enum phStbStreamingSystem_SBMPinClientOp
{
    /* Set SBM Buffer ID */
    phStbStreamingSystem_SBMPinClientOp_SetBuffer,
    /* Get SBM Buffer ID */
    phStbStreamingSystem_SBMPinClientOp_GetBuffer,
    /* Remove or uninstall a SBM Buffer ID */
    phStbStreamingSystem_SBMPinClientOp_RemoveBuffer,
    /* Error, or invalid operation */
    phStbStreamingSystem_SBMPinClientOp_Guard
} phStbStreamingSystem_SBMPinClientOp_t;



/******************************************************************************/
/** Performs a SBMPinClient action, depending
    on the value of the parameter "op"

    @see phStbStreamingSystem_SBMPinClientOp_t

    Constraints:
        None

    @param op         IN  Operation to be performed
    @param pData      IN
                          op == SetBuffer:     SBM_CTL_BufferID
                          op == GetBuffer:     SBM_CTL_BufferID*
                          op == RemoveBuffer:  Not used

    @param pinID      IN  Pin index ID
    @param pUserData  IN  The user data that was defined on pin creation

    @retval None
*/

typedef tmErrorCode_t (*phStbStreamingSystem_SBMPinClient_t) (
    phStbStreamingSystem_SBMPinClientOp_t op,
    int pinID,
    void* pData,
    void* pUserData);

/**************************************************************************
* EXPORTED DATA      g[k|p|kp|pk|kpk]ph[<lnx|tm|NONE>]StbStreamingSystem_SBMPinClient_<Word>+ *
***************************************************************************/

/****************************************************************************
* EXPORTED FUNCTION PROTOTYPES     ph[<lnx|tm|NONE>]StbStreamingSystem_SBMPinClient_[_<Word>+]   *
*****************************************************************************/

/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/

#ifdef __cplusplus
}
#endif

#endif /* PHSTBSTREAMINGSYSTEM_SBMPINCLIENT_H      Do not add any thing below this line */
