Loading media/mtp/Android.bp +3 −1 Original line number Diff line number Diff line Loading @@ -17,13 +17,13 @@ cc_library_shared { name: "libmtp", srcs: [ "AsyncIO.cpp", "MtpDataPacket.cpp", "MtpDebug.cpp", "MtpDevHandle.cpp", "MtpDevice.cpp", "MtpDeviceInfo.cpp", "MtpEventPacket.cpp", "MtpFfsCompatHandle.cpp", "MtpFfsHandle.cpp", "MtpObjectInfo.cpp", "MtpPacket.cpp", Loading @@ -35,6 +35,7 @@ cc_library_shared { "MtpStorageInfo.cpp", "MtpStringBuffer.cpp", "MtpUtils.cpp", "PosixAsyncIO.cpp", ], export_include_dirs: ["."], cflags: [ Loading @@ -45,6 +46,7 @@ cc_library_shared { "-Werror", ], shared_libs: [ "libasyncio", "libbase", "libutils", "liblog", Loading media/mtp/IMtpHandle.h +4 −5 Original line number Diff line number Diff line Loading @@ -18,13 +18,13 @@ #include <linux/usb/f_mtp.h> constexpr char FFS_MTP_EP0[] = "/dev/usb-ffs/mtp/ep0"; namespace android { class IMtpHandle { public: // Return number of bytes read/written, or -1 and errno is set virtual int read(void *data, int len) = 0; virtual int write(const void *data, int len) = 0; virtual int read(void *data, size_t len) = 0; virtual int write(const void *data, size_t len) = 0; // Return 0 if send/receive is successful, or -1 and errno is set virtual int receiveFile(mtp_file_range mfr, bool zero_packet) = 0; Loading @@ -40,8 +40,7 @@ public: virtual ~IMtpHandle() {} }; IMtpHandle *get_ffs_handle(); IMtpHandle *get_mtp_handle(); } #endif // _IMTP_HANDLE_H media/mtp/MtpDataPacket.h +1 −1 Original line number Diff line number Diff line Loading @@ -20,12 +20,12 @@ #include "MtpPacket.h" #include "mtp.h" class IMtpHandle; struct usb_device; struct usb_request; namespace android { class IMtpHandle; class MtpStringBuffer; class MtpDataPacket : public MtpPacket { Loading media/mtp/MtpDevHandle.cpp +10 −32 Original line number Diff line number Diff line Loading @@ -14,57 +14,37 @@ * limitations under the License. */ #include <utils/Log.h> #include <fcntl.h> #include <sys/stat.h> #include <android-base/logging.h> #include <cutils/properties.h> #include <dirent.h> #include <errno.h> #include <fcntl.h> #include <linux/usb/ch9.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/stat.h> #include <sys/ioctl.h> #include <sys/types.h> #include <sys/endian.h> #include <unistd.h> #include <android-base/logging.h> #include <android-base/unique_fd.h> #include "IMtpHandle.h" #include "MtpDevHandle.h" constexpr char mtp_dev_path[] = "/dev/mtp_usb"; namespace android { class MtpDevHandle : public IMtpHandle { private: android::base::unique_fd mFd; public: MtpDevHandle(); ~MtpDevHandle(); int read(void *data, int len); int write(const void *data, int len); int receiveFile(mtp_file_range mfr, bool); int sendFile(mtp_file_range mfr); int sendEvent(mtp_event me); int start(); void close(); int configure(bool ptp); }; constexpr char mtp_dev_path[] = "/dev/mtp_usb"; MtpDevHandle::MtpDevHandle() : mFd(-1) {}; MtpDevHandle::~MtpDevHandle() {} int MtpDevHandle::read(void *data, int len) { int MtpDevHandle::read(void *data, size_t len) { return ::read(mFd, data, len); } int MtpDevHandle::write(const void *data, int len) { int MtpDevHandle::write(const void *data, size_t len) { return ::write(mFd, data, len); } Loading @@ -81,7 +61,7 @@ int MtpDevHandle::sendEvent(mtp_event me) { } int MtpDevHandle::start() { mFd = android::base::unique_fd(TEMP_FAILURE_RETRY(open(mtp_dev_path, O_RDWR))); mFd.reset(TEMP_FAILURE_RETRY(open(mtp_dev_path, O_RDWR))); if (mFd == -1) return -1; return 0; } Loading @@ -95,6 +75,4 @@ int MtpDevHandle::configure(bool) { return 0; } IMtpHandle *get_mtp_handle() { return new MtpDevHandle(); } } // namespace android media/mtp/MtpDevHandle.h 0 → 100644 +47 −0 Original line number Diff line number Diff line /* * Copyright (C) 2017 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. */ #ifndef _MTP_DEV_HANDLE_H #define _MTP_DEV_HANDLE_H #include <android-base/unique_fd.h> #include "IMtpHandle.h" namespace android { class MtpDevHandle : public IMtpHandle { private: android::base::unique_fd mFd; public: MtpDevHandle(); ~MtpDevHandle(); int read(void *data, size_t len); int write(const void *data, size_t len); int receiveFile(mtp_file_range mfr, bool); int sendFile(mtp_file_range mfr); int sendEvent(mtp_event me); int start(); void close(); int configure(bool ptp); }; } // namespace android #endif // _MTP_FFS_HANDLE_H Loading
media/mtp/Android.bp +3 −1 Original line number Diff line number Diff line Loading @@ -17,13 +17,13 @@ cc_library_shared { name: "libmtp", srcs: [ "AsyncIO.cpp", "MtpDataPacket.cpp", "MtpDebug.cpp", "MtpDevHandle.cpp", "MtpDevice.cpp", "MtpDeviceInfo.cpp", "MtpEventPacket.cpp", "MtpFfsCompatHandle.cpp", "MtpFfsHandle.cpp", "MtpObjectInfo.cpp", "MtpPacket.cpp", Loading @@ -35,6 +35,7 @@ cc_library_shared { "MtpStorageInfo.cpp", "MtpStringBuffer.cpp", "MtpUtils.cpp", "PosixAsyncIO.cpp", ], export_include_dirs: ["."], cflags: [ Loading @@ -45,6 +46,7 @@ cc_library_shared { "-Werror", ], shared_libs: [ "libasyncio", "libbase", "libutils", "liblog", Loading
media/mtp/IMtpHandle.h +4 −5 Original line number Diff line number Diff line Loading @@ -18,13 +18,13 @@ #include <linux/usb/f_mtp.h> constexpr char FFS_MTP_EP0[] = "/dev/usb-ffs/mtp/ep0"; namespace android { class IMtpHandle { public: // Return number of bytes read/written, or -1 and errno is set virtual int read(void *data, int len) = 0; virtual int write(const void *data, int len) = 0; virtual int read(void *data, size_t len) = 0; virtual int write(const void *data, size_t len) = 0; // Return 0 if send/receive is successful, or -1 and errno is set virtual int receiveFile(mtp_file_range mfr, bool zero_packet) = 0; Loading @@ -40,8 +40,7 @@ public: virtual ~IMtpHandle() {} }; IMtpHandle *get_ffs_handle(); IMtpHandle *get_mtp_handle(); } #endif // _IMTP_HANDLE_H
media/mtp/MtpDataPacket.h +1 −1 Original line number Diff line number Diff line Loading @@ -20,12 +20,12 @@ #include "MtpPacket.h" #include "mtp.h" class IMtpHandle; struct usb_device; struct usb_request; namespace android { class IMtpHandle; class MtpStringBuffer; class MtpDataPacket : public MtpPacket { Loading
media/mtp/MtpDevHandle.cpp +10 −32 Original line number Diff line number Diff line Loading @@ -14,57 +14,37 @@ * limitations under the License. */ #include <utils/Log.h> #include <fcntl.h> #include <sys/stat.h> #include <android-base/logging.h> #include <cutils/properties.h> #include <dirent.h> #include <errno.h> #include <fcntl.h> #include <linux/usb/ch9.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/stat.h> #include <sys/ioctl.h> #include <sys/types.h> #include <sys/endian.h> #include <unistd.h> #include <android-base/logging.h> #include <android-base/unique_fd.h> #include "IMtpHandle.h" #include "MtpDevHandle.h" constexpr char mtp_dev_path[] = "/dev/mtp_usb"; namespace android { class MtpDevHandle : public IMtpHandle { private: android::base::unique_fd mFd; public: MtpDevHandle(); ~MtpDevHandle(); int read(void *data, int len); int write(const void *data, int len); int receiveFile(mtp_file_range mfr, bool); int sendFile(mtp_file_range mfr); int sendEvent(mtp_event me); int start(); void close(); int configure(bool ptp); }; constexpr char mtp_dev_path[] = "/dev/mtp_usb"; MtpDevHandle::MtpDevHandle() : mFd(-1) {}; MtpDevHandle::~MtpDevHandle() {} int MtpDevHandle::read(void *data, int len) { int MtpDevHandle::read(void *data, size_t len) { return ::read(mFd, data, len); } int MtpDevHandle::write(const void *data, int len) { int MtpDevHandle::write(const void *data, size_t len) { return ::write(mFd, data, len); } Loading @@ -81,7 +61,7 @@ int MtpDevHandle::sendEvent(mtp_event me) { } int MtpDevHandle::start() { mFd = android::base::unique_fd(TEMP_FAILURE_RETRY(open(mtp_dev_path, O_RDWR))); mFd.reset(TEMP_FAILURE_RETRY(open(mtp_dev_path, O_RDWR))); if (mFd == -1) return -1; return 0; } Loading @@ -95,6 +75,4 @@ int MtpDevHandle::configure(bool) { return 0; } IMtpHandle *get_mtp_handle() { return new MtpDevHandle(); } } // namespace android
media/mtp/MtpDevHandle.h 0 → 100644 +47 −0 Original line number Diff line number Diff line /* * Copyright (C) 2017 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. */ #ifndef _MTP_DEV_HANDLE_H #define _MTP_DEV_HANDLE_H #include <android-base/unique_fd.h> #include "IMtpHandle.h" namespace android { class MtpDevHandle : public IMtpHandle { private: android::base::unique_fd mFd; public: MtpDevHandle(); ~MtpDevHandle(); int read(void *data, size_t len); int write(const void *data, size_t len); int receiveFile(mtp_file_range mfr, bool); int sendFile(mtp_file_range mfr); int sendEvent(mtp_event me); int start(); void close(); int configure(bool ptp); }; } // namespace android #endif // _MTP_FFS_HANDLE_H