50 uint32_t Transaction_ID;
64 char responderVersion[6];
110 char *platformSubtype;
155} __attribute__((packed));
165 Thumbnail = (1 << 3),
182 struct media_track_audio
189 struct media_track_video
195 unsigned long duration;
198 struct media_track_photo
228 time_t dateTimeCreated;
230 enum DataType dataType;
234 struct metadata_thumbnail
245 struct metadata_saveData
253 long dateTimeUpdated;
256 struct metadata_photo
264 long dateTimeOriginal;
267 struct metadata_music
279 struct metadata_video
287 long dateTimeUpdated;
309} __attribute__((packed));
323} __attribute__((packed));
334 uint8_t timestamp_len;
336} __attribute__((packed));
351} __attribute__((packed));
364} __attribute__((packed));
379 unsigned int data_length;
393} __attribute__((packed));
455 const char *deviceid;
457 const char *mac_addr;
472typedef struct thumbnail thumbnail_t;
484typedef int (*device_registered_callback_t)(
const char *deviceid);
486typedef void (*device_reg_complete_callback_t)(void);
487typedef int (*read_callback_t)(
unsigned char *data,
unsigned long wantlen,
unsigned long *gotlen);
488typedef int (*write_callback_t)(
const unsigned char *data,
unsigned long size,
unsigned long *written);
500typedef int (* VitaMTP_progressfunc_t)(uint64_t
const sent, uint64_t
const total,
501 void const *
const data);
507#define VITA_PID 0x04E4
508#define VITA_VID 0x054C
513#define VITAMTP_VERSION_MAJOR 2
514#define VITAMTP_VERSION_MINOR 5
515#define VITAMTP_PROTOCOL_FW_3_30 1900010
516#define VITAMTP_PROTOCOL_FW_3_10 1800010
517#define VITAMTP_PROTOCOL_FW_3_00 1700010
518#define VITAMTP_PROTOCOL_FW_2_60 1600010
519#define VITAMTP_PROTOCOL_FW_2_10 1500010
520#define VITAMTP_PROTOCOL_FW_2_00 1400010
521#define VITAMTP_PROTOCOL_FW_1_80 1300010
522#define VITAMTP_PROTOCOL_FW_1_60 1200010
523#define VITAMTP_PROTOCOL_FW_1_50 1100010
524#define VITAMTP_PROTOCOL_FW_1_00 1000010
525#define VITAMTP_PROTOCOL_MAX_VERSION VITAMTP_PROTOCOL_FW_3_30
526#define VITAMTP_WIRELESS_FW_2_00 1000000
527#define VITAMTP_WIRELESS_MAX_VERSION VITAMTP_WIRELESS_FW_2_00
533#define PTP_RC_OK 0x2001
536#ifndef PTP_RC_GeneralError
537#define PTP_RC_GeneralError 0x2002
540#ifndef PTP_ERROR_CANCEL
541#define PTP_ERROR_CANCEL 0x02FB
544#define PTP_EC_VITA_RequestSendNumOfObject 0xC104
545#define PTP_EC_VITA_RequestSendObjectMetadata 0xC105
546#define PTP_EC_VITA_RequestSendObject 0xC107
547#define PTP_EC_VITA_RequestCancelTask 0xC108
548#define PTP_EC_VITA_RequestSendHttpObjectFromURL 0xC10B
549#define PTP_EC_VITA_Unknown1 0xC10D
550#define PTP_EC_VITA_RequestSendObjectStatus 0xC10F
551#define PTP_EC_VITA_RequestSendObjectThumb 0xC110
552#define PTP_EC_VITA_RequestDeleteObject 0xC111
553#define PTP_EC_VITA_RequestGetSettingInfo 0xC112
554#define PTP_EC_VITA_RequestSendHttpObjectPropFromURL 0xC113
555#define PTP_EC_VITA_RequestSendPartOfObject 0xC115
556#define PTP_EC_VITA_RequestOperateObject 0xC117
557#define PTP_EC_VITA_RequestGetPartOfObject 0xC118
558#define PTP_EC_VITA_RequestSendStorageSize 0xC119
559#define PTP_EC_VITA_RequestCheckExistance 0xC120
560#define PTP_EC_VITA_RequestGetTreatObject 0xC122
561#define PTP_EC_VITA_RequestSendCopyConfirmationInfo 0xC123
562#define PTP_EC_VITA_RequestSendObjectMetadataItems 0xC124
563#define PTP_EC_VITA_RequestSendNPAccountInfo 0xC125
564#define PTP_EC_VITA_RequestTerminate 0xC126
569#define PTP_OC_VITA_GetVitaInfo 0x9511
570#define PTP_OC_VITA_SendNumOfObject 0x9513
571#define PTP_OC_VITA_GetBrowseInfo 0x9514
572#define PTP_OC_VITA_SendObjectMetadata 0x9515
573#define PTP_OC_VITA_SendObjectThumb 0x9516
574#define PTP_OC_VITA_ReportResult 0x9518
575#define PTP_OC_VITA_SendInitiatorInfo 0x951C
576#define PTP_OC_VITA_GetUrl 0x951F
577#define PTP_OC_VITA_SendHttpObjectFromURL 0x9520
578#define PTP_OC_VITA_SendNPAccountInfo 0x9523
579#define PTP_OC_VITA_GetSettingInfo 0x9524
580#define PTP_OC_VITA_SendObjectStatus 0x9528
581#define PTP_OC_VITA_SendHttpObjectPropFromURL 0x9529
582#define PTP_OC_VITA_SendHostStatus 0x952A
583#define PTP_OC_VITA_SendPartOfObjectInit 0x952B
584#define PTP_OC_VITA_SendPartOfObject 0x952C
585#define PTP_OC_VITA_OperateObject 0x952E
586#define PTP_OC_VITA_GetPartOfObject 0x952F
587#define PTP_OC_VITA_SendStorageSize 0x9533
588#define PTP_OC_VITA_GetTreatObject 0x9534
589#define PTP_OC_VITA_SendCopyConfirmationInfo 0x9535
590#define PTP_OC_VITA_SendObjectMetadataItems 0x9536
591#define PTP_OC_VITA_SendCopyConfirmationInfoInit 0x9537
592#define PTP_OC_VITA_KeepAlive 0x9538
593#define PTP_OC_VITA_Unknown1 0x953A
594#define PTP_OC_VITA_GetVitaCapabilityInfo 0x953B
595#define PTP_OC_VITA_SendPCCapabilityInfo 0x953C
600#define PTP_RC_VITA_Invalid_Context 0xA001
601#define PTP_RC_VITA_Not_Ready 0xA002
602#define PTP_RC_VITA_Invalid_OHFI 0xA003
603#define PTP_RC_VITA_Invalid_Data 0xA004
604#define PTP_RC_VITA_Too_Large_Data 0xA005
605#define PTP_RC_VITA_Invalid_Result_Code 0xA006
606#define PTP_RC_VITA_Cannot_Access_Server 0xA008
607#define PTP_RC_VITA_Cannot_Read_Info 0xA009
608#define PTP_RC_VITA_Not_Exist_Object 0xA00A
609#define PTP_RC_VITA_Invalid_Protocol_Version 0xA00B
610#define PTP_RC_VITA_Invalid_App_Version 0xA00C
611#define PTP_RC_VITA_Disconnect_Network 0xA00D
612#define PTP_RC_VITA_Cannot_Cancel_Operation 0xA00F
613#define PTP_RC_VITA_Timeout_Server 0xA010
614#define PTP_RC_VITA_Already_Finish 0xA011
615#define PTP_RC_VITA_Invalid_Permission 0xA012
616#define PTP_RC_VITA_Busy_Object 0xA013
617#define PTP_RC_VITA_Locked_Object 0xA014
618#define PTP_RC_VITA_Under_Maintenance 0xA017
619#define PTP_RC_VITA_Failed_Download 0xA018
620#define PTP_RC_VITA_Not_Support_Property 0xA019
621#define PTP_RC_VITA_Over_End 0xA01A
622#define PTP_RC_VITA_Cannot_Access_DB 0xA01B
623#define PTP_RC_VITA_Reconstructing_DB 0xA01C
624#define PTP_RC_VITA_Invalid_Charactor 0xA01D
625#define PTP_RC_VITA_Long_String 0xA01E
626#define PTP_RC_VITA_Failed_Operate_Object 0xA01F
627#define PTP_RC_VITA_Canceled 0xA020
628#define PTP_RC_VITA_Invalid_Account_Info 0xA021
629#define PTP_RC_VITA_Same_Object 0xA022
630#define PTP_RC_VITA_Different_Object 0xA023
631#define PTP_RC_VITA_Invalid_Metadata_Item 0xA024
632#define PTP_RC_VITA_Same_OHFI 0xA025
633#define PTP_RC_VITA_Folder_WriteProtected 0xA027
634#define PTP_RC_VITA_NP_Error 0xA029
639#define PTP_OFC_Unknown1 0xB005
640#define PTP_OFC_Unknown2 0xB006
641#define PTP_OFC_PSPGame 0xB007
642#define PTP_OFC_PSPSave 0xB00A
643#define PTP_OFC_Unknown3 0xB00B
644#define PTP_OFC_Unknown4 0xB00F
645#define PTP_OFC_Unknown5 0xB010
646#define PTP_OFC_VitaGame 0xB014
651#define VITA_STORAGE_ID 0x00010001
658#define VITA_HOST_STATUS_Connected 0x0
659#define VITA_HOST_STATUS_Unknown1 0x1
660#define VITA_HOST_STATUS_Deactivate 0x2
661#define VITA_HOST_STATUS_EndConnection 0x3
662#define VITA_HOST_STATUS_StartConnection 0x4
663#define VITA_HOST_STATUS_Unknown2 0x5
673#define VITA_OHFI_MUSIC 0x01
674#define VITA_OHFI_PHOTO 0x02
675#define VITA_OHFI_VIDEO 0x03
676#define VITA_OHFI_PACKAGE 0x05
677#define VITA_OHFI_BACKUP 0x06
678#define VITA_OHFI_VITAAPP 0x0A
679#define VITA_OHFI_PSPAPP 0x0D
680#define VITA_OHFI_PSPSAVE 0x0E
681#define VITA_OHFI_PSXAPP 0x10
682#define VITA_OHFI_PSMAPP 0x12
684#define VITA_OHFI_SUBNONE 0x00
685#define VITA_OHFI_SUBFILE 0x01
687#define VITA_DIR_TYPE_MASK_MUSIC 0x1000000
688#define VITA_DIR_TYPE_MASK_PHOTO 0x2000000
689#define VITA_DIR_TYPE_MASK_VIDEO 0x4000000
690#define VITA_DIR_TYPE_MASK_ROOT 0x0010000
691#define VITA_DIR_TYPE_MASK_REGULAR 0x0000001
692#define VITA_DIR_TYPE_MASK_ALL 0x0000200
693#define VITA_DIR_TYPE_MASK_ARTISTS 0x0000004
694#define VITA_DIR_TYPE_MASK_ALBUMS 0x0000005
695#define VITA_DIR_TYPE_MASK_GENRES 0x0000006
696#define VITA_DIR_TYPE_MASK_PLAYLISTS 0x0000007
697#define VITA_DIR_TYPE_MASK_SONGS 0x0000008
698#define VITA_DIR_TYPE_MASK_MONTH 0x000000A
700#define VITA_TRACK_TYPE_AUDIO 0x1
701#define VITA_TRACK_TYPE_VIDEO 0x2
702#define VITA_TRACK_TYPE_PHOTO 0x3
709#define VITA_OPERATE_CREATE_FOLDER 1
710#define VITA_OPERATE_UNKNOWN 2
711#define VITA_OPERATE_RENAME 3
712#define VITA_OPERATE_CREATE_FILE 4
714#define MASK_SET(v,m) (((v) & (m)) == (m))
716#define VitaMTP_DEBUG 15
717#define VitaMTP_VERBOSE 7
718#define VitaMTP_INFO 3
719#define VitaMTP_ERROR 1
720#define VitaMTP_NONE 0
721#define VitaMTP_Log(mask, format, args...) \
723 if (MASK_SET (g_VitaMTP_logmask, mask)) { \
724 if (mask == VitaMTP_DEBUG) { \
725 fprintf(stderr, "VitaMTP %s[%d]: " format, __FUNCTION__, __LINE__, ##args); \
727 fprintf(stderr, "VitaMTP: " format, ##args); \
739const char *VitaMTP_Get_Identification(
vita_device_t *device);
740enum vita_device_type VitaMTP_Get_Device_Type(
vita_device_t *device);
741uint16_t VitaMTP_SendData(
vita_device_t *device, uint32_t event_id, uint32_t code,
unsigned char *data,
743uint16_t VitaMTP_SendData_Callback(
vita_device_t *device, uint32_t event_id, uint32_t code,
unsigned int len,
744 read_callback_t read_callback);
745uint16_t VitaMTP_GetData(
vita_device_t *device, uint32_t event_id, uint32_t code,
unsigned char **p_data,
746 unsigned int *p_len);
756int VitaMTP_USB_Init(
void);
759void VitaMTP_USB_Exit(
void);
765void VitaMTP_Stop_Broadcast(
void);
768 register_device_callback_t create_register_pin, device_reg_complete_callback_t reg_complete);
770void VitaMTP_Cancel_Get_Wireless_Vita(
void);
775void VitaMTP_Set_Logging(
int logmask);
777uint16_t VitaMTP_SendNumOfObject(
vita_device_t *device, uint32_t event_id, uint32_t num);
780uint16_t VitaMTP_SendObjectThumb(
vita_device_t *device, uint32_t event_id,
metadata_t *meta,
unsigned char *thumb_data,
782uint16_t VitaMTP_ReportResult(
vita_device_t *device, uint32_t event_id, uint16_t result);
783uint16_t VitaMTP_ReportResultWithParam(
vita_device_t *device, uint32_t event_id, uint16_t result, uint32_t param);
785uint16_t VitaMTP_GetUrl(
vita_device_t *device, uint32_t event_id,
char **url);
786uint16_t VitaMTP_SendHttpObjectFromURL(
vita_device_t *device, uint32_t event_id,
void *data,
unsigned int len);
787uint16_t VitaMTP_SendNPAccountInfo(
vita_device_t *device, uint32_t event_id,
unsigned char *data,
792uint16_t VitaMTP_SendHostStatus(
vita_device_t *device, uint32_t status);
794uint16_t VitaMTP_SendPartOfObject(
vita_device_t *device, uint32_t event_id,
unsigned char *object_data,
795 uint64_t object_len);
798 unsigned char **data);
799uint16_t VitaMTP_SendStorageSize(
vita_device_t *device, uint32_t event_id, uint64_t storage_size,
800 uint64_t available_size);
802uint16_t VitaMTP_SendCopyConfirmationInfoInit(
vita_device_t *device, uint32_t event_id,
806uint16_t VitaMTP_SendObjectMetadataItems(
vita_device_t *device, uint32_t event_id, uint32_t *ohfi);
807uint16_t VitaMTP_CancelTask(
vita_device_t *device, uint32_t cancel_event_id);
808uint16_t VitaMTP_KeepAlive(
vita_device_t *device, uint32_t event_id);
809uint16_t VitaMTP_SendObject(
vita_device_t *device, uint32_t *parenthandle, uint32_t *p_handle,
metadata_t *p_meta,
810 unsigned char *data);
811uint16_t VitaMTP_SendObject_Callback(
vita_device_t *device, uint32_t *parenthandle, uint32_t *p_handle,
metadata_t *p_meta,
812 read_callback_t read_callback);
814 unsigned int *p_len);
815uint16_t VitaMTP_GetObject_Callback(
vita_device_t *device, uint32_t handle, uint64_t *size, write_callback_t write_callback);
816uint16_t VitaMTP_GetObject_Info(
vita_device_t *device, uint32_t handle,
char **name,
int *dataType);
817uint16_t VitaMTP_GetObject_Folder(
vita_device_t *device, uint32_t handle, uint32_t **p_handles,
unsigned int *p_len);
821void VitaMTP_RegisterCancelEventId(uint32_t event_id);
826char *VitaMTP_Data_Add_Size_Header(
const char *orig, uint32_t len);
827char *VitaMTP_Data_Make_Timestamp(time_t time);
829int VitaMTP_Data_Initiator_To_XML(
const initiator_info_t *p_initiator_info,
char **data,
int *len);
830const initiator_info_t *VitaMTP_Data_Initiator_New(
const char *host_name,
int protocol_version);
832int VitaMTP_Data_Settings_From_XML(
settings_info_t **p_settings_info,
const char *raw_data,
const int len);
834int VitaMTP_Data_Metadata_To_XML(
const metadata_t *p_metadata,
char **data,
int *len);
835int VitaMTP_Data_Capability_From_XML(
capability_info_t **p_info,
const char *data,
int len);
836int VitaMTP_Data_Capability_To_XML(
const capability_info_t *info,
char **p_data,
int *p_len);
843int VitaMTP_Init(
void);
844void VitaMTP_Cleanup(
void);
Definition: vitamtp.h:149
Definition: vitamtp.h:415
Definition: vitamtp.h:406
Definition: vitamtp.h:403
Definition: vitamtp.h:390
Definition: vitamtp.h:376
Definition: vitamtp.h:332
Definition: vitamtp.h:108
Definition: vitamtp.h:305
Definition: vitamtp.h:345
Definition: vitamtp.h:319
Definition: vitamtp.h:128
Definition: vitamtp.h:126
Definition: vitamtp.h:360
Definition: vitamtp.h:440
Definition: vitamtp.h:454