summaryrefslogtreecommitdiffstats
path: root/third_party
diff options
context:
space:
mode:
authorthestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-20 17:14:22 +0000
committerthestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-20 17:14:22 +0000
commitd9e5fef4f9f02bff3ab26cba96c9a658273d8161 (patch)
treea1f0b2b9a73f0af70e15057f97ec3c6d36b911fc /third_party
parente106b11417971c44befbcf38f5872c91000195a8 (diff)
downloadchromium_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.chromium14
-rw-r--r--third_party/mtpd/mtpd.gyp43
-rw-r--r--third_party/mtpd/mtpd_server/mtpd_server.h342
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