/*
 * 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_MSPSourcePin.h
   @brief  Interface for a MSP Source Pin.

   @b  Component:  phStbStreamingSystem.

   This header file is the interface of the MSPSourcePin class from the
   Streaming System detailed design.
*//*

Rev Date        Author      Comments
--------------------------------------------------------------------------------
  1 20071108    barnish     Original
  2 20080204    F.Raiyat    FLPT -> MSP renaming
  3 20080212    burningh    Correct documentation errors; update license
  4 20090120    batelaan    Update file copyright/license text
--------------------------------------------------------------------------------
    For consistency and standardisation retain the Section Separators.
*/

#ifndef PHSTBSTREAMINGSYSTEM_MSPSOURCEPIN_H
#define PHSTBSTREAMINGSYSTEM_MSPSOURCEPIN_H

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

#include "phStbStreamingSystem_InstanceTypes.h"
#include "phStbStreamingSystem_MSPPinClient.h"

#ifdef __cplusplus
extern "C"
{
#endif

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

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

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

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

/* Class Operations */

/******************************************************************************/
/** Create new MSPSourcePin instance

    @param pDefaultFunc            IN  Default PutPacket function pointer
    @param output                  IN  output no.
    @param fnMspPinClient          IN  MSPPinClient interface callbacks to driver
    @param pMspPinClientUserData   IN  MSPPinClient callback user defined data
    @param sourcePinID             IN  Index of MSP output pin that will
                                        correspond to the new MSPSourcePin instance
    @param ppSourcePin             OUT Newly created object

    @retval TM_OK           Success
    @retval AnotherValue    Error occured.
*/

tmErrorCode_t phStbStreamingSystem_MSPSourcePin_Create(
    void *pDefaultFunc,
    UInt32 output,
    phStbStreamingSystem_MSPPinClient_t fnMspPinClient,
    void *pMspPinClientUserData,
    int sourcePinID,
    phStbStreamingSystem_SourcePin_t **ppSourcePin);

/* Instance Operations */

/* None */

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

#ifdef __cplusplus
}
#endif

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