blob: a32e4708d9e89c70fb488db4b12bc77f28516755 [file] [log] [blame]
The Android Open Source Projectd6054a32008-10-21 07:00:00 -07001/*
2 * Copyright (C) 2008 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#include <stdint.h>
18#include <sys/types.h>
19
20#include <utils/Parcel.h>
21
22#include <hardware/IMountService.h>
23
24namespace android {
25
26enum {
27 GET_MASS_STORAGE_ENABLED_TRANSACTION = IBinder::FIRST_CALL_TRANSACTION,
28 SET_MASS_STORAGE_ENABLED_TRANSACTION,
29 GET_MASS_STORAGE_CONNECTED_TRANSACTION,
30 MOUNT_MEDIA_TRANSACTION,
31 UNMOUNT_MEDIA_TRANSACTION
32};
33
34class BpMountService : public BpInterface<IMountService>
35{
36public:
37 BpMountService(const sp<IBinder>& impl)
38 : BpInterface<IMountService>(impl)
39 {
40 }
41
42 virtual bool getMassStorageEnabled()
43 {
44 uint32_t n;
45 Parcel data, reply;
46 data.writeInterfaceToken(IMountService::getInterfaceDescriptor());
47 remote()->transact(GET_MASS_STORAGE_ENABLED_TRANSACTION, data, &reply);
48 return reply.readInt32();
49 }
50
51 virtual void setMassStorageEnabled(bool enabled)
52 {
53 Parcel data, reply;
54 data.writeInterfaceToken(IMountService::getInterfaceDescriptor());
55 data.writeInt32(enabled ? 1 : 0);
56 remote()->transact(SET_MASS_STORAGE_ENABLED_TRANSACTION, data, &reply);
57 }
58
59 virtual bool getMassStorageConnected()
60 {
61 uint32_t n;
62 Parcel data, reply;
63 data.writeInterfaceToken(IMountService::getInterfaceDescriptor());
64 remote()->transact(GET_MASS_STORAGE_CONNECTED_TRANSACTION, data, &reply);
65 return reply.readInt32();
66 }
67
68 virtual void mountMedia(String16 mountPoint)
69 {
70 Parcel data, reply;
71 data.writeInterfaceToken(IMountService::getInterfaceDescriptor());
72 data.writeString16(mountPoint);
73 remote()->transact(MOUNT_MEDIA_TRANSACTION, data, &reply);
74 }
75
76 virtual void unmountMedia(String16 mountPoint)
77 {
78 Parcel data, reply;
79 data.writeInterfaceToken(IMountService::getInterfaceDescriptor());
80 data.writeString16(mountPoint);
81 remote()->transact(UNMOUNT_MEDIA_TRANSACTION, data, &reply);
82 }
83};
84
85IMPLEMENT_META_INTERFACE(MountService, "android.os.IMountService");
86
87
88};