package netmanager.lib.playmanager;

import com.sun.jna.Callback;
import com.sun.jna.Pointer;

public class PlayDelegates 
{
	/**********************************************************************************
	参数:		[in]	
			HDC		hDc				绘图设备上下文句柄
			void*	pUserData		用户参数
	**********************************************************************************/
    public interface fRegDrawCallBack extends Callback
    {
        public void invoke(int nPort, Pointer hDc, Pointer pUserData);
    }
    
    /**********************************************************************************
	    参数：	[in] 
	    	FRAME_DEC_INFO* 		pFrameDecodeInfo:		帧内容
	    	FRAME_ATTRI_INFO_EX* 	pFrameInfo:				帧信息
	    	void* 					pUserData:				用户参数
    **********************************************************************************/
    public interface fDecodeCallBack extends Callback
    {
        public void invoke(int nPort, Pointer pFrameDecodeInfo, Pointer pFrameInfo, Pointer pUserData);
    }
    
    /**********************************************************************************
   	参数：		[in] 
    		char*	pYuvBuf:				视频帧 YUV 数据
    		void* 	pReserved: 				保留参数
    **********************************************************************************/
    public interface fDisplayCallBack extends Callback
    {
        public void invoke(int nPort, Pointer pYuvBuf, int nYuvSize, int nWidth, int nHeight, int nStamp, int nType, Pointer pReserved);
    }
    
    /**********************************************************************************
   	参数：		[in] 
    		char*	pAudioBuf:				视频帧 YUV 数据
    		void* 	pUserData: 				用户参数
    **********************************************************************************/
    public interface fAudioCallBack extends Callback
    {
        public void invoke(int nPort, Pointer pAudioBuf, int nSize, int nStamp, int nType, Pointer pUserData);
    }
    
    
    public interface fFileEndCallBack extends Callback
    {
        public void invoke(int nPort, Pointer pUserData);
    }
    
    /**********************************************************************************
   	参数：		[in] 
    		char*	pBuf:				水印数据buffer指针
    		void* 	pUserData: 			用户参数
    **********************************************************************************/
    public interface fGetWaterMarkInfoCallBack extends Callback
    {
        public void invoke(Pointer pBuf, int nKey, int nLen, int nRealLen, int nType, Pointer pUserData);
    }
    
    /**********************************************************************************
   	参数：		[in] 
    		char*	buf:				水印数据缓冲
    		void* 	pUserData: 			用户参数
    **********************************************************************************/
    public interface fGetWaterMarkInfoCallBackEx extends Callback
    {
        public void invoke(int nPort, Pointer buf, int lTimeStamp, int lInfoType, int len, int reallen, int lCheckResult, Pointer pUserData);
    }
}
