xref: /aosp_15_r20/frameworks/av/media/mtp/IMtpDatabase.h (revision ec779b8e0859a360c3d303172224686826e6e0e1)
1*ec779b8eSAndroid Build Coastguard Worker /*
2*ec779b8eSAndroid Build Coastguard Worker  * Copyright (C) 2010 The Android Open Source Project
3*ec779b8eSAndroid Build Coastguard Worker  *
4*ec779b8eSAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
5*ec779b8eSAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
6*ec779b8eSAndroid Build Coastguard Worker  * You may obtain a copy of the License at
7*ec779b8eSAndroid Build Coastguard Worker  *
8*ec779b8eSAndroid Build Coastguard Worker  *      http://www.apache.org/licenses/LICENSE-2.0
9*ec779b8eSAndroid Build Coastguard Worker  *
10*ec779b8eSAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
11*ec779b8eSAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
12*ec779b8eSAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*ec779b8eSAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
14*ec779b8eSAndroid Build Coastguard Worker  * limitations under the License.
15*ec779b8eSAndroid Build Coastguard Worker  */
16*ec779b8eSAndroid Build Coastguard Worker 
17*ec779b8eSAndroid Build Coastguard Worker #ifndef _I_MTP_DATABASE_H
18*ec779b8eSAndroid Build Coastguard Worker #define _I_MTP_DATABASE_H
19*ec779b8eSAndroid Build Coastguard Worker 
20*ec779b8eSAndroid Build Coastguard Worker #include "MtpTypes.h"
21*ec779b8eSAndroid Build Coastguard Worker 
22*ec779b8eSAndroid Build Coastguard Worker namespace android {
23*ec779b8eSAndroid Build Coastguard Worker 
24*ec779b8eSAndroid Build Coastguard Worker class MtpDataPacket;
25*ec779b8eSAndroid Build Coastguard Worker class MtpProperty;
26*ec779b8eSAndroid Build Coastguard Worker class MtpObjectInfo;
27*ec779b8eSAndroid Build Coastguard Worker class MtpStringBuffer;
28*ec779b8eSAndroid Build Coastguard Worker 
29*ec779b8eSAndroid Build Coastguard Worker class IMtpDatabase {
30*ec779b8eSAndroid Build Coastguard Worker public:
~IMtpDatabase()31*ec779b8eSAndroid Build Coastguard Worker     virtual ~IMtpDatabase() {}
32*ec779b8eSAndroid Build Coastguard Worker 
33*ec779b8eSAndroid Build Coastguard Worker     // Called from SendObjectInfo to reserve a database entry for the incoming file.
34*ec779b8eSAndroid Build Coastguard Worker     virtual MtpObjectHandle         beginSendObject(const char* path,
35*ec779b8eSAndroid Build Coastguard Worker                                             MtpObjectFormat format,
36*ec779b8eSAndroid Build Coastguard Worker                                             MtpObjectHandle parent,
37*ec779b8eSAndroid Build Coastguard Worker                                             MtpStorageID storage) = 0;
38*ec779b8eSAndroid Build Coastguard Worker 
39*ec779b8eSAndroid Build Coastguard Worker     // Called to report success or failure of the SendObject file transfer.
40*ec779b8eSAndroid Build Coastguard Worker     virtual void                    endSendObject(MtpObjectHandle handle,
41*ec779b8eSAndroid Build Coastguard Worker                                             bool succeeded) = 0;
42*ec779b8eSAndroid Build Coastguard Worker 
43*ec779b8eSAndroid Build Coastguard Worker     // Called to rescan a file, such as after an edit.
44*ec779b8eSAndroid Build Coastguard Worker     virtual void                    rescanFile(const char* path,
45*ec779b8eSAndroid Build Coastguard Worker                                             MtpObjectHandle handle,
46*ec779b8eSAndroid Build Coastguard Worker                                             MtpObjectFormat format) = 0;
47*ec779b8eSAndroid Build Coastguard Worker 
48*ec779b8eSAndroid Build Coastguard Worker     virtual MtpObjectHandleList*    getObjectList(MtpStorageID storageID,
49*ec779b8eSAndroid Build Coastguard Worker                                             MtpObjectFormat format,
50*ec779b8eSAndroid Build Coastguard Worker                                             MtpObjectHandle parent) = 0;
51*ec779b8eSAndroid Build Coastguard Worker 
52*ec779b8eSAndroid Build Coastguard Worker     virtual int                     getNumObjects(MtpStorageID storageID,
53*ec779b8eSAndroid Build Coastguard Worker                                             MtpObjectFormat format,
54*ec779b8eSAndroid Build Coastguard Worker                                             MtpObjectHandle parent) = 0;
55*ec779b8eSAndroid Build Coastguard Worker 
56*ec779b8eSAndroid Build Coastguard Worker     // callee should delete[] the results from these
57*ec779b8eSAndroid Build Coastguard Worker     // results can be NULL
58*ec779b8eSAndroid Build Coastguard Worker     virtual MtpObjectFormatList*    getSupportedPlaybackFormats() = 0;
59*ec779b8eSAndroid Build Coastguard Worker     virtual MtpObjectFormatList*    getSupportedCaptureFormats() = 0;
60*ec779b8eSAndroid Build Coastguard Worker     virtual MtpObjectPropertyList*  getSupportedObjectProperties(MtpObjectFormat format) = 0;
61*ec779b8eSAndroid Build Coastguard Worker     virtual MtpDevicePropertyList*  getSupportedDeviceProperties() = 0;
62*ec779b8eSAndroid Build Coastguard Worker 
63*ec779b8eSAndroid Build Coastguard Worker     virtual MtpResponseCode         getObjectPropertyValue(MtpObjectHandle handle,
64*ec779b8eSAndroid Build Coastguard Worker                                             MtpObjectProperty property,
65*ec779b8eSAndroid Build Coastguard Worker                                             MtpDataPacket& packet) = 0;
66*ec779b8eSAndroid Build Coastguard Worker 
67*ec779b8eSAndroid Build Coastguard Worker     virtual MtpResponseCode         setObjectPropertyValue(MtpObjectHandle handle,
68*ec779b8eSAndroid Build Coastguard Worker                                             MtpObjectProperty property,
69*ec779b8eSAndroid Build Coastguard Worker                                             MtpDataPacket& packet) = 0;
70*ec779b8eSAndroid Build Coastguard Worker 
71*ec779b8eSAndroid Build Coastguard Worker     virtual MtpResponseCode         getDevicePropertyValue(MtpDeviceProperty property,
72*ec779b8eSAndroid Build Coastguard Worker                                             MtpDataPacket& packet) = 0;
73*ec779b8eSAndroid Build Coastguard Worker 
74*ec779b8eSAndroid Build Coastguard Worker     virtual MtpResponseCode         setDevicePropertyValue(MtpDeviceProperty property,
75*ec779b8eSAndroid Build Coastguard Worker                                             MtpDataPacket& packet) = 0;
76*ec779b8eSAndroid Build Coastguard Worker 
77*ec779b8eSAndroid Build Coastguard Worker     virtual MtpResponseCode         resetDeviceProperty(MtpDeviceProperty property) = 0;
78*ec779b8eSAndroid Build Coastguard Worker 
79*ec779b8eSAndroid Build Coastguard Worker     virtual MtpResponseCode         getObjectPropertyList(MtpObjectHandle handle,
80*ec779b8eSAndroid Build Coastguard Worker                                             uint32_t format, uint32_t property,
81*ec779b8eSAndroid Build Coastguard Worker                                             int groupCode, int depth,
82*ec779b8eSAndroid Build Coastguard Worker                                             MtpDataPacket& packet) = 0;
83*ec779b8eSAndroid Build Coastguard Worker 
84*ec779b8eSAndroid Build Coastguard Worker     virtual MtpResponseCode         getObjectInfo(MtpObjectHandle handle,
85*ec779b8eSAndroid Build Coastguard Worker                                             MtpObjectInfo& info) = 0;
86*ec779b8eSAndroid Build Coastguard Worker 
87*ec779b8eSAndroid Build Coastguard Worker     virtual void*                   getThumbnail(MtpObjectHandle handle, size_t& outThumbSize) = 0;
88*ec779b8eSAndroid Build Coastguard Worker 
89*ec779b8eSAndroid Build Coastguard Worker     virtual MtpResponseCode         getObjectFilePath(MtpObjectHandle handle,
90*ec779b8eSAndroid Build Coastguard Worker                                             MtpStringBuffer& outFilePath,
91*ec779b8eSAndroid Build Coastguard Worker                                             int64_t& outFileLength,
92*ec779b8eSAndroid Build Coastguard Worker                                             MtpObjectFormat& outFormat) = 0;
93*ec779b8eSAndroid Build Coastguard Worker 
94*ec779b8eSAndroid Build Coastguard Worker     virtual int                     openFilePath(const char* path, bool transcode) = 0;
95*ec779b8eSAndroid Build Coastguard Worker 
96*ec779b8eSAndroid Build Coastguard Worker     virtual MtpResponseCode         beginDeleteObject(MtpObjectHandle handle) = 0;
97*ec779b8eSAndroid Build Coastguard Worker     virtual void                    endDeleteObject(MtpObjectHandle handle, bool succeeded) = 0;
98*ec779b8eSAndroid Build Coastguard Worker 
99*ec779b8eSAndroid Build Coastguard Worker     virtual MtpObjectHandleList*    getObjectReferences(MtpObjectHandle handle) = 0;
100*ec779b8eSAndroid Build Coastguard Worker 
101*ec779b8eSAndroid Build Coastguard Worker     virtual MtpResponseCode         setObjectReferences(MtpObjectHandle handle,
102*ec779b8eSAndroid Build Coastguard Worker                                             MtpObjectHandleList* references) = 0;
103*ec779b8eSAndroid Build Coastguard Worker 
104*ec779b8eSAndroid Build Coastguard Worker     virtual MtpProperty*            getObjectPropertyDesc(MtpObjectProperty property,
105*ec779b8eSAndroid Build Coastguard Worker                                             MtpObjectFormat format) = 0;
106*ec779b8eSAndroid Build Coastguard Worker 
107*ec779b8eSAndroid Build Coastguard Worker     virtual MtpProperty*            getDevicePropertyDesc(MtpDeviceProperty property) = 0;
108*ec779b8eSAndroid Build Coastguard Worker 
109*ec779b8eSAndroid Build Coastguard Worker     virtual MtpResponseCode         beginMoveObject(MtpObjectHandle handle, MtpObjectHandle newParent,
110*ec779b8eSAndroid Build Coastguard Worker                                             MtpStorageID newStorage) = 0;
111*ec779b8eSAndroid Build Coastguard Worker 
112*ec779b8eSAndroid Build Coastguard Worker     virtual void                    endMoveObject(MtpObjectHandle oldParent, MtpObjectHandle newParent,
113*ec779b8eSAndroid Build Coastguard Worker                                             MtpStorageID oldStorage, MtpStorageID newStorage,
114*ec779b8eSAndroid Build Coastguard Worker                                             MtpObjectHandle handle, bool succeeded) = 0;
115*ec779b8eSAndroid Build Coastguard Worker 
116*ec779b8eSAndroid Build Coastguard Worker     virtual MtpResponseCode         beginCopyObject(MtpObjectHandle handle, MtpObjectHandle newParent,
117*ec779b8eSAndroid Build Coastguard Worker                                             MtpStorageID newStorage) = 0;
118*ec779b8eSAndroid Build Coastguard Worker     virtual void                    endCopyObject(MtpObjectHandle handle, bool succeeded) = 0;
119*ec779b8eSAndroid Build Coastguard Worker };
120*ec779b8eSAndroid Build Coastguard Worker 
121*ec779b8eSAndroid Build Coastguard Worker }; // namespace android
122*ec779b8eSAndroid Build Coastguard Worker 
123*ec779b8eSAndroid Build Coastguard Worker #endif // _I_MTP_DATABASE_H
124