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));
426 enum vita_device_type
455 const char *deviceid;
457 const char *mac_addr;
472 typedef struct thumbnail thumbnail_t;
484 typedef int (*device_registered_callback_t)(
const char *deviceid);
486 typedef void (*device_reg_complete_callback_t)(void);
487 typedef int (*read_callback_t)(
unsigned char *data,
unsigned long wantlen,
unsigned long *gotlen);
488 typedef int (*write_callback_t)(
const unsigned char *data,
unsigned long size,
unsigned long *written);
500 typedef 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); \
739 const char *VitaMTP_Get_Identification(
vita_device_t *device);
740 enum vita_device_type VitaMTP_Get_Device_Type(
vita_device_t *device);
741 uint16_t VitaMTP_SendData(
vita_device_t *device, uint32_t event_id, uint32_t code,
unsigned char *data,
743 uint16_t VitaMTP_SendData_Callback(
vita_device_t *device, uint32_t event_id, uint32_t code,
unsigned int len,
744 read_callback_t read_callback);
745 uint16_t VitaMTP_GetData(
vita_device_t *device, uint32_t event_id, uint32_t code,
unsigned char **p_data,
746 unsigned int *p_len);
756 int VitaMTP_USB_Init(
void);
759 void VitaMTP_USB_Exit(
void);
765 void VitaMTP_Stop_Broadcast(
void);
768 register_device_callback_t create_register_pin, device_reg_complete_callback_t reg_complete);
770 void VitaMTP_Cancel_Get_Wireless_Vita(
void);
775 void VitaMTP_Set_Logging(
int logmask);
777 uint16_t VitaMTP_SendNumOfObject(
vita_device_t *device, uint32_t event_id, uint32_t num);
780 uint16_t VitaMTP_SendObjectThumb(
vita_device_t *device, uint32_t event_id,
metadata_t *meta,
unsigned char *thumb_data,
782 uint16_t VitaMTP_ReportResult(
vita_device_t *device, uint32_t event_id, uint16_t result);
783 uint16_t VitaMTP_ReportResultWithParam(
vita_device_t *device, uint32_t event_id, uint16_t result, uint32_t param);
785 uint16_t VitaMTP_GetUrl(
vita_device_t *device, uint32_t event_id,
char **url);
786 uint16_t VitaMTP_SendHttpObjectFromURL(
vita_device_t *device, uint32_t event_id,
void *data,
unsigned int len);
787 uint16_t VitaMTP_SendNPAccountInfo(
vita_device_t *device, uint32_t event_id,
unsigned char *data,
792 uint16_t VitaMTP_SendHostStatus(
vita_device_t *device, uint32_t status);
794 uint16_t VitaMTP_SendPartOfObject(
vita_device_t *device, uint32_t event_id,
unsigned char *object_data,
795 uint64_t object_len);
798 unsigned char **data);
799 uint16_t VitaMTP_SendStorageSize(
vita_device_t *device, uint32_t event_id, uint64_t storage_size,
800 uint64_t available_size);
802 uint16_t VitaMTP_SendCopyConfirmationInfoInit(
vita_device_t *device, uint32_t event_id,
806 uint16_t VitaMTP_SendObjectMetadataItems(
vita_device_t *device, uint32_t event_id, uint32_t *ohfi);
807 uint16_t VitaMTP_CancelTask(
vita_device_t *device, uint32_t cancel_event_id);
808 uint16_t VitaMTP_KeepAlive(
vita_device_t *device, uint32_t event_id);
809 uint16_t VitaMTP_SendObject(
vita_device_t *device, uint32_t *parenthandle, uint32_t *p_handle,
metadata_t *p_meta,
810 unsigned char *data);
811 uint16_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);
815 uint16_t VitaMTP_GetObject_Callback(
vita_device_t *device, uint32_t handle, uint64_t *size, write_callback_t write_callback);
816 uint16_t VitaMTP_GetObject_Info(
vita_device_t *device, uint32_t handle,
char **name,
int *dataType);
817 uint16_t VitaMTP_GetObject_Folder(
vita_device_t *device, uint32_t handle, uint32_t **p_handles,
unsigned int *p_len);
821 void VitaMTP_RegisterCancelEventId(uint32_t event_id);
826 char *VitaMTP_Data_Add_Size_Header(
const char *orig, uint32_t len);
827 char *VitaMTP_Data_Make_Timestamp(time_t time);
829 int VitaMTP_Data_Initiator_To_XML(
const initiator_info_t *p_initiator_info,
char **data,
int *len);
830 const initiator_info_t *VitaMTP_Data_Initiator_New(
const char *host_name,
int protocol_version);
832 int VitaMTP_Data_Settings_From_XML(
settings_info_t **p_settings_info,
const char *raw_data,
const int len);
834 int VitaMTP_Data_Metadata_To_XML(
const metadata_t *p_metadata,
char **data,
int *len);
835 int VitaMTP_Data_Capability_From_XML(
capability_info_t **p_info,
const char *data,
int len);
836 int VitaMTP_Data_Capability_To_XML(
const capability_info_t *info,
char **p_data,
int *p_len);
843 int VitaMTP_Init(
void);
844 void VitaMTP_Cleanup(
void);
Definition: vitamtp.h:304
Definition: vitamtp.h:402
Definition: vitamtp.h:125
Definition: vitamtp.h:389
Definition: vitamtp.h:414
Definition: vitamtp.h:107
Definition: vitamtp.h:148
Definition: vitamtp.h:359
Definition: vitamtp.h:439
Definition: vitamtp.h:318
Definition: vitamtp.h:453
Definition: vitamtp.h:405
Definition: vitamtp.h:344
Definition: vitamtp.h:127
Definition: vitamtp.h:375
Definition: vitamtp.h:331