OSDN Git Service

Kodak PIXPRO WPZ2 対応の準備。(LVがまだ)
[gokigen/A01d.git] / app / src / main / java / net / osdn / gokigen / a01d / camera / kodak / wrapper / KodakInterfaceProvider.java
1 package net.osdn.gokigen.a01d.camera.kodak.wrapper;
2
3 import android.app.Activity;
4 import android.util.Log;
5
6 import androidx.annotation.NonNull;
7
8 import net.osdn.gokigen.a01d.IInformationReceiver;
9 import net.osdn.gokigen.a01d.camera.ICameraConnection;
10 import net.osdn.gokigen.a01d.camera.ICameraInformation;
11 import net.osdn.gokigen.a01d.camera.ICameraStatus;
12 import net.osdn.gokigen.a01d.camera.ICameraStatusReceiver;
13 import net.osdn.gokigen.a01d.camera.ICameraStatusWatcher;
14 import net.osdn.gokigen.a01d.camera.ICaptureControl;
15 import net.osdn.gokigen.a01d.camera.IDisplayInjector;
16 import net.osdn.gokigen.a01d.camera.IFocusingControl;
17 import net.osdn.gokigen.a01d.camera.IFocusingModeNotify;
18 import net.osdn.gokigen.a01d.camera.ILiveViewControl;
19 import net.osdn.gokigen.a01d.camera.IZoomLensControl;
20 import net.osdn.gokigen.a01d.camera.kodak.IKodakInterfaceProvider;
21 import net.osdn.gokigen.a01d.camera.kodak.operation.KodakCaptureControl;
22 import net.osdn.gokigen.a01d.camera.kodak.operation.KodakFocusingControl;
23 import net.osdn.gokigen.a01d.camera.kodak.operation.KodakZoomLensControl;
24 import net.osdn.gokigen.a01d.camera.kodak.wrapper.command.IKodakCommandCallback;
25 import net.osdn.gokigen.a01d.camera.kodak.wrapper.command.IKodakCommandPublisher;
26 import net.osdn.gokigen.a01d.camera.kodak.wrapper.command.IKodakCommunication;
27 import net.osdn.gokigen.a01d.camera.kodak.wrapper.command.KodakCommandCommunicator;
28 import net.osdn.gokigen.a01d.camera.kodak.wrapper.connection.KodakConnection;
29 import net.osdn.gokigen.a01d.camera.kodak.wrapper.hardware.KodakCameraInformation;
30 import net.osdn.gokigen.a01d.camera.kodak.wrapper.liveview.KodakLiveViewControl;
31 import net.osdn.gokigen.a01d.camera.kodak.wrapper.status.IKodakRunModeHolder;
32 import net.osdn.gokigen.a01d.camera.kodak.wrapper.status.KodakRunMode;
33 import net.osdn.gokigen.a01d.camera.kodak.wrapper.status.KodakStatusChecker;
34 import net.osdn.gokigen.a01d.liveview.IAutoFocusFrameDisplay;
35 import net.osdn.gokigen.a01d.liveview.ICameraStatusUpdateNotify;
36 import net.osdn.gokigen.a01d.liveview.IIndicatorControl;
37 import net.osdn.gokigen.a01d.liveview.liveviewlistener.ILiveViewListener;
38
39 public class KodakInterfaceProvider implements IKodakInterfaceProvider, IDisplayInjector
40 {
41     private final String TAG = toString();
42
43     private static final int CONTROL_PORT = 9175;
44     private static final int LIVEVIEW_PORT = 9176;
45     private static final String CAMERA_IP = "172.16.0.254";
46
47     private final Activity activity;
48     private final KodakRunMode runmode;
49     private final KodakCameraInformation cameraInformation;
50     private KodakCaptureControl captureControl;
51     private KodakFocusingControl focusingControl;
52     private KodakConnection canonConnection;
53     private KodakCommandCommunicator commandPublisher;
54     private KodakLiveViewControl liveViewControl;
55     private KodakZoomLensControl zoomControl;
56     private KodakStatusChecker statusChecker;
57     private ICameraStatusUpdateNotify statusListener;
58     private IInformationReceiver informationReceiver;
59
60     public KodakInterfaceProvider(@NonNull Activity context, @NonNull ICameraStatusReceiver provider, @NonNull ICameraStatusUpdateNotify statusListener, @NonNull IInformationReceiver informationReceiver)
61     {
62         this.activity = context;
63         commandPublisher = new KodakCommandCommunicator(CAMERA_IP, CONTROL_PORT, true, false);
64         liveViewControl = new KodakLiveViewControl(context, CAMERA_IP, LIVEVIEW_PORT);
65         statusChecker = new KodakStatusChecker();
66         canonConnection = new KodakConnection(context, provider, this, statusChecker);
67         cameraInformation = new KodakCameraInformation();
68         zoomControl = new KodakZoomLensControl();
69         this.statusListener = statusListener;
70         this.runmode = new KodakRunMode();
71         this.informationReceiver = informationReceiver;
72     }
73
74     @Override
75     public void injectDisplay(IAutoFocusFrameDisplay frameDisplayer, IIndicatorControl indicator, IFocusingModeNotify focusingModeNotify)
76     {
77         Log.v(TAG, "injectDisplay()");
78         captureControl = new KodakCaptureControl(commandPublisher, frameDisplayer);
79         focusingControl = new KodakFocusingControl(activity, commandPublisher, frameDisplayer, indicator);
80     }
81
82     @Override
83     public ICameraConnection getCameraConnection()
84     {
85         return (canonConnection);
86     }
87
88     @Override
89     public ILiveViewControl getLiveViewControl()
90     {
91         return (liveViewControl);
92     }
93
94     @Override
95     public ILiveViewListener getLiveViewListener()
96     {
97         return (liveViewControl.getLiveViewListener());
98     }
99
100     @Override
101     public IFocusingControl getFocusingControl()
102     {
103         return (focusingControl);
104     }
105
106     @Override
107     public ICameraInformation getCameraInformation()
108     {
109         return (cameraInformation);
110     }
111
112     @Override
113     public IZoomLensControl getZoomLensControl()
114     {
115         return (zoomControl);
116     }
117
118     @Override
119     public ICaptureControl getCaptureControl()
120     {
121         return (captureControl);
122     }
123
124     @Override
125     public IDisplayInjector getDisplayInjector()
126     {
127         return (this);
128     }
129
130     @Override
131     public IKodakRunModeHolder getRunModeHolder()
132     {
133         return (runmode);
134     }
135
136     @Override
137     public IKodakCommandCallback getStatusHolder() {
138         return (statusChecker);
139     }
140
141     @Override
142     public IKodakCommandPublisher getCommandPublisher()
143     {
144         return (commandPublisher);
145     }
146
147     @Override
148     public IKodakCommunication getCommandCommunication() {
149         return (commandPublisher);
150     }
151
152     @Override
153     public ICameraStatusWatcher getCameraStatusWatcher()
154     {
155         return (statusChecker);
156     }
157
158     @Override
159     public ICameraStatusUpdateNotify getStatusListener()
160     {
161         return (statusListener);
162     }
163
164     @Override
165     public ICameraStatus getCameraStatusListHolder()
166     {
167         return (statusChecker);
168     }
169
170     @Override
171     public IInformationReceiver getInformationReceiver()
172     {
173         // ちょっとこの引き回しは気持ちがよくない...
174         return (informationReceiver);
175     }
176
177     @Override
178     public ICameraStatusWatcher getStatusWatcher()
179     {
180         return (statusChecker);
181     }
182 }