#ifndef _MPUTIL_H_
#define _MPUTIL_H_
/*======================================================
FILE:  MPUtil.c

SERVICES:
   OEM functions for supporting BREW MPUTIL
   Interface

GENERAL DESCRIPTION:
   This file provides the prorotypes of the functions
   that OEMs must provide in order to support the BREW
   MPUTIL interfaces

=====================================================*/


#include "AEE.h"
#include "AEEMpUtil.h"

extern uint32	CMPUTIL_AddRef			( IMPUtil * po );
extern uint32	CMPUTIL_Release			( IMPUtil * po );
extern int	CMPUTIL_RegisterNotify		( IMPUtil * po, PFNMPUTILNOTIFY pfn, void * pUser);
extern int	CMPUTIL_SelectData		( IMPUtil * po,int nSelectID, char* pcData, int* pnDataCount);
extern int	CMPUTIL_GetListCount		( IMPUtil * po,int  nListID, int * pnListCount );
extern int	CMPUTIL_GetListData		( IMPUtil * po,int  nListID, int32* pP1, int32* nP2 );
extern int	CMPUTIL_GetData			( IMPUtil * po,int nDataID, int32* pP1, int32* nP2 );
extern int	CMPUTIL_SeekData		( IMPUtil * po,AEEMPUtilSeekInfo * pSeekInfo );
extern int	CMPUTIL_UpdateData		( IMPUtil * po,int nParamID,int nSetData);
extern int	CMPUTIL_GetDecodeData		( IMPUtil * po,AEEMPUtilDecodeDataInfo * pDecodeDataInfo );
extern int	CMPUTIL_DeleteData		( IMPUtil * po );
extern int	CMPUTIL_SearchData		( IMPUtil * po,AEEMPUtilMMID *pMmid, boolean *pbExist );
extern int	CMPUTIL_SearchPlayListData	( IMPUtil * po,AEEMPUtilPlayList * pPlayList,int nListCount );
extern int	CMPUTIL_GetPlayListCount	( IMPUtil * po,int * pnPlayListCount );
extern int	CMPUTIL_GetPlayListInfo		( IMPUtil * po,int nPlayListNum, AEEMPUtilPlayListInfo * pPlayListInfo );
extern int	CMPUTIL_SetPlayListData		( IMPUtil * po,int nPlayListNum,char * pData, uint32 dwDataSize, char * pcFileName );
extern int	CMPUTIL_GetPlayListData		( IMPUtil * po,int nPlayListNum,char * pData );
extern int	CMPUTIL_SetPlayOrder		( IMPUtil * po,AEEMPUtilPlayOrder * pOrder );
extern int	CMPUTIL_GetLabelCount		( IMPUtil * po,int  nListID, int nLanguageID, int * pnListCount );
extern int	CMPUTIL_GetLabelData		( IMPUtil * po, int nNum, char* pcData);
extern int	CMPUTIL_SearchLabelData		( IMPUtil * po,char * pcData,int32 * pnSeekData );
extern int	CMPUTIL_GetSpace		( IMPUtil * po,int32 nPlayListNum, uint32 * pdwSize,
                                                  uint32 * pdwFileCount );
extern int	CMPUTIL_DeletePlayListData	( IMPUtil * po, int nPlayListNum );
extern int	CMPUTIL_GetMemoryType		( IMPUtil * po, int * pMemoryType );
//PTX808_IMP_MSA add 2006.1.19 toida MSAグループ情報 if1
extern int	CMPUTIL_GetGroupInfo		( IMPUtil * po, int nGroupNum, AEEMPUTILGroupInfo * pGroupInfo );
//PTX808_IMP_MSA add 2006.1.19 toida MSAグループ情報 endif

// IMPUTILクラス
typedef struct _CMPUTIL {
    const VTBL(IMPUtil)	* pvt;
    uint32                m_nRefs;	// 参照カウンタ
    IShell		* m_pIShell;	// IShell Instance

    OEMCONTEXT		  m_ctx;
} CMPUTIL;

#endif // _MPUTIL_H_
