diff options
Diffstat (limited to 'mtp/MtpServer.h')
-rw-r--r-- | mtp/MtpServer.h | 155 |
1 files changed, 0 insertions, 155 deletions
diff --git a/mtp/MtpServer.h b/mtp/MtpServer.h deleted file mode 100644 index 944331134..000000000 --- a/mtp/MtpServer.h +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Copyright (C) 2014 TeamWin - bigbiff and Dees_Troy mtp database conversion to C++ - */ - -#ifndef _MTP_SERVER_H -#define _MTP_SERVER_H - -#include <utils/threads.h> -#include <utils/Vector.h> -#include "MtpRequestPacket.h" -#include "MtpDatabase.h" -#include "MtpDataPacket.h" -#include "MtpResponsePacket.h" -#include "MtpEventPacket.h" -#include "mtp.h" -#include "MtpUtils.h" - - -class MtpDatabase; -class MtpStorage; - -class MtpServer { - -private: - // file descriptor for MTP kernel driver - int mFD; - android::Mutex mMutex; - MtpDatabase* mDatabase; - - // appear as a PTP device - bool mPtp; - - // group to own new files and folders - int mFileGroup; - // permissions for new files and directories - int mFilePermission; - int mDirectoryPermission; - - // current session ID - MtpSessionID mSessionID; - // true if we have an open session and mSessionID is valid - bool mSessionOpen; - - MtpRequestPacket mRequest; - MtpDataPacket mData; - MtpResponsePacket mResponse; - MtpEventPacket mEvent; - - MtpStorageList mStorages; - - // handle for new object, set by SendObjectInfo and used by SendObject - MtpObjectHandle mSendObjectHandle; - MtpObjectFormat mSendObjectFormat; - MtpString mSendObjectFilePath; - size_t mSendObjectFileSize; - - pthread_mutex_t mtpMutex; - - // represents an MTP object that is being edited using the android extensions - // for direct editing (BeginEditObject, SendPartialObject, TruncateObject and EndEditObject) - class ObjectEdit { - public: - MtpObjectHandle mHandle; - MtpString mPath; - uint64_t mSize; - MtpObjectFormat mFormat; - int mFD; - - ObjectEdit(MtpObjectHandle handle, const char* path, uint64_t size, - MtpObjectFormat format, int fd) - : mHandle(handle), mPath(path), mSize(size), mFormat(format), mFD(fd) { - } - - virtual ~ObjectEdit() { - close(mFD); - } - }; - android::Vector<ObjectEdit*> mObjectEditList; - -public: - MtpServer(MtpDatabase* database, bool ptp, - int fileGroup, int filePerm, int directoryPerm); - virtual ~MtpServer(); - - MtpStorage* getStorage(MtpStorageID id); - inline bool hasStorage() { return mStorages.size() > 0; } - bool hasStorage(MtpStorageID id); - void addStorage(MtpStorage* storage); - void removeStorage(MtpStorage* storage); - - void run(int fd); - - void sendObjectAdded(MtpObjectHandle handle); - void sendObjectRemoved(MtpObjectHandle handle); - void sendObjectUpdated(MtpObjectHandle handle); - -private: - void sendStoreAdded(MtpStorageID id); - void sendStoreRemoved(MtpStorageID id); - void sendEvent(MtpEventCode code, uint32_t param1); - - void addEditObject(MtpObjectHandle handle, MtpString& path, - uint64_t size, MtpObjectFormat format, int fd); - ObjectEdit* getEditObject(MtpObjectHandle handle); - void removeEditObject(MtpObjectHandle handle); - void commitEdit(ObjectEdit* edit); - - bool handleRequest(); - - MtpResponseCode doGetDeviceInfo(); - MtpResponseCode doOpenSession(); - MtpResponseCode doCloseSession(); - MtpResponseCode doGetStorageIDs(); - MtpResponseCode doGetStorageInfo(); - MtpResponseCode doGetObjectPropsSupported(); - MtpResponseCode doGetObjectHandles(); - MtpResponseCode doGetNumObjects(); - MtpResponseCode doGetObjectReferences(); - MtpResponseCode doSetObjectReferences(); - MtpResponseCode doGetObjectPropValue(); - MtpResponseCode doSetObjectPropValue(); - MtpResponseCode doGetDevicePropValue(); - MtpResponseCode doSetDevicePropValue(); - MtpResponseCode doResetDevicePropValue(); - MtpResponseCode doGetObjectPropList(); - MtpResponseCode doGetObjectInfo(); - MtpResponseCode doGetObject(); - MtpResponseCode doGetThumb(); - MtpResponseCode doGetPartialObject(MtpOperationCode operation); - MtpResponseCode doSendObjectInfo(); - MtpResponseCode doSendObject(); - MtpResponseCode doDeleteObject(); - MtpResponseCode doGetObjectPropDesc(); - MtpResponseCode doGetDevicePropDesc(); - MtpResponseCode doSendPartialObject(); - MtpResponseCode doTruncateObject(); - MtpResponseCode doBeginEditObject(); - MtpResponseCode doEndEditObject(); -}; - -#endif // _MTP_SERVER_H |