MtpDatabase.h revision 828d19dd96b05fa99abdc517701e5366543c324f
156118b5b385adad0ff301f67be2cf601432d94baMike Lockwood/* 256118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * Copyright (C) 2010 The Android Open Source Project 356118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * 456118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * Licensed under the Apache License, Version 2.0 (the "License"); 556118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * you may not use this file except in compliance with the License. 656118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * You may obtain a copy of the License at 756118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * 856118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * http://www.apache.org/licenses/LICENSE-2.0 956118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * 1056118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * Unless required by applicable law or agreed to in writing, software 1156118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * distributed under the License is distributed on an "AS IS" BASIS, 1256118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1356118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * See the License for the specific language governing permissions and 1456118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * limitations under the License. 1556118b5b385adad0ff301f67be2cf601432d94baMike Lockwood */ 1656118b5b385adad0ff301f67be2cf601432d94baMike Lockwood 1756118b5b385adad0ff301f67be2cf601432d94baMike Lockwood#ifndef _MTP_DATABASE_H 1856118b5b385adad0ff301f67be2cf601432d94baMike Lockwood#define _MTP_DATABASE_H 1956118b5b385adad0ff301f67be2cf601432d94baMike Lockwood 205bae7f615b6375820f61b28f6792cb2d01aab54bMike Lockwood#include "MtpTypes.h" 2156118b5b385adad0ff301f67be2cf601432d94baMike Lockwood 228d3257a7dc10e1b3fda03e00f40d1b65d699ff23Mike Lockwoodnamespace android { 238d3257a7dc10e1b3fda03e00f40d1b65d699ff23Mike Lockwood 2456118b5b385adad0ff301f67be2cf601432d94baMike Lockwoodclass MtpDataPacket; 25828d19dd96b05fa99abdc517701e5366543c324fMike Lockwoodclass MtpProperty; 2656118b5b385adad0ff301f67be2cf601432d94baMike Lockwood 278dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwoodclass MtpDatabase { 2856118b5b385adad0ff301f67be2cf601432d94baMike Lockwoodpublic: 292d6c9e9c4e5f261b252962bf8ce04c50000a8e2cMike Lockwood virtual ~MtpDatabase() {} 308dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood 31d815f79766984fce499e147ecbacc01914683f74Mike Lockwood // called from SendObjectInfo to reserve a database entry for the incoming file 32d815f79766984fce499e147ecbacc01914683f74Mike Lockwood virtual MtpObjectHandle beginSendObject(const char* path, 338dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood MtpObjectFormat format, 348dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood MtpObjectHandle parent, 358dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood MtpStorageID storage, 368dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood uint64_t size, 378dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood time_t modified) = 0; 388dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood 39d815f79766984fce499e147ecbacc01914683f74Mike Lockwood // called to report success or failure of the SendObject file transfer 40d815f79766984fce499e147ecbacc01914683f74Mike Lockwood // success should signal a notification of the new object's creation, 41d815f79766984fce499e147ecbacc01914683f74Mike Lockwood // failure should remove the database entry created in beginSendObject 42d815f79766984fce499e147ecbacc01914683f74Mike Lockwood virtual void endSendObject(const char* path, 43d815f79766984fce499e147ecbacc01914683f74Mike Lockwood MtpObjectHandle handle, 44d815f79766984fce499e147ecbacc01914683f74Mike Lockwood MtpObjectFormat format, 45d815f79766984fce499e147ecbacc01914683f74Mike Lockwood bool succeeded) = 0; 46d815f79766984fce499e147ecbacc01914683f74Mike Lockwood 478dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood virtual MtpObjectHandleList* getObjectList(MtpStorageID storageID, 48d815f79766984fce499e147ecbacc01914683f74Mike Lockwood MtpObjectFormat format, 49d815f79766984fce499e147ecbacc01914683f74Mike Lockwood MtpObjectHandle parent) = 0; 5056118b5b385adad0ff301f67be2cf601432d94baMike Lockwood 517a047c89862febf63ce1bb5873179c7a2ff8d9d3Mike Lockwood virtual int getNumObjects(MtpStorageID storageID, 527a047c89862febf63ce1bb5873179c7a2ff8d9d3Mike Lockwood MtpObjectFormat format, 537a047c89862febf63ce1bb5873179c7a2ff8d9d3Mike Lockwood MtpObjectHandle parent) = 0; 547a047c89862febf63ce1bb5873179c7a2ff8d9d3Mike Lockwood 554b322ce4fb86b5a7a6e50633a3a9f498ca8d4706Mike Lockwood // callee should delete[] the results from these 564b322ce4fb86b5a7a6e50633a3a9f498ca8d4706Mike Lockwood // results can be NULL 574b322ce4fb86b5a7a6e50633a3a9f498ca8d4706Mike Lockwood virtual MtpObjectFormatList* getSupportedPlaybackFormats() = 0; 584b322ce4fb86b5a7a6e50633a3a9f498ca8d4706Mike Lockwood virtual MtpObjectFormatList* getSupportedCaptureFormats() = 0; 594b322ce4fb86b5a7a6e50633a3a9f498ca8d4706Mike Lockwood virtual MtpObjectPropertyList* getSupportedObjectProperties(MtpObjectFormat format) = 0; 604b322ce4fb86b5a7a6e50633a3a9f498ca8d4706Mike Lockwood virtual MtpDevicePropertyList* getSupportedDeviceProperties() = 0; 614b322ce4fb86b5a7a6e50633a3a9f498ca8d4706Mike Lockwood 62828d19dd96b05fa99abdc517701e5366543c324fMike Lockwood virtual MtpResponseCode getObjectPropertyValue(MtpObjectHandle handle, 638dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood MtpObjectProperty property, 648dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood MtpDataPacket& packet) = 0; 6556118b5b385adad0ff301f67be2cf601432d94baMike Lockwood 66828d19dd96b05fa99abdc517701e5366543c324fMike Lockwood virtual MtpResponseCode setObjectPropertyValue(MtpObjectHandle handle, 67828d19dd96b05fa99abdc517701e5366543c324fMike Lockwood MtpObjectProperty property, 68828d19dd96b05fa99abdc517701e5366543c324fMike Lockwood MtpDataPacket& packet) = 0; 69828d19dd96b05fa99abdc517701e5366543c324fMike Lockwood 70828d19dd96b05fa99abdc517701e5366543c324fMike Lockwood virtual MtpResponseCode getDevicePropertyValue(MtpDeviceProperty property, 71828d19dd96b05fa99abdc517701e5366543c324fMike Lockwood MtpDataPacket& packet) = 0; 72828d19dd96b05fa99abdc517701e5366543c324fMike Lockwood 73828d19dd96b05fa99abdc517701e5366543c324fMike Lockwood virtual MtpResponseCode setDevicePropertyValue(MtpDeviceProperty property, 74828d19dd96b05fa99abdc517701e5366543c324fMike Lockwood MtpDataPacket& packet) = 0; 75828d19dd96b05fa99abdc517701e5366543c324fMike Lockwood 76828d19dd96b05fa99abdc517701e5366543c324fMike Lockwood virtual MtpResponseCode resetDeviceProperty(MtpDeviceProperty property) = 0; 77828d19dd96b05fa99abdc517701e5366543c324fMike Lockwood 788dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood virtual MtpResponseCode getObjectInfo(MtpObjectHandle handle, 798dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood MtpDataPacket& packet) = 0; 8056118b5b385adad0ff301f67be2cf601432d94baMike Lockwood 8159c777a24a2c639dfd84b7bf17e430e6d3424866Mike Lockwood virtual MtpResponseCode getObjectFilePath(MtpObjectHandle handle, 828dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood MtpString& filePath, 838dd2a39bae441143ebbb65237db63f65fdc1c645Mike Lockwood int64_t& fileLength) = 0; 849a2046fb5ceeee4d5334274cbff15f1058bb3244Mike Lockwood 8559c777a24a2c639dfd84b7bf17e430e6d3424866Mike Lockwood virtual MtpResponseCode deleteFile(MtpObjectHandle handle) = 0; 869a2046fb5ceeee4d5334274cbff15f1058bb3244Mike Lockwood 879a2046fb5ceeee4d5334274cbff15f1058bb3244Mike Lockwood virtual MtpObjectHandleList* getObjectReferences(MtpObjectHandle handle) = 0; 889a2046fb5ceeee4d5334274cbff15f1058bb3244Mike Lockwood 899a2046fb5ceeee4d5334274cbff15f1058bb3244Mike Lockwood virtual MtpResponseCode setObjectReferences(MtpObjectHandle handle, 909a2046fb5ceeee4d5334274cbff15f1058bb3244Mike Lockwood MtpObjectHandleList* references) = 0; 919a2046fb5ceeee4d5334274cbff15f1058bb3244Mike Lockwood 92828d19dd96b05fa99abdc517701e5366543c324fMike Lockwood virtual MtpProperty* getObjectPropertyDesc(MtpObjectProperty property, 93828d19dd96b05fa99abdc517701e5366543c324fMike Lockwood MtpObjectFormat format) = 0; 94828d19dd96b05fa99abdc517701e5366543c324fMike Lockwood 95828d19dd96b05fa99abdc517701e5366543c324fMike Lockwood virtual MtpProperty* getDevicePropertyDesc(MtpDeviceProperty property) = 0; 9656118b5b385adad0ff301f67be2cf601432d94baMike Lockwood}; 9756118b5b385adad0ff301f67be2cf601432d94baMike Lockwood 988d3257a7dc10e1b3fda03e00f40d1b65d699ff23Mike Lockwood}; // namespace android 998d3257a7dc10e1b3fda03e00f40d1b65d699ff23Mike Lockwood 10056118b5b385adad0ff301f67be2cf601432d94baMike Lockwood#endif // _MTP_DATABASE_H 101