diff options
author | thestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-10-20 17:14:22 +0000 |
---|---|---|
committer | thestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-10-20 17:14:22 +0000 |
commit | d9e5fef4f9f02bff3ab26cba96c9a658273d8161 (patch) | |
tree | a1f0b2b9a73f0af70e15057f97ec3c6d36b911fc /third_party | |
parent | e106b11417971c44befbcf38f5872c91000195a8 (diff) | |
download | chromium_src-d9e5fef4f9f02bff3ab26cba96c9a658273d8161.zip chromium_src-d9e5fef4f9f02bff3ab26cba96c9a658273d8161.tar.gz chromium_src-d9e5fef4f9f02bff3ab26cba96c9a658273d8161.tar.bz2 |
Pull in mtpd from CrOS and add files to build it on Linux.
BUG=151685
Review URL: https://codereview.chromium.org/11184028
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@163172 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'third_party')
-rw-r--r-- | third_party/mtpd/README.chromium | 14 | ||||
-rw-r--r-- | third_party/mtpd/mtpd.gyp | 43 | ||||
-rw-r--r-- | third_party/mtpd/mtpd_server/mtpd_server.h | 342 |
3 files changed, 399 insertions, 0 deletions
diff --git a/third_party/mtpd/README.chromium b/third_party/mtpd/README.chromium new file mode 100644 index 0000000..7c49831 --- /dev/null +++ b/third_party/mtpd/README.chromium @@ -0,0 +1,14 @@ +Name: mtpd +URL: http://www.chromium.org +Version: None +License: BSD +License File: ../../LICENSE.chromium_os +Date: 2012-10-17 +Security Critical: yes. + +Description: +Mtpd is a daemon that lets programs talk to Media Transfer Protocol (MTP) +devices over D-Bus. + +Local Modifications: +None. diff --git a/third_party/mtpd/mtpd.gyp b/third_party/mtpd/mtpd.gyp new file mode 100644 index 0000000..bb9ad2c --- /dev/null +++ b/third_party/mtpd/mtpd.gyp @@ -0,0 +1,43 @@ +# Copyright (c) 2012 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +{ + 'targets': [ + { + 'target_name': 'mtpd', + 'type': 'executable', + 'dependencies': [ + '../../base/base.gyp:base', + '../../build/linux/system.gyp:udev', + '../../chrome/chrome.gyp:mtp_file_entry_proto', + '../../chrome/chrome.gyp:mtp_storage_info_proto', + '../../third_party/cros_dbus_cplusplus/cros_dbus_cplusplus.gyp:dbus_cplusplus', + '../../third_party/libmtp/libmtp.gyp:libmtp', + ], + 'sources': [ + 'source/assert_matching_file_types.cc', + 'source/build_config.h', + 'source/daemon.cc', + 'source/daemon.h', + 'source/device_event_delegate.h', + 'source/device_manager.cc', + 'source/device_manager.h', + 'source/file_entry.cc', + 'source/file_entry.h', + 'source/main.cc', + 'source/mtpd_server_impl.cc', + 'source/mtpd_server_impl.h', + 'source/service_constants.h', + 'source/storage_info.cc', + 'source/storage_info.h', + 'source/string_helpers.cc', + 'source/string_helpers.h', + ], + 'include_dirs': [ + '.', + '<(SHARED_INTERMEDIATE_DIR)/protoc_out/chrome/browser/media_transfer_protocol', + ], + }, + ], +} diff --git a/third_party/mtpd/mtpd_server/mtpd_server.h b/third_party/mtpd/mtpd_server/mtpd_server.h new file mode 100644 index 0000000..5cd9542 --- /dev/null +++ b/third_party/mtpd/mtpd_server/mtpd_server.h @@ -0,0 +1,342 @@ +/* + * This file was automatically generated by dbusxx-xml2cpp; DO NOT EDIT! + * The source for dbusxx-xml2cpp is here: + * http://git.chromium.org/gitweb/?p=chromiumos/third_party/dbus-cplusplus.git + */ +#ifndef __dbusxx________out_Debug_gen_mtpd_server_mtpd_server_h__ADAPTOR_MARSHALL_H +#define __dbusxx________out_Debug_gen_mtpd_server_mtpd_server_h__ADAPTOR_MARSHALL_H +#include <dbus-c++/dbus.h> +#include <cassert> + +namespace org { +namespace chromium { + +class Mtpd_adaptor + : public ::DBus::InterfaceAdaptor +{ +public: + Mtpd_adaptor() + : ::DBus::InterfaceAdaptor("org.chromium.Mtpd") + { + register_method(Mtpd_adaptor, EnumerateStorage, _EnumerateStorage_stub); + register_method(Mtpd_adaptor, GetStorageInfo, _GetStorageInfo_stub); + register_method(Mtpd_adaptor, OpenStorage, _OpenStorage_stub); + register_method(Mtpd_adaptor, CloseStorage, _CloseStorage_stub); + register_method(Mtpd_adaptor, ReadDirectoryByPath, _ReadDirectoryByPath_stub); + register_method(Mtpd_adaptor, ReadDirectoryById, _ReadDirectoryById_stub); + register_method(Mtpd_adaptor, ReadFileByPath, _ReadFileByPath_stub); + register_method(Mtpd_adaptor, ReadFileById, _ReadFileById_stub); + register_method(Mtpd_adaptor, GetFileInfoByPath, _GetFileInfoByPath_stub); + register_method(Mtpd_adaptor, GetFileInfoById, _GetFileInfoById_stub); + register_method(Mtpd_adaptor, IsAlive, _IsAlive_stub); + } + const ::DBus::IntrospectedInterface *introspect() const + { + static const ::DBus::IntrospectedArgument EnumerateStorage_args[] = + { + { "storageList", "as", false }, + { 0, 0, 0 } + }; + static const ::DBus::IntrospectedArgument GetStorageInfo_args[] = + { + { "storageName", "s", true }, + { "storageInfo", "ay", false }, + { 0, 0, 0 } + }; + static const ::DBus::IntrospectedArgument OpenStorage_args[] = + { + { "storageName", "s", true }, + { "mode", "s", true }, + { "handle", "s", false }, + { 0, 0, 0 } + }; + static const ::DBus::IntrospectedArgument CloseStorage_args[] = + { + { "handle", "s", true }, + { 0, 0, 0 } + }; + static const ::DBus::IntrospectedArgument ReadDirectoryByPath_args[] = + { + { "handle", "s", true }, + { "filePath", "s", true }, + { "results", "ay", false }, + { 0, 0, 0 } + }; + static const ::DBus::IntrospectedArgument ReadDirectoryById_args[] = + { + { "handle", "s", true }, + { "fileId", "u", true }, + { "results", "ay", false }, + { 0, 0, 0 } + }; + static const ::DBus::IntrospectedArgument ReadFileByPath_args[] = + { + { "handle", "s", true }, + { "filePath", "s", true }, + { "data", "ay", false }, + { 0, 0, 0 } + }; + static const ::DBus::IntrospectedArgument ReadFileById_args[] = + { + { "handle", "s", true }, + { "fileId", "u", true }, + { "data", "ay", false }, + { 0, 0, 0 } + }; + static const ::DBus::IntrospectedArgument GetFileInfoByPath_args[] = + { + { "handle", "s", true }, + { "filePath", "s", true }, + { "info", "ay", false }, + { 0, 0, 0 } + }; + static const ::DBus::IntrospectedArgument GetFileInfoById_args[] = + { + { "handle", "s", true }, + { "fileId", "u", true }, + { "info", "ay", false }, + { 0, 0, 0 } + }; + static const ::DBus::IntrospectedArgument IsAlive_args[] = + { + { "result", "b", false }, + { 0, 0, 0 } + }; + static const ::DBus::IntrospectedArgument MTPStorageAttached_args[] = + { + { "storageName", "s", false }, + { 0, 0, 0 } + }; + static const ::DBus::IntrospectedArgument MTPStorageDetached_args[] = + { + { "storageName", "s", false }, + { 0, 0, 0 } + }; + static const ::DBus::IntrospectedMethod Mtpd_adaptor_methods[] = + { + { "EnumerateStorage", EnumerateStorage_args }, + { "GetStorageInfo", GetStorageInfo_args }, + { "OpenStorage", OpenStorage_args }, + { "CloseStorage", CloseStorage_args }, + { "ReadDirectoryByPath", ReadDirectoryByPath_args }, + { "ReadDirectoryById", ReadDirectoryById_args }, + { "ReadFileByPath", ReadFileByPath_args }, + { "ReadFileById", ReadFileById_args }, + { "GetFileInfoByPath", GetFileInfoByPath_args }, + { "GetFileInfoById", GetFileInfoById_args }, + { "IsAlive", IsAlive_args }, + { 0, 0 } + }; + static const ::DBus::IntrospectedMethod Mtpd_adaptor_signals[] = + { + { "MTPStorageAttached", MTPStorageAttached_args }, + { "MTPStorageDetached", MTPStorageDetached_args }, + { 0, 0 } + }; + static const ::DBus::IntrospectedProperty Mtpd_adaptor_properties[] = + { + { 0, 0, 0, 0 } + }; + static const ::DBus::IntrospectedInterface Mtpd_adaptor_interface = + { + "org.chromium.Mtpd", + Mtpd_adaptor_methods, + Mtpd_adaptor_signals, + Mtpd_adaptor_properties + }; + return &Mtpd_adaptor_interface; + } + /* Properties exposed by this interface. + * Use property() and property(value) to + * get and set a particular property. + */ + /* Methods exported by this interface. + * You will have to implement them in your ObjectAdaptor. + */ + virtual std::vector< std::string > EnumerateStorage(::DBus::Error &error) = 0; + virtual std::vector< uint8_t > GetStorageInfo(const std::string& storageName, ::DBus::Error &error) = 0; + virtual std::string OpenStorage(const std::string& storageName, const std::string& mode, ::DBus::Error &error) = 0; + virtual void CloseStorage(const std::string& handle, ::DBus::Error &error) = 0; + virtual std::vector< uint8_t > ReadDirectoryByPath(const std::string& handle, const std::string& filePath, ::DBus::Error &error) = 0; + virtual std::vector< uint8_t > ReadDirectoryById(const std::string& handle, const uint32_t& fileId, ::DBus::Error &error) = 0; + virtual std::vector< uint8_t > ReadFileByPath(const std::string& handle, const std::string& filePath, ::DBus::Error &error) = 0; + virtual std::vector< uint8_t > ReadFileById(const std::string& handle, const uint32_t& fileId, ::DBus::Error &error) = 0; + virtual std::vector< uint8_t > GetFileInfoByPath(const std::string& handle, const std::string& filePath, ::DBus::Error &error) = 0; + virtual std::vector< uint8_t > GetFileInfoById(const std::string& handle, const uint32_t& fileId, ::DBus::Error &error) = 0; + virtual bool IsAlive(::DBus::Error &error) = 0; + /* signal emitters for this interface */ + void MTPStorageAttached(const std::string &storageName) + { + ::DBus::SignalMessage __sig("MTPStorageAttached"); + ::DBus::MessageIter __wi = __sig.writer(); + __wi << storageName; + emit_signal(__sig); + } + void MTPStorageDetached(const std::string &storageName) + { + ::DBus::SignalMessage __sig("MTPStorageDetached"); + ::DBus::MessageIter __wi = __sig.writer(); + __wi << storageName; + emit_signal(__sig); + } +private: + /* unmarshallers (to unpack the DBus message before calling the actual + * interface method) + */ + ::DBus::Message _EnumerateStorage_stub(const ::DBus::CallMessage &__call) + { + ::DBus::Error __error; + std::vector< std::string > __argout; + __argout = EnumerateStorage(__error); + if (__error.is_set()) + return ::DBus::ErrorMessage(__call, __error.name(), __error.message()); + ::DBus::ReturnMessage __reply(__call); + ::DBus::MessageIter __wi = __reply.writer(); + __wi << __argout; + return __reply; + } + ::DBus::Message _GetStorageInfo_stub(const ::DBus::CallMessage &__call) + { + ::DBus::Error __error; + ::DBus::MessageIter __ri = __call.reader(); + std::string storageName; __ri >> storageName; + std::vector< uint8_t > __argout; + __argout = GetStorageInfo(storageName, __error); + if (__error.is_set()) + return ::DBus::ErrorMessage(__call, __error.name(), __error.message()); + ::DBus::ReturnMessage __reply(__call); + ::DBus::MessageIter __wi = __reply.writer(); + __wi << __argout; + return __reply; + } + ::DBus::Message _OpenStorage_stub(const ::DBus::CallMessage &__call) + { + ::DBus::Error __error; + ::DBus::MessageIter __ri = __call.reader(); + std::string storageName; __ri >> storageName; + std::string mode; __ri >> mode; + std::string __argout; + __argout = OpenStorage(storageName, mode, __error); + if (__error.is_set()) + return ::DBus::ErrorMessage(__call, __error.name(), __error.message()); + ::DBus::ReturnMessage __reply(__call); + ::DBus::MessageIter __wi = __reply.writer(); + __wi << __argout; + return __reply; + } + ::DBus::Message _CloseStorage_stub(const ::DBus::CallMessage &__call) + { + ::DBus::Error __error; + ::DBus::MessageIter __ri = __call.reader(); + std::string handle; __ri >> handle; + CloseStorage(handle, __error); + if (__error.is_set()) + return ::DBus::ErrorMessage(__call, __error.name(), __error.message()); + ::DBus::ReturnMessage __reply(__call); + return __reply; + } + ::DBus::Message _ReadDirectoryByPath_stub(const ::DBus::CallMessage &__call) + { + ::DBus::Error __error; + ::DBus::MessageIter __ri = __call.reader(); + std::string handle; __ri >> handle; + std::string filePath; __ri >> filePath; + std::vector< uint8_t > __argout; + __argout = ReadDirectoryByPath(handle, filePath, __error); + if (__error.is_set()) + return ::DBus::ErrorMessage(__call, __error.name(), __error.message()); + ::DBus::ReturnMessage __reply(__call); + ::DBus::MessageIter __wi = __reply.writer(); + __wi << __argout; + return __reply; + } + ::DBus::Message _ReadDirectoryById_stub(const ::DBus::CallMessage &__call) + { + ::DBus::Error __error; + ::DBus::MessageIter __ri = __call.reader(); + std::string handle; __ri >> handle; + uint32_t fileId; __ri >> fileId; + std::vector< uint8_t > __argout; + __argout = ReadDirectoryById(handle, fileId, __error); + if (__error.is_set()) + return ::DBus::ErrorMessage(__call, __error.name(), __error.message()); + ::DBus::ReturnMessage __reply(__call); + ::DBus::MessageIter __wi = __reply.writer(); + __wi << __argout; + return __reply; + } + ::DBus::Message _ReadFileByPath_stub(const ::DBus::CallMessage &__call) + { + ::DBus::Error __error; + ::DBus::MessageIter __ri = __call.reader(); + std::string handle; __ri >> handle; + std::string filePath; __ri >> filePath; + std::vector< uint8_t > __argout; + __argout = ReadFileByPath(handle, filePath, __error); + if (__error.is_set()) + return ::DBus::ErrorMessage(__call, __error.name(), __error.message()); + ::DBus::ReturnMessage __reply(__call); + ::DBus::MessageIter __wi = __reply.writer(); + __wi << __argout; + return __reply; + } + ::DBus::Message _ReadFileById_stub(const ::DBus::CallMessage &__call) + { + ::DBus::Error __error; + ::DBus::MessageIter __ri = __call.reader(); + std::string handle; __ri >> handle; + uint32_t fileId; __ri >> fileId; + std::vector< uint8_t > __argout; + __argout = ReadFileById(handle, fileId, __error); + if (__error.is_set()) + return ::DBus::ErrorMessage(__call, __error.name(), __error.message()); + ::DBus::ReturnMessage __reply(__call); + ::DBus::MessageIter __wi = __reply.writer(); + __wi << __argout; + return __reply; + } + ::DBus::Message _GetFileInfoByPath_stub(const ::DBus::CallMessage &__call) + { + ::DBus::Error __error; + ::DBus::MessageIter __ri = __call.reader(); + std::string handle; __ri >> handle; + std::string filePath; __ri >> filePath; + std::vector< uint8_t > __argout; + __argout = GetFileInfoByPath(handle, filePath, __error); + if (__error.is_set()) + return ::DBus::ErrorMessage(__call, __error.name(), __error.message()); + ::DBus::ReturnMessage __reply(__call); + ::DBus::MessageIter __wi = __reply.writer(); + __wi << __argout; + return __reply; + } + ::DBus::Message _GetFileInfoById_stub(const ::DBus::CallMessage &__call) + { + ::DBus::Error __error; + ::DBus::MessageIter __ri = __call.reader(); + std::string handle; __ri >> handle; + uint32_t fileId; __ri >> fileId; + std::vector< uint8_t > __argout; + __argout = GetFileInfoById(handle, fileId, __error); + if (__error.is_set()) + return ::DBus::ErrorMessage(__call, __error.name(), __error.message()); + ::DBus::ReturnMessage __reply(__call); + ::DBus::MessageIter __wi = __reply.writer(); + __wi << __argout; + return __reply; + } + ::DBus::Message _IsAlive_stub(const ::DBus::CallMessage &__call) + { + ::DBus::Error __error; + bool __argout; + __argout = IsAlive(__error); + if (__error.is_set()) + return ::DBus::ErrorMessage(__call, __error.name(), __error.message()); + ::DBus::ReturnMessage __reply(__call); + ::DBus::MessageIter __wi = __reply.writer(); + __wi << __argout; + return __reply; + } +}; +}} +#endif // __dbusxx________out_Debug_gen_mtpd_server_mtpd_server_h__ADAPTOR_MARSHALL_H |