OSDN Git Service

Fuji対応。今度は表示側。
[gokigen/Gr2Control.git] / app / src / main / java / net / osdn / gokigen / gr2control / camera / olympus / wrapper / playback / OlyCameraPlaybackControl.java
1 package net.osdn.gokigen.gr2control.camera.olympus.wrapper.playback;
2
3 import android.graphics.BitmapFactory;
4 import android.util.Log;
5
6 import net.osdn.gokigen.gr2control.camera.ICameraFileInfo;
7 import net.osdn.gokigen.gr2control.camera.playback.CameraFileInfo;
8 import net.osdn.gokigen.gr2control.camera.playback.IContentInfoCallback;
9 import net.osdn.gokigen.gr2control.camera.playback.IDownloadContentCallback;
10 import net.osdn.gokigen.gr2control.camera.playback.ICameraContentListCallback;
11 import net.osdn.gokigen.gr2control.camera.playback.IDownloadThumbnailImageCallback;
12 import net.osdn.gokigen.gr2control.camera.playback.IPlaybackControl;
13 import net.osdn.gokigen.gr2control.camera.playback.ProgressEvent;
14
15 import java.util.ArrayList;
16 import java.util.List;
17 import java.util.Map;
18
19 import androidx.annotation.NonNull;
20 import androidx.annotation.Nullable;
21
22 import jp.co.olympus.camerakit.OLYCamera;
23 import jp.co.olympus.camerakit.OLYCameraFileInfo;
24
25 public class OlyCameraPlaybackControl implements IPlaybackControl
26 {
27     private final String TAG = toString();
28     private final OLYCamera camera;
29     private List<OLYCamera> list;
30
31     public OlyCameraPlaybackControl(@NonNull OLYCamera camera)
32     {
33         this.camera = camera;
34     }
35
36     @Override
37     public String getRawFileSuffix()
38     {
39         return (".ORF");
40     }
41
42     @Override
43     public void downloadContentList(@NonNull final ICameraContentListCallback callback)
44     {
45         try
46         {
47             camera.downloadContentList(new OLYCamera.DownloadContentListCallback() {
48                 @Override
49                 public void onCompleted(List<OLYCameraFileInfo> list)
50                 {
51                     List<ICameraFileInfo> list2 = new ArrayList<>();
52                     for (OLYCameraFileInfo fileInfo : list)
53                     {
54                         CameraFileInfo cameraFileInfo = new CameraFileInfo(fileInfo.getDirectoryPath(), fileInfo.getFilename());
55                         cameraFileInfo.setDate(fileInfo.getDatetime());
56                         list2.add(cameraFileInfo);
57                     }
58                     callback.onCompleted(list2);
59                 }
60
61                 @Override
62                 public void onErrorOccurred(Exception e)
63                 {
64                     callback.onErrorOccurred(e);
65                 }
66             });
67         }
68         catch (Exception e)
69         {
70             e.printStackTrace();
71             callback.onErrorOccurred(e);
72         }
73     }
74
75     @Override
76     public void getContentInfo(@Nullable String path, @NonNull String name, @NonNull IContentInfoCallback callback)
77     {
78         try
79         {
80             // ここは使っていないから何もしない
81             Log.v(TAG, "getContentInfo() : " + name);
82         }
83         catch (Exception e)
84         {
85             e.printStackTrace();
86         }
87         callback.onErrorOccurred(new NullPointerException());
88     }
89
90     @Override
91     public void updateCameraFileInfo(ICameraFileInfo info)
92     {
93         try
94         {
95             Log.v(TAG, "updateCameraFileInfo() : " + info.getFilename());
96         }
97         catch (Exception e)
98         {
99             e.printStackTrace();
100         }
101     }
102
103     @Override
104     public void downloadContentScreennail(@Nullable String path, @NonNull String name, @NonNull final IDownloadThumbnailImageCallback callback)
105     {
106         try
107         {
108             camera.downloadContentScreennail(name, new OLYCamera.DownloadImageCallback() {
109                 @Override
110                 public void onProgress(OLYCamera.ProgressEvent progressEvent)
111                 {
112                     // なにもしない
113                 }
114
115                 @Override
116                 public void onCompleted(byte[] bytes, Map<String, Object> map)
117                 {
118                     try
119                     {
120                         callback.onCompleted(BitmapFactory.decodeByteArray(bytes, 0, bytes.length), map);
121                     }
122                     catch (Throwable t)
123                     {
124                         t.printStackTrace();
125                         callback.onErrorOccurred(new NullPointerException());
126                     }
127                 }
128
129                 @Override
130                 public void onErrorOccurred(Exception e)
131                 {
132                     callback.onErrorOccurred(e);
133                 }
134             });
135         }
136         catch (Exception e)
137         {
138             e.printStackTrace();
139             callback.onErrorOccurred(e);
140         }
141     }
142
143     @Override
144     public void downloadContentThumbnail(@Nullable String path, @NonNull String name, @NonNull final IDownloadThumbnailImageCallback callback)
145     {
146         try
147         {
148             camera.downloadContentThumbnail(name, new OLYCamera.DownloadImageCallback() {
149                 @Override
150                 public void onProgress(OLYCamera.ProgressEvent progressEvent)
151                 {
152                     // なにもしない
153                 }
154
155                 @Override
156                 public void onCompleted(byte[] bytes, Map<String, Object> map)
157                 {
158                     try
159                     {
160                         callback.onCompleted(BitmapFactory.decodeByteArray(bytes, 0, bytes.length), map);
161                     }
162                     catch (Throwable t)
163                     {
164                         t.printStackTrace();
165                         callback.onErrorOccurred(new NullPointerException());
166                     }
167                 }
168
169                 @Override
170                 public void onErrorOccurred(Exception e)
171                 {
172                     callback.onErrorOccurred(e);
173                 }
174             });
175         }
176         catch (Exception e)
177         {
178             e.printStackTrace();
179             callback.onErrorOccurred(e);
180         }
181     }
182
183     @Override
184     public void downloadContent(@Nullable String path,  @NonNull String name, boolean isSmallSize, @NonNull final IDownloadContentCallback callback)
185     {
186         try
187         {
188             camera.downloadLargeContent(name, new OLYCamera.DownloadLargeContentCallback() {
189                 @Override
190                 public void onProgress(byte[] bytes, OLYCamera.ProgressEvent progressEvent)
191                 {
192                     try
193                     {
194                         callback.onProgress(bytes, bytes.length, new ProgressEvent(progressEvent.getProgress(), null));
195                     }
196                     catch (Exception e)
197                     {
198                         e.printStackTrace();
199                     }
200                 }
201
202                 @Override
203                 public void onCompleted()
204                 {
205                     try
206                     {
207                         callback.onCompleted();
208                     }
209                     catch (Exception e)
210                     {
211                         e.printStackTrace();
212                     }
213                 }
214
215                 @Override
216                 public void onErrorOccurred(Exception e)
217                 {
218                     try
219                     {
220                         callback.onErrorOccurred(e);
221                     }
222                     catch (Exception ee)
223                     {
224                         ee.printStackTrace();
225                     }
226                 }
227             });
228         }
229         catch (Exception e)
230         {
231             e.printStackTrace();
232             callback.onErrorOccurred(e);
233         }
234     }
235
236     @Override
237     public void showPictureStarted()
238     {
239
240     }
241
242     @Override
243     public void showPictureFinished()
244     {
245
246     }
247 }