class IMountService : public IInterface
{
public:
- DECLARE_META_INTERFACE(MountService);
-
- /**
- * Is mass storage support enabled?
- */
- virtual bool getMassStorageEnabled() = 0;
-
- /**
- * Enable or disable mass storage support.
- */
- virtual void setMassStorageEnabled(bool enabled) = 0;
-
- /**
- * Is mass storage connected?
- */
- virtual bool getMassStorageConnected() = 0;
-
- /**
- * Mount external storage at given mount point.
- */
- virtual void mountVolume(String16 mountPoint) = 0;
+ static const int OperationSucceeded = 0;
+ static const int OperationFailedInternalError = -1;
+ static const int OperationFailedNoMedia = -2;
+ static const int OperationFailedMediaBlank = -3;
+ static const int OperationFailedMediaCorrupt = -4;
+ static const int OperationFailedVolumeNotMounted = -5;
- /**
- * Safely unmount external storage at given mount point.
- */
- virtual void unmountVolume(String16 mountPoint) = 0;
- /**
- * Format external storage at given mount point.
- */
- virtual void formatVolume(String16 mountPoint) = 0;
-
- /**
- * Returns true if we're playing media notification sounds.
- */
- virtual bool getPlayNotificationSounds() = 0;
-
- /**
- * Sets whether or not media notification sounds are played.
- */
- virtual void setPlayNotificationSounds(bool enabled) = 0;
+public:
+ DECLARE_META_INTERFACE(MountService);
+ virtual void getShareMethodList() = 0;
+ virtual bool getShareMethodAvailable(String16 method) = 0;
+ virtual int shareVolume(String16 path, String16 method) = 0;
+ virtual int unshareVolume(String16 path, String16 method) = 0;
+ virtual bool getVolumeShared(String16 path, String16 method) = 0;
+ virtual int mountVolume(String16 path) = 0;
+ virtual int unmountVolume(String16 path) = 0;
+ virtual int formatVolume(String16 path) = 0;
virtual String16 getVolumeState(String16 mountPoint) = 0;
- virtual String16 createSecureContainer(String16 id, int sizeMb, String16 fstype, String16 key, int ownerUid) = 0;
- virtual void finalizeSecureContainer(String16 id) = 0;
- virtual void destroySecureContainer(String16 id) = 0;
- virtual String16 mountSecureContainer(String16 id, String16 key, int ownerUid) = 0;
- virtual void unmountSecureContainer(String16 id) = 0;
- virtual void renameSecureContainer(String16 oldId, String16 newId) = 0;
+ virtual int createSecureContainer(String16 id, int sizeMb, String16 fstype, String16 key, int ownerUid) = 0;
+ virtual int finalizeSecureContainer(String16 id) = 0;
+ virtual int destroySecureContainer(String16 id) = 0;
+ virtual int mountSecureContainer(String16 id, String16 key, int ownerUid) = 0;
+ virtual int unmountSecureContainer(String16 id) = 0;
+ virtual int renameSecureContainer(String16 oldId, String16 newId) = 0;
virtual String16 getSecureContainerPath(String16 id) = 0;
virtual void getSecureContainerList() = 0;
virtual void shutdown() = 0;
namespace android {
enum {
- GET_MASS_STORAGE_ENABLED_TRANSACTION = IBinder::FIRST_CALL_TRANSACTION,
- SET_MASS_STORAGE_ENABLED_TRANSACTION,
- GET_MASS_STORAGE_CONNECTED_TRANSACTION,
+ GET_SHARE_METHOD_LIST_TRANSACTION = IBinder::FIRST_CALL_TRANSACTION,
+ GET_SHARE_METHOD_AVAILABLE_TRANSACTION,
+ SHARE_VOLUME_TRANSACTION,
+ UNSHARE_VOLUME_TRANSACTION,
+ GET_VOLUME_SHARED_TRANSACTION,
MOUNT_VOLUME_TRANSACTION,
UNMOUNT_VOLUME_TRANSACTION,
FORMAT_VOLUME_TRANSACTION,
- GET_PLAY_NOTIFICATION_SOUNDS_TRANSACTION,
- SET_PLAY_NOTIFICATION_SOUNDS_TRANSACTION,
GET_VOLUME_STATE_TRANSACTION,
CREATE_SECURE_CONTAINER_TRANSACTION,
FINALIZE_SECURE_CONTAINER_TRANSACTION,
{
}
- virtual bool getMassStorageEnabled()
+ virtual void getShareMethodList()
{
- uint32_t n;
Parcel data, reply;
data.writeInterfaceToken(IMountService::getInterfaceDescriptor());
- remote()->transact(GET_MASS_STORAGE_ENABLED_TRANSACTION, data, &reply);
- return reply.readInt32();
+ remote()->transact(GET_SHARE_METHOD_LIST_TRANSACTION, data, &reply);
}
- virtual void setMassStorageEnabled(bool enabled)
+ virtual bool getShareMethodAvailable(String16 method)
{
+ uint32_t n;
Parcel data, reply;
data.writeInterfaceToken(IMountService::getInterfaceDescriptor());
- data.writeInt32(enabled ? 1 : 0);
- remote()->transact(SET_MASS_STORAGE_ENABLED_TRANSACTION, data, &reply);
+ data.writeString16(method);
+ remote()->transact(GET_SHARE_METHOD_AVAILABLE_TRANSACTION, data, &reply);
+ return reply.readInt32();
}
- virtual bool getMassStorageConnected()
+ virtual int shareVolume(String16 path, String16 method)
{
- uint32_t n;
Parcel data, reply;
data.writeInterfaceToken(IMountService::getInterfaceDescriptor());
- remote()->transact(GET_MASS_STORAGE_CONNECTED_TRANSACTION, data, &reply);
+ data.writeString16(path);
+ data.writeString16(method);
+ remote()->transact(SHARE_VOLUME_TRANSACTION, data, &reply);
return reply.readInt32();
}
- virtual void mountVolume(String16 mountPoint)
+ virtual int unshareVolume(String16 path, String16 method)
{
Parcel data, reply;
data.writeInterfaceToken(IMountService::getInterfaceDescriptor());
- data.writeString16(mountPoint);
- remote()->transact(MOUNT_VOLUME_TRANSACTION, data, &reply);
+ data.writeString16(path);
+ data.writeString16(method);
+ remote()->transact(UNSHARE_VOLUME_TRANSACTION, data, &reply);
+ return reply.readInt32();
}
- virtual void unmountVolume(String16 mountPoint)
+ virtual bool getVolumeShared(String16 path, String16 method)
{
+ uint32_t n;
Parcel data, reply;
data.writeInterfaceToken(IMountService::getInterfaceDescriptor());
- data.writeString16(mountPoint);
- remote()->transact(UNMOUNT_VOLUME_TRANSACTION, data, &reply);
+ data.writeString16(path);
+ data.writeString16(method);
+ remote()->transact(GET_VOLUME_SHARED_TRANSACTION, data, &reply);
+ return reply.readInt32();
}
- virtual void formatVolume(String16 mountPoint)
+ virtual int mountVolume(String16 path)
{
Parcel data, reply;
data.writeInterfaceToken(IMountService::getInterfaceDescriptor());
- data.writeString16(mountPoint);
- remote()->transact(FORMAT_VOLUME_TRANSACTION, data, &reply);
+ data.writeString16(path);
+ remote()->transact(MOUNT_VOLUME_TRANSACTION, data, &reply);
+ return reply.readInt32();
}
- virtual bool getPlayNotificationSounds()
+ virtual int unmountVolume(String16 path)
{
- uint32_t n;
Parcel data, reply;
data.writeInterfaceToken(IMountService::getInterfaceDescriptor());
- remote()->transact(GET_PLAY_NOTIFICATION_SOUNDS_TRANSACTION, data, &reply);
+ data.writeString16(path);
+ remote()->transact(UNMOUNT_VOLUME_TRANSACTION, data, &reply);
return reply.readInt32();
}
- virtual void setPlayNotificationSounds(bool enabled)
+ virtual int formatVolume(String16 path)
{
Parcel data, reply;
data.writeInterfaceToken(IMountService::getInterfaceDescriptor());
- data.writeInt32(enabled ? 1 : 0);
- remote()->transact(SET_PLAY_NOTIFICATION_SOUNDS_TRANSACTION, data, &reply);
+ data.writeString16(path);
+ remote()->transact(FORMAT_VOLUME_TRANSACTION, data, &reply);
+ return reply.readInt32();
}
- virtual String16 getVolumeState(String16 mountPoint)
+ virtual String16 getVolumeState(String16 path)
{
uint32_t n;
Parcel data, reply;
data.writeInterfaceToken(IMountService::getInterfaceDescriptor());
- data.writeString16(mountPoint);
+ data.writeString16(path);
remote()->transact(GET_VOLUME_STATE_TRANSACTION, data, &reply);
return reply.readString16();
}
- virtual String16 createSecureContainer(String16 id, int sizeMb, String16 fstype, String16 key, int ownerUid)
+ virtual int createSecureContainer(String16 id, int sizeMb, String16 fstype, String16 key, int ownerUid)
{
uint32_t n;
Parcel data, reply;
data.writeString16(key);
data.writeInt32(ownerUid);
remote()->transact(CREATE_SECURE_CONTAINER_TRANSACTION, data, &reply);
- return reply.readString16();
+ return reply.readInt32();
}
- virtual void finalizeSecureContainer(String16 id)
+ virtual int finalizeSecureContainer(String16 id)
{
Parcel data, reply;
data.writeInterfaceToken(IMountService::getInterfaceDescriptor());
data.writeString16(id);
remote()->transact(FINALIZE_SECURE_CONTAINER_TRANSACTION, data, &reply);
+ return reply.readInt32();
}
- virtual void destroySecureContainer(String16 id)
+ virtual int destroySecureContainer(String16 id)
{
Parcel data, reply;
data.writeInterfaceToken(IMountService::getInterfaceDescriptor());
data.writeString16(id);
remote()->transact(DESTROY_SECURE_CONTAINER_TRANSACTION, data, &reply);
+ return reply.readInt32();
}
- virtual String16 mountSecureContainer(String16 id, String16 key, int ownerUid)
+ virtual int mountSecureContainer(String16 id, String16 key, int ownerUid)
{
Parcel data, reply;
data.writeInterfaceToken(IMountService::getInterfaceDescriptor());
data.writeString16(key);
data.writeInt32(ownerUid);
remote()->transact(MOUNT_SECURE_CONTAINER_TRANSACTION, data, &reply);
- return reply.readString16();
+ return reply.readInt32();
}
- virtual void unmountSecureContainer(String16 id)
+ virtual int unmountSecureContainer(String16 id)
{
Parcel data, reply;
data.writeInterfaceToken(IMountService::getInterfaceDescriptor());
data.writeString16(id);
remote()->transact(UNMOUNT_SECURE_CONTAINER_TRANSACTION, data, &reply);
+ return reply.readInt32();
}
- virtual void renameSecureContainer(String16 oldId, String16 newId)
+ virtual int renameSecureContainer(String16 oldId, String16 newId)
{
Parcel data, reply;
data.writeInterfaceToken(IMountService::getInterfaceDescriptor());
data.writeString16(oldId);
data.writeString16(newId);
remote()->transact(RENAME_SECURE_CONTAINER_TRANSACTION, data, &reply);
+ return reply.readInt32();
}
virtual String16 getSecureContainerPath(String16 id)