⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wmdrm_receiver.h

📁 本程序为ST公司开发的源代码
💻 H
字号:
/************************************************** * * WMDRM_Receiver.h * * CVS ID:   $Id: WMDRM_Receiver.h,v 1.1 2007/09/21 05:35:17 hara Exp $ * Author:   Fumio HARA [FH] - STM * Date:     $Date: 2007/09/21 05:35:17 $ * Revision: $Revision: 1.1 $ * * Description: * *   Main entry point for WMDRM Network Receiver task. * *************************************************** * * COPYRIGHT (C) ST Microelectronics  2007 *            All Rights Reserved * **************************************************** * * STM CVS Log: * * $Log: WMDRM_Receiver.h,v $ * Revision 1.1  2007/09/21 05:35:17  hara * Initial implementation for WMDRM feature into A+. * * ***************************************************/#include "gendef.h"#include "xfile.h"#include "filesys.h"#include "drmtypes.h"#include "DrmAes.h"/* * Define a context for Proximity Detection */typedef struct {    /*      * State for WMDRM Receiver     */    DRM_BYTE State;    DRM_BYTE USBDeviceConfig;    /*     * Data from the Registration Response message     *     * This data is valid in the STATE_GET_PROXIMITY_CHALLENGE and STATE_SEND_PROXIMITY_RESPONSE     */    DRM_AES_KEY *ProximityContentEncryptionKey;           DRM_DWORD ObjectHandle;    DRM_DWORD MediaSessionId;                         DRM_AES_KEY ContentEncryption_AES_Key[DRM_AES_KEYSIZE_128];               DRM_DWORD MaxDataBlockSize;    DRM_BYTE *NextDataBuffer;    DRM_DWORD NextDataOffset;     DRM_DWORD OperationParameter[5];        DRM_WORD  ResponseCode;            #if 0 // No used for the moment.       DRM_DWORD TimeOffset;                                   #endif    } WMDRMNET_PROXIMITY_CONTEXT;                    /* * Define GetDirItem info on WMDRM */typedef struct {    DRM_WORD  loopState;    DRM_DWORD NumObjectHandle;           DRM_DWORD curObjectHandle;    DRM_WORD  curObjectFormat;    DRM_BYTE *pbMessageObjectHandle;    DRM_WORD  prev_scan_index;} DRM_GETDIRITEM;                    /* Internal State */#define STATE_SEND_REGISTRATION_REQUEST            0x0 /* RegistrationRequest */#define STATE_GET_REGISTRATION_RESPONSE            0x1 /* RegistrationResponse */#define STATE_GET_PROXIMITY_CHALLENGE              0x2 /* ProximityChallenge */#define STATE_SEND_PROXIMITY_RESPONSE              0x3 /* ProximityResponse */#define STATE_SEND_LICENSE_REQUEST                 0x4 /* LicenseRequest */#define STATE_GET_LICENSE_RESPONSE                 0x5 /* LicenseResponse */#define STATE_OPEN_MEDIA_SESSION                   0x6 /* OpenMediaSession */#define STATE_CLOSE_MEDIA_SESSION                  0x7 /* CloseMediaSession */#define STATE_GET_NEXT_DATA_BLOCK                  0x8 /* GetNextDataBlock */#define STATE_SET_CURRENT_TIME_POSITION            0x9 /* SetCurrentTimePosition */   #define STATE_GET_PARTIAL_OBJECT_DATA              0xA /* GetPartialObject */        #define STATE_GET_OBJECT_REFERENCES                0xB /* GetObjectReferences *//* All transition goes to STATE_PROXIMITY_DETECTED finally. */#define STATE_PROXIMITY_DETECTED                   0xF /* COMPLETE : No more action */#define WMDRM_GET_REGISTRATION                     STATE_SEND_REGISTRATION_REQUEST       #define WMDRM_OPEN_MEDIA_SESSION                   STATE_OPEN_MEDIA_SESSION          #define WMDRM_CLOSE_MEDIA_SESSION                  STATE_CLOSE_MEDIA_SESSION#define WMDRM_GET_LICENSE                          STATE_SEND_LICENSE_REQUEST#define WMDRM_GET_NEXT_DATA_BLOCK                  STATE_GET_NEXT_DATA_BLOCK          #define WMDRM_SET_CURRENT_TIME_POSITION            STATE_SET_CURRENT_TIME_POSITION      #define WMDRM_GET_PARTIAL_OBJECT_DATA              STATE_GET_PARTIAL_OBJECT_DATA          #define WMDRM_GET_OBJECT_REFERENCES                STATE_GET_OBJECT_REFERENCES  /* USBDeviceConfig */                                        #define USBDeviceConfig_WMDRM_ND_SUPPORT           0x80       #define USBDeviceSessionConfig_MediaSessionOpen    0x20        #define USBDeviceSessionConfig_LicenseAvailable    0x10#define USBDeviceSessionConfig_CtrlCapability      0x01#define USBDeviceSessionConfig_DRMStatus           0x02#define USBDeviceSessionConfig_LicenseStatus       0x04#define USBDeviceSessionConfig_DRMDeliveryOptions  0x08#define MASK_USBDeviceSessionConfig                0xC0         #define MASK_USBDeviceSessionConfig_WMDRM_NDR      0x0E#define IS_USBDeviceSuppport_WMDRM_ND              (ProximityContext.USBDeviceConfig & USBDeviceConfig_WMDRM_ND_SUPPORT)#define IS_USBDeviceSessionObject_WMDRM_NDR        ((ProximityContext.USBDeviceConfig & MASK_USBDeviceSessionConfig_WMDRM_NDR) \                                                                                     == MASK_USBDeviceSessionConfig_WMDRM_NDR)    #define IS_USBDeviceMediaSession_Open              (ProximityContext.USBDeviceConfig & USBDeviceSessionConfig_MediaSessionOpen)                                                                                      #define IS_USBDeviceSupport_CtrlCapability         (ProximityContext.USBDeviceConfig & USBDeviceSessionConfig_CtrlCapability) #define IS_USBDeviceLicense_Available              (ProximityContext.USBDeviceConfig & USBDeviceSessionConfig_LicenseAvailable) /* Object Format */#define OBJECT_FORMAT_CODE_ASSOCIATION             0x3001#define OBJECT_FORMAT_CODE_WMA                     0xB901#define OBJECT_FORMAT_CODE_MP3                     0x3009#define OBJECT_FORMAT_CODE_AAC                     0xB903           #define OBJECT_FORMAT_CODE_PLA                     0xBA05 /* Abstract PlayList on MTP specification. */           /* WMDRM_GetDirItem internal State */#define STATE_GET_OBJECTHANLDES_ROOT_DIR           0x00#define STATE_GET_OBJECTHANDLES_CHILD_DIR          0x01#define STATE_GET_OBJECTINFO                       0x02                            extern WMDRMNET_PROXIMITY_CONTEXT ProximityContext;DRM_RESULTWmdrmNet_TASK_transition(    DRM_BYTE handleState);DRM_RESULTWmdrmNet_DATA_transition(     DRM_BYTE handleState,    t_child_cmd_event *cmd_event,    DRM_BOOL execute_cmd);voidWmdrmNetReceiverInit(void);GRESULTWMDRM_GetDirItem(SCAN_STRUCT *scans, DIR_ITEM *item, uint8 *buf);GRESULTWMDRM_Detect(DUID cdid, int partition, FS_DESCRIPTOR *fsd);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -