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);
|
||||
|
||||
metadata_t *metadata = NULL;
|
||||
if(!m_db->getObjectMetadatas(ohfi, &metadata)) {
|
||||
if(!m_db->getObjectList(ohfi, &metadata)) {
|
||||
qWarning("Failed to find OHFI %d", ohfi);
|
||||
VitaMTP_ReportResult(device, eventId, PTP_RC_VITA_Invalid_OHFI);
|
||||
return;
|
||||
|
||||
@@ -71,6 +71,7 @@ public:
|
||||
virtual bool deleteEntry(int ohfi, int root_ohfi = 0) = 0;
|
||||
virtual QString getAbsolutePath(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 int getObjectMetadatas(int parent_ohfi, metadata_t **metadata, int index = 0, int max_number = 0) = 0;
|
||||
virtual qint64 getObjectSize(int ohfi) = 0;
|
||||
|
||||
@@ -390,6 +390,24 @@ bool QListDB::deleteEntry(int ohfi, int root_ohfi)
|
||||
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)
|
||||
{
|
||||
QMutexLocker locker(&mutex);
|
||||
|
||||
@@ -49,6 +49,7 @@ public:
|
||||
int childObjectCount(int parent_ohfi);
|
||||
bool deleteEntry(int ohfi, int root_ohfi = 0);
|
||||
QString getAbsolutePath(int ohfi);
|
||||
bool getObjectList(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);
|
||||
qint64 getObjectSize(int ohfi);
|
||||
|
||||
@@ -1309,3 +1309,10 @@ bool SQLiteDB::insertVirtualEntries()
|
||||
|
||||
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);
|
||||
bool deleteEntry(int ohfi, int root_ohfi = 0);
|
||||
QString getAbsolutePath(int ohfi);
|
||||
bool getObjectList(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);
|
||||
qint64 getObjectSize(int ohfi);
|
||||
|
||||
Reference in New Issue
Block a user