• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2010 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 package android.mtp;
18 
19 /**
20  * Java wrapper for MTP/PTP support as USB responder.
21  * {@hide}
22  */
23 public class MtpServer implements Runnable {
24 
25     private int mNativeContext; // accessed by native methods
26 
27     static {
28         System.loadLibrary("media_jni");
29     }
30 
MtpServer(MtpDatabase database, boolean usePtp)31     public MtpServer(MtpDatabase database, boolean usePtp) {
32         native_setup(database, usePtp);
33     }
34 
start()35     public void start() {
36         Thread thread = new Thread(this, "MtpServer");
37         thread.start();
38     }
39 
40     @Override
run()41     public void run() {
42         native_run();
43         native_cleanup();
44     }
45 
sendObjectAdded(int handle)46     public void sendObjectAdded(int handle) {
47         native_send_object_added(handle);
48     }
49 
sendObjectRemoved(int handle)50     public void sendObjectRemoved(int handle) {
51         native_send_object_removed(handle);
52     }
53 
addStorage(MtpStorage storage)54     public void addStorage(MtpStorage storage) {
55         native_add_storage(storage);
56     }
57 
removeStorage(MtpStorage storage)58     public void removeStorage(MtpStorage storage) {
59         native_remove_storage(storage.getStorageId());
60     }
61 
native_setup(MtpDatabase database, boolean usePtp)62     private native final void native_setup(MtpDatabase database, boolean usePtp);
native_run()63     private native final void native_run();
native_cleanup()64     private native final void native_cleanup();
native_send_object_added(int handle)65     private native final void native_send_object_added(int handle);
native_send_object_removed(int handle)66     private native final void native_send_object_removed(int handle);
native_add_storage(MtpStorage storage)67     private native final void native_add_storage(MtpStorage storage);
native_remove_storage(int storageId)68     private native final void native_remove_storage(int storageId);
69 }
70