Fix bug when transferring PSP savedatas.
This commit is contained in:
@@ -402,7 +402,7 @@ void CmaEvent::vitaEventSendObject(vita_event_t *event, int eventId)
|
|||||||
qDebug("Searching object with OHFI %d", ohfi);
|
qDebug("Searching object with OHFI %d", ohfi);
|
||||||
|
|
||||||
metadata_t *metadata = NULL;
|
metadata_t *metadata = NULL;
|
||||||
if(!m_db->getObjectMetadatas(ohfi, &metadata)) {
|
if(!m_db->getObjectList(ohfi, &metadata)) {
|
||||||
qWarning("Failed to find OHFI %d", ohfi);
|
qWarning("Failed to find OHFI %d", ohfi);
|
||||||
VitaMTP_ReportResult(device, eventId, PTP_RC_VITA_Invalid_OHFI);
|
VitaMTP_ReportResult(device, eventId, PTP_RC_VITA_Invalid_OHFI);
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -71,6 +71,7 @@ public:
|
|||||||
virtual bool deleteEntry(int ohfi, int root_ohfi = 0) = 0;
|
virtual bool deleteEntry(int ohfi, int root_ohfi = 0) = 0;
|
||||||
virtual QString getAbsolutePath(int ohfi) = 0;
|
virtual QString getAbsolutePath(int ohfi) = 0;
|
||||||
virtual QString getRelativePath(int ohfi) = 0;
|
virtual QString getRelativePath(int ohfi) = 0;
|
||||||
|
virtual bool getObjectList(int ohfi, metadata_t **metadata) = 0;
|
||||||
virtual bool getObjectMetadata(int ohfi, metadata_t &metadata) = 0;
|
virtual bool getObjectMetadata(int ohfi, metadata_t &metadata) = 0;
|
||||||
virtual int getObjectMetadatas(int parent_ohfi, metadata_t **metadata, int index = 0, int max_number = 0) = 0;
|
virtual int getObjectMetadatas(int parent_ohfi, metadata_t **metadata, int index = 0, int max_number = 0) = 0;
|
||||||
virtual qint64 getObjectSize(int ohfi) = 0;
|
virtual qint64 getObjectSize(int ohfi) = 0;
|
||||||
|
|||||||
@@ -390,6 +390,24 @@ bool QListDB::deleteEntry(int ohfi, int root_ohfi)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool QListDB::getObjectList(int ohfi, metadata_t **metadata)
|
||||||
|
{
|
||||||
|
find_data iters;
|
||||||
|
if(find(ohfi, iters)) {
|
||||||
|
CMAObject *object;
|
||||||
|
do {
|
||||||
|
object = *iters.it;
|
||||||
|
*metadata = &object->metadata;
|
||||||
|
metadata = &(*metadata)->next_metadata;
|
||||||
|
*metadata = NULL;
|
||||||
|
object = *++iters.it;
|
||||||
|
} while(iters.it != iters.end && object->metadata.ohfiParent >= OHFI_OFFSET);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int QListDB::getObjectMetadatas(int parent_ohfi, metadata_t **metadata, int index, int max_number)
|
int QListDB::getObjectMetadatas(int parent_ohfi, metadata_t **metadata, int index, int max_number)
|
||||||
{
|
{
|
||||||
QMutexLocker locker(&mutex);
|
QMutexLocker locker(&mutex);
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ public:
|
|||||||
int childObjectCount(int parent_ohfi);
|
int childObjectCount(int parent_ohfi);
|
||||||
bool deleteEntry(int ohfi, int root_ohfi = 0);
|
bool deleteEntry(int ohfi, int root_ohfi = 0);
|
||||||
QString getAbsolutePath(int ohfi);
|
QString getAbsolutePath(int ohfi);
|
||||||
|
bool getObjectList(int ohfi, metadata_t **metadata);
|
||||||
bool getObjectMetadata(int ohfi, metadata_t &metadata);
|
bool getObjectMetadata(int ohfi, metadata_t &metadata);
|
||||||
int getObjectMetadatas(int parent_ohfi, metadata_t **metadata, int index = 0, int max_number = 0);
|
int getObjectMetadatas(int parent_ohfi, metadata_t **metadata, int index = 0, int max_number = 0);
|
||||||
qint64 getObjectSize(int ohfi);
|
qint64 getObjectSize(int ohfi);
|
||||||
|
|||||||
@@ -1309,3 +1309,10 @@ bool SQLiteDB::insertVirtualEntries()
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool SQLiteDB::getObjectList(int ohfi, metadata_t **metadata)
|
||||||
|
{
|
||||||
|
Q_UNUSED(ohfi);
|
||||||
|
Q_UNUSED(metadata);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ public:
|
|||||||
int childObjectCount(int parent_ohfi);
|
int childObjectCount(int parent_ohfi);
|
||||||
bool deleteEntry(int ohfi, int root_ohfi = 0);
|
bool deleteEntry(int ohfi, int root_ohfi = 0);
|
||||||
QString getAbsolutePath(int ohfi);
|
QString getAbsolutePath(int ohfi);
|
||||||
|
bool getObjectList(int ohfi, metadata_t **metadata);
|
||||||
bool getObjectMetadata(int ohfi, metadata_t &metadata);
|
bool getObjectMetadata(int ohfi, metadata_t &metadata);
|
||||||
int getObjectMetadatas(int parent_ohfi, metadata_t **metadata, int index = 0, int max_number = 0);
|
int getObjectMetadatas(int parent_ohfi, metadata_t **metadata, int index = 0, int max_number = 0);
|
||||||
qint64 getObjectSize(int ohfi);
|
qint64 getObjectSize(int ohfi);
|
||||||
|
|||||||
Reference in New Issue
Block a user