From 8fb143e2eb870dc3e6ddb4e6bd702d82dea8b3d9 Mon Sep 17 00:00:00 2001 From: MRSa Date: Sat, 30 Nov 2019 09:25:09 +0900 Subject: [PATCH] =?utf8?q?Nikon=E3=81=AE=E6=8E=A5=E7=B6=9A=E6=80=A7?= =?utf8?q?=E6=94=B9=E5=96=84=E3=81=AE=E6=BA=96=E5=82=99=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nikon/wrapper/NikonInterfaceProvider.java | 5 +- .../nikon/wrapper/status/NikonStatusChecker.java | 438 +++++++++++++++++++++ .../nikon/wrapper/status/NikonStatusHolder.java | 207 ++++++++++ .../ptpip/wrapper/PtpIpInterfaceProvider.java | 6 +- .../NikonCameraConnectSequenceForPlayback.java | 5 +- .../ptpip/wrapper/connection/NikonConnection.java | 6 +- ...geReceiver.java => CanonFullImageReceiver.java} | 6 +- ...ybackControl.java => CanonPlaybackControl.java} | 14 +- ...iver.java => CanonScreennailImageReceiver.java} | 8 +- ...eReceiver.java => CanonSmallImageReceiver.java} | 6 +- 10 files changed, 674 insertions(+), 27 deletions(-) create mode 100644 app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/nikon/wrapper/status/NikonStatusChecker.java create mode 100644 app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/nikon/wrapper/status/NikonStatusHolder.java rename app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/playback/{PtpIpFullImageReceiver.java => CanonFullImageReceiver.java} (97%) rename app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/playback/{PtpIpPlaybackControl.java => CanonPlaybackControl.java} (94%) rename app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/playback/{PtpIpScreennailImageReceiver.java => CanonScreennailImageReceiver.java} (96%) rename app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/playback/{PtpIpSmallImageReceiver.java => CanonSmallImageReceiver.java} (98%) diff --git a/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/nikon/wrapper/NikonInterfaceProvider.java b/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/nikon/wrapper/NikonInterfaceProvider.java index 8782b0f..5c8c535 100644 --- a/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/nikon/wrapper/NikonInterfaceProvider.java +++ b/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/nikon/wrapper/NikonInterfaceProvider.java @@ -29,6 +29,7 @@ import net.osdn.gokigen.pkremote.camera.interfaces.status.ICameraStatusReceiver; import net.osdn.gokigen.pkremote.camera.interfaces.status.ICameraStatusWatcher; import net.osdn.gokigen.pkremote.camera.vendor.nikon.INikonInterfaceProvider; import net.osdn.gokigen.pkremote.camera.vendor.nikon.wrapper.playback.NikonPlaybackControl; +import net.osdn.gokigen.pkremote.camera.vendor.nikon.wrapper.status.NikonStatusChecker; import net.osdn.gokigen.pkremote.camera.vendor.ptpip.operation.PtpIpZoomControl; import net.osdn.gokigen.pkremote.camera.vendor.ptpip.wrapper.PtpIpButtonControl; import net.osdn.gokigen.pkremote.camera.vendor.ptpip.wrapper.PtpIpHardwareStatus; @@ -67,7 +68,7 @@ public class NikonInterfaceProvider implements INikonInterfaceProvider, IDisplay private PtpIpZoomControl zoomControl; //private PtpIpCaptureControl captureControl; //private PtpIpFocusingControl focusingControl; - private PtpIpStatusChecker statusChecker; + private NikonStatusChecker statusChecker; private ICameraStatusUpdateNotify statusListener; private NikonPlaybackControl playbackControl; private IInformationReceiver informationReceiver; @@ -88,7 +89,7 @@ public class NikonInterfaceProvider implements INikonInterfaceProvider, IDisplay commandPublisher = new PtpIpCommandPublisher(ipAddress, CONTROL_PORT); liveViewControl = new PtpIpLiveViewControl(context, ipAddress, STREAM_PORT); asyncReceiver = new PtpIpAsyncResponseReceiver(ipAddress, ASYNC_RESPONSE_PORT); - statusChecker = new PtpIpStatusChecker(activity, commandPublisher, ipAddress, EVENT_PORT); + statusChecker = new NikonStatusChecker(activity, commandPublisher, ipAddress, EVENT_PORT); nikonConnection = new NikonConnection(context, provider, this, statusChecker); zoomControl = new PtpIpZoomControl(); this.statusListener = statusListener; diff --git a/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/nikon/wrapper/status/NikonStatusChecker.java b/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/nikon/wrapper/status/NikonStatusChecker.java new file mode 100644 index 0000000..720253d --- /dev/null +++ b/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/nikon/wrapper/status/NikonStatusChecker.java @@ -0,0 +1,438 @@ +package net.osdn.gokigen.pkremote.camera.vendor.nikon.wrapper.status; + +import android.app.Activity; +import android.util.Log; + +import androidx.annotation.NonNull; + +import net.osdn.gokigen.pkremote.camera.interfaces.liveview.ICameraStatusUpdateNotify; +import net.osdn.gokigen.pkremote.camera.interfaces.status.ICameraStatus; +import net.osdn.gokigen.pkremote.camera.interfaces.status.ICameraStatusWatcher; +import net.osdn.gokigen.pkremote.camera.vendor.ptpip.wrapper.command.IPtpIpCommand; +import net.osdn.gokigen.pkremote.camera.vendor.ptpip.wrapper.command.IPtpIpCommandCallback; +import net.osdn.gokigen.pkremote.camera.vendor.ptpip.wrapper.command.IPtpIpCommandPublisher; +import net.osdn.gokigen.pkremote.camera.vendor.ptpip.wrapper.command.IPtpIpMessages; +import net.osdn.gokigen.pkremote.camera.vendor.ptpip.wrapper.command.messages.specific.CanonInitEventRequest; + +import java.io.BufferedReader; +import java.io.DataOutputStream; +import java.io.InputStream; +import java.net.Socket; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import static net.osdn.gokigen.pkremote.camera.utils.SimpleLogDumper.dump_bytes; + +public class NikonStatusChecker implements IPtpIpCommandCallback, ICameraStatusWatcher, ICameraStatus +{ + private final String TAG = toString(); + + private static final int BUFFER_SIZE = 1024 * 1024 + 8; + private static final int STATUS_MESSAGE_HEADER_SIZE = 14; + private int sleepMs; + private final IPtpIpCommandPublisher issuer; + private ICameraStatusUpdateNotify notifier = null; + private NikonStatusHolder statusHolder; + private boolean whileFetching = false; + private boolean logcat = false; + private final String ipAddress; + private final int portNumber; + + private Socket socket = null; + private DataOutputStream dos = null; + private BufferedReader bufferedReader = null; + private int eventConnectionNumber = 0; + + public NikonStatusChecker(@NonNull Activity activity, @NonNull IPtpIpCommandPublisher issuer, @NonNull String ip, int portNumber) + { + this.issuer = issuer; + this.statusHolder = new NikonStatusHolder(); + this.ipAddress = ip; + this.portNumber = portNumber; + Log.v(TAG, "POLLING WAIT : " + sleepMs); + } + + @Override + public void onReceiveProgress(int currentBytes, int totalBytes, byte[] body) + { + Log.v(TAG, " " + currentBytes + "/" + totalBytes); + } + + @Override + public boolean isReceiveMulti() + { + return (false); + } + + @Override + public void receivedMessage(int id, byte[] data) + { + try + { + logcat("receivedMessage : " + id + ", length: " + data.length); + if (id == IPtpIpMessages.SEQ_EVENT_INITIALIZE) + { + // 終わる + Log.v(TAG, " ----- PTP-IP Connection is ESTABLISHED. -----"); + return; + } + if (data.length < STATUS_MESSAGE_HEADER_SIZE) + { + Log.v(TAG, "received status length is short. (" + data.length + " bytes.)"); + return; + } + + int nofStatus = (data[13] * 256) + data[12]; + int statusCount = 0; + int index = STATUS_MESSAGE_HEADER_SIZE; + while ((statusCount < nofStatus)&&(index < data.length)) + { + int dataId = ((((int)data[index + 1]) & 0xff) * 256) + (((int) data[index]) & 0xff); + statusHolder.updateValue(notifier, dataId, data[index + 2], data[index + 3], data[index +4], data[index + 5]); + index = index + 6; + statusCount++; + } + } + catch (Exception e) + { + e.printStackTrace(); + } + } + + @Override + public List getStatusList(String key) + { + try + { + if (statusHolder == null) + { + return (new ArrayList<>()); + } + return (statusHolder.getAvailableItemList(key)); + } + catch (Exception e) + { + e.printStackTrace(); + } + return (new ArrayList<>()); + } + + @Override + public String getStatus(String key) + { + try + { + if (statusHolder == null) + { + return (""); + } + return (statusHolder.getItemStatus(key)); + } + catch (Exception e) + { + e.printStackTrace(); + } + return (""); + } + + @Override + public void setStatus(String key, String value) + { + try + { + if (logcat) + { + Log.v(TAG, "setStatus(" + key + ", " + value + ")"); + } + + // ここで設定を行う。 + } + catch (Exception e) + { + e.printStackTrace(); + } + } + + @Override + public void startStatusWatch(@NonNull ICameraStatusUpdateNotify notifier) + { + if (whileFetching) + { + Log.v(TAG, "startStatusWatch() already starting."); + return; + } + try + { + final IPtpIpCommandCallback callback = this; + this.notifier = notifier; + whileFetching = true; + + // セッションをオープンする + boolean isConnect = connect(); + if (!isConnect) + { + Log.v(TAG, " CONNECT FAIL...(EVENT) : " + ipAddress + " " + portNumber); + } + issueCommand(new CanonInitEventRequest(this, eventConnectionNumber)); + +/* + Thread thread = new Thread(new Runnable() + { + @Override + public void run() + { + logcat("Start status watch. : " + sleepMs + "ms"); + while (whileFetching) + { + try + { + issuer.enqueueCommand(new StatusRequestMessage(callback)); + Thread.sleep(sleepMs); + } + catch (Exception e) + { + e.printStackTrace(); + } + } + logcat("STATUS WATCH STOPPED."); + } + }); + thread.start(); + + // 切断する + disconnect(); +*/ + } + catch (Exception e) + { + e.printStackTrace(); + } + } + + @Override + public void stopStatusWatch() + { + Log.v(TAG, "stoptStatusWatch()"); + whileFetching = false; + this.notifier = null; + } + + private void logcat(String message) + { + if (logcat) + { + Log.v(TAG, message); + } + } + + private boolean connect() + { + try + { + socket = new Socket(ipAddress, portNumber); + return (true); + } + catch (Exception e) + { + e.printStackTrace(); + socket = null; + } + return (false); + } + + private void disconnect() + { + // ストリームを全部閉じる + try + { + if (dos != null) + { + dos.close(); + } + } + catch (Exception e) + { + e.printStackTrace(); + } + dos = null; + + try + { + if (bufferedReader != null) + { + bufferedReader.close(); + } + } + catch (Exception e) + { + e.printStackTrace(); + } + bufferedReader = null; + + try + { + if (socket != null) + { + socket.close(); + } + } + catch (Exception e) + { + e.printStackTrace(); + } + socket = null; + System.gc(); + } + + + public void setEventConnectionNumber(int connectionNumber) + { + eventConnectionNumber = connectionNumber; + } + + private void issueCommand(@NonNull IPtpIpCommand command) + { + try + { + //Log.v(TAG, "issueCommand : " + command.getId()); + byte[] commandBody = command.commandBody(); + if (commandBody != null) + { + // コマンドボディが入っていた場合には、コマンド送信(入っていない場合は受信待ち) + send_to_camera(command.dumpLog(), commandBody); + } + receive_from_camera(command.dumpLog(), command.getId(), command.responseCallback(), command.receiveAgainShortLengthMessage(), command.receiveDelayMs()); + } + catch (Exception e) + { + e.printStackTrace(); + } + } + + /** + * カメラにコマンドを送信する(メイン部分) + * + */ + private void send_to_camera(boolean isDumpReceiveLog, byte[] byte_array) + { + try + { + dos = new DataOutputStream(socket.getOutputStream()); // ここにいたらいけない? + + // メッセージボディを加工: 最初に4バイトのレングス長をつける + byte[] sendData = new byte[byte_array.length + 4]; + + sendData[0] = (byte) (byte_array.length + 4); + sendData[1] = 0x00; + sendData[2] = 0x00; + sendData[3] = 0x00; + System.arraycopy(byte_array,0,sendData,4, byte_array.length); + + if (isDumpReceiveLog) + { + // ログに送信メッセージを出力する + dump_bytes("SEND[" + sendData.length + "] ", sendData); + } + + // (データを)送信 + dos.write(sendData); + dos.flush(); + } + catch (Exception e) + { + e.printStackTrace(); + } + } + + + /** + * カメラからにコマンドの結果を受信する(メイン部分) + * + */ + private void receive_from_camera(boolean isDumpReceiveLog, int id, IPtpIpCommandCallback callback, boolean receiveAgain, int delayMs) { + try { + sleep(delayMs); + + boolean isFirstTime = true; + int totalReadBytes; + int receive_message_buffer_size = BUFFER_SIZE; + byte[] byte_array = new byte[receive_message_buffer_size]; + InputStream is = socket.getInputStream(); + if (is != null) { + int read_bytes = is.read(byte_array, 0, receive_message_buffer_size); + byte[] receive_body; + if (read_bytes > 4) { + if (receiveAgain) { + int length = ((((int) byte_array[3]) & 0xff) << 24) + ((((int) byte_array[2]) & 0xff) << 16) + ((((int) byte_array[1]) & 0xff) << 8) + (((int) byte_array[0]) & 0xff); + if (length > receive_message_buffer_size) { + Log.v(TAG, "+++++ TOTAL RECEIVE MESSAGE SIZE IS " + length + " +++++"); + } + totalReadBytes = read_bytes; + while ((length > totalReadBytes) || ((length == read_bytes) && ((int) byte_array[4] == 0x02))) { + // データについて、もう一回受信が必要な場合... + if (isDumpReceiveLog) { + Log.v(TAG, "--- RECEIVE AGAIN --- [" + length + "(" + read_bytes + ") " + byte_array[4] + "] "); + } + sleep(delayMs); + int read_bytes2 = is.read(byte_array, read_bytes, receive_message_buffer_size - read_bytes); + if (read_bytes2 > 0) { + read_bytes = read_bytes + read_bytes2; + totalReadBytes = totalReadBytes + read_bytes2; + } else { + // よみだし終了。 + Log.v(TAG, "FINISHED RECEIVE... "); + break; + } + if (callback != null) { + if (callback.isReceiveMulti()) { + int offset = 0; + if (isFirstTime) { + // 先頭のヘッダ部分をカットして送る + offset = 12; + isFirstTime = false; + //Log.v(TAG, " FIRST TIME : " + read_bytes + " " + offset); + } + callback.onReceiveProgress(read_bytes - offset, length, Arrays.copyOfRange(byte_array, offset, read_bytes)); + read_bytes = 0; + } else { + callback.onReceiveProgress(read_bytes, length, null); + } + } + } + } + receive_body = Arrays.copyOfRange(byte_array, 0, read_bytes); + } else { + receive_body = new byte[1]; + } + if (isDumpReceiveLog) { + // ログに受信メッセージを出力する + Log.v(TAG, " receive_from_camera() : " + read_bytes + " bytes."); + dump_bytes("RECV[" + receive_body.length + "] ", receive_body); + } + if (callback != null) { + if (callback.isReceiveMulti()) { + callback.receivedMessage(id, null); + } else { + callback.receivedMessage(id, receive_body); + //callback.receivedMessage(id, Arrays.copyOfRange(receive_body, 0, receive_body.length)); + } + } + } + } catch (Throwable e) { + e.printStackTrace(); + } + } + + private void sleep(int delayMs) + { + try + { + Thread.sleep(delayMs); + } + catch (Exception e) + { + e.printStackTrace(); + } + } +} diff --git a/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/nikon/wrapper/status/NikonStatusHolder.java b/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/nikon/wrapper/status/NikonStatusHolder.java new file mode 100644 index 0000000..f111a7d --- /dev/null +++ b/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/nikon/wrapper/status/NikonStatusHolder.java @@ -0,0 +1,207 @@ +package net.osdn.gokigen.pkremote.camera.vendor.nikon.wrapper.status; + +import android.util.Log; +import android.util.SparseIntArray; + +import androidx.annotation.NonNull; +import androidx.collection.SparseArrayCompat; + +import net.osdn.gokigen.pkremote.camera.interfaces.liveview.ICameraStatusUpdateNotify; + +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +//class NikonStatusHolder implements IPtpIpCameraProperties +class NikonStatusHolder +{ + private final String TAG = toString(); + private SparseIntArray statusHolder; + private SparseArrayCompat statusNameArray; + + NikonStatusHolder() + { + statusHolder = new SparseIntArray(); + statusHolder.clear(); + + statusNameArray = new SparseArrayCompat<>(); + prepareStatusNameArray(); + } + + private void prepareStatusNameArray() + { +/* + statusNameArray.clear(); + statusNameArray.append(BATTERY_LEVEL, BATTERY_LEVEL_STR); + statusNameArray.append(WHITE_BALANCE, WHITE_BALANCE_STR); + statusNameArray.append(APERTURE, APERTURE_STR); + statusNameArray.append(FOCUS_MODE, FOCUS_MODE_STR); + statusNameArray.append(SHOOTING_MODE, SHOOTING_MODE_STR); + statusNameArray.append(FLASH, FLASH_STR); + statusNameArray.append(EXPOSURE_COMPENSATION, EXPOSURE_COMPENSATION_STR); + statusNameArray.append(SELF_TIMER, SELF_TIMER_STR); + statusNameArray.append(FILM_SIMULATION, FILM_SIMULATION_STR); + statusNameArray.append(IMAGE_FORMAT, IMAGE_FORMAT_STR); + statusNameArray.append(RECMODE_ENABLE, RECMODE_ENABLE_STR); + statusNameArray.append(F_SS_CONTROL, F_SS_CONTROL_STR); + statusNameArray.append(ISO, ISO_STR); + statusNameArray.append(MOVIE_ISO, MOVIE_ISO_STR); + statusNameArray.append(FOCUS_POINT, FOCUS_POINT_STR); + statusNameArray.append(DEVICE_ERROR, DEVICE_ERROR_STR); + statusNameArray.append(IMAGE_FILE_COUNT, IMAGE_FILE_COUNT_STR); + statusNameArray.append(SDCARD_REMAIN_SIZE, SDCARD_REMAIN_SIZE_STR); + statusNameArray.append(FOCUS_LOCK, FOCUS_LOCK_STR); + statusNameArray.append(MOVIE_REMAINING_TIME, MOVIE_REMAINING_TIME_STR); + statusNameArray.append(SHUTTER_SPEED, SHUTTER_SPEED_STR); + statusNameArray.append(IMAGE_ASPECT,IMAGE_ASPECT_STR); + statusNameArray.append(BATTERY_LEVEL_2, BATTERY_LEVEL_2_STR); + + statusNameArray.append(UNKNOWN_DF00, UNKNOWN_DF00_STR); + statusNameArray.append(PICTURE_JPEG_COUNT, PICTURE_JPEG_COUNT_STR); + statusNameArray.append(UNKNOWN_D400, UNKNOWN_D400_STR); + statusNameArray.append(UNKNOWN_D401, UNKNOWN_D401_STR); + statusNameArray.append(UNKNOWN_D52F, UNKNOWN_D52F_STR); +*/ + } + + + void updateValue(ICameraStatusUpdateNotify notifier, int id, byte data0, byte data1, byte data2, byte data3) + { + try + { + int value = ((((int) data3) & 0xff) << 24) + ((((int) data2) & 0xff) << 16) + ((((int) data1) & 0xff) << 8) + (((int) data0) & 0xff); + int currentValue = statusHolder.get(id, -1); + Log.v(TAG, "STATUS ID: " + id + " value : " + value + " (" + currentValue + ")"); + statusHolder.put(id, value); + if (currentValue != value) + { + //Log.v(TAG, "STATUS ID: " + id + " value : " + currentValue + " -> " + value); + if (notifier != null) + { + updateDetected(notifier, id, currentValue, value); + } + } + } + catch (Exception e) + { + e.printStackTrace(); + } + } + + private void updateDetected(@NonNull ICameraStatusUpdateNotify notifier, int id, int previous, int current) + { + try + { + String idName = statusNameArray.get(id, "Unknown"); + Log.v(TAG, String.format(Locale.US,"<< UPDATE STATUS >> id: 0x%04x[%s] 0x%08x(%d) -> 0x%08x(%d)", id, idName, previous, previous, current, current)); + //Log.v(TAG, "updateDetected(ID: " + id + " [" + idName + "] " + previous + " -> " + current + " )"); +/* + if (id == FOCUS_LOCK) + { + if (current == 1) + { + // focus Lock + notifier.updateFocusedStatus(true, true); + } + else + { + // focus unlock + notifier.updateFocusedStatus(false, false); + } + } +*/ + } + catch (Exception e) + { + e.printStackTrace(); + } + } + + /** + * 認識したカメラのステータス名称のリストを応答する + * + */ + private List getAvailableStatusNameList() + { + ArrayList selection = new ArrayList<>(); + try + { + for (int index = 0; index < statusHolder.size(); index++) + { + int key = statusHolder.keyAt(index); + selection.add(statusNameArray.get(key, String.format(Locale.US, "0x%04x", key))); + } + } + catch (Exception e) + { + e.printStackTrace(); + } + return (selection); + + } + + List getAvailableItemList(String listKey) + { + if (listKey == null) + { + // アイテム名の一覧を応答する + return (getAvailableStatusNameList()); + } + + ///// 選択可能なステータスの一覧を取得する : でも以下はアイテム名の一覧... ///// + ArrayList selection = new ArrayList<>(); + try + { + for (int index = 0; index < statusHolder.size(); index++) + { + int key = statusHolder.keyAt(index); + selection.add(statusNameArray.get(key)); + } + } + catch (Exception e) + { + e.printStackTrace(); + } + return (selection); + } + + String getItemStatus(String key) + { + try + { + int strIndex = key.indexOf("x"); + Log.v(TAG, "getItemStatus() : " + key + " [" + strIndex + "]"); + if (strIndex >= 1) + { + key = key.substring(strIndex + 1); + try + { + int id = Integer.parseInt(key, 16); + int value = statusHolder.get(id); + Log.v(TAG, "getItemStatus() value : " + value); + return (value + ""); + } + catch (Exception e) + { + e.printStackTrace(); + } + } + + for (int index = 0; index < statusNameArray.size(); index++) + { + int id = statusNameArray.keyAt(index); + String strKey = statusNameArray.valueAt(index); + if (key.contentEquals(strKey)) + { + int value = statusHolder.get(id); + return (value + ""); + } + } + } + catch (Exception e) + { + e.printStackTrace(); + } + return ("? [" + key + "]"); + } +} diff --git a/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/PtpIpInterfaceProvider.java b/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/PtpIpInterfaceProvider.java index e94354b..eb9cf2c 100644 --- a/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/PtpIpInterfaceProvider.java +++ b/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/PtpIpInterfaceProvider.java @@ -34,7 +34,7 @@ import net.osdn.gokigen.pkremote.camera.vendor.ptpip.wrapper.command.PtpIpAsyncR import net.osdn.gokigen.pkremote.camera.vendor.ptpip.wrapper.command.PtpIpCommandPublisher; import net.osdn.gokigen.pkremote.camera.vendor.ptpip.wrapper.connection.CanonConnection; import net.osdn.gokigen.pkremote.camera.vendor.ptpip.wrapper.liveview.PtpIpLiveViewControl; -import net.osdn.gokigen.pkremote.camera.vendor.ptpip.wrapper.playback.PtpIpPlaybackControl; +import net.osdn.gokigen.pkremote.camera.vendor.ptpip.wrapper.playback.CanonPlaybackControl; import net.osdn.gokigen.pkremote.camera.vendor.ptpip.wrapper.status.IPtpIpRunModeHolder; import net.osdn.gokigen.pkremote.camera.vendor.ptpip.wrapper.status.PtpIpStatusChecker; @@ -61,7 +61,7 @@ public class PtpIpInterfaceProvider implements IPtpIpInterfaceProvider, IDisplay //private PtpIpFocusingControl focusingControl; private PtpIpStatusChecker statusChecker; private ICameraStatusUpdateNotify statusListener; - private PtpIpPlaybackControl playbackControl; + private CanonPlaybackControl playbackControl; private IInformationReceiver informationReceiver; public PtpIpInterfaceProvider(@NonNull Activity context, @NonNull ICameraStatusReceiver provider, @NonNull ICameraStatusUpdateNotify statusListener, @NonNull IInformationReceiver informationReceiver) @@ -77,7 +77,7 @@ public class PtpIpInterfaceProvider implements IPtpIpInterfaceProvider, IDisplay this.runmode = new PtpIpRunMode(); this.hardwareStatus = new PtpIpHardwareStatus(); this.ptpIpButtonControl = new PtpIpButtonControl(); - this.playbackControl = new PtpIpPlaybackControl(activity, this); + this.playbackControl = new CanonPlaybackControl(activity, this); this.informationReceiver = informationReceiver; } diff --git a/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/connection/NikonCameraConnectSequenceForPlayback.java b/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/connection/NikonCameraConnectSequenceForPlayback.java index b39ec0f..3fe8be1 100644 --- a/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/connection/NikonCameraConnectSequenceForPlayback.java +++ b/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/connection/NikonCameraConnectSequenceForPlayback.java @@ -10,6 +10,7 @@ import net.osdn.gokigen.pkremote.R; import net.osdn.gokigen.pkremote.camera.interfaces.control.ICameraConnection; import net.osdn.gokigen.pkremote.camera.interfaces.status.ICameraStatusReceiver; import net.osdn.gokigen.pkremote.camera.vendor.nikon.INikonInterfaceProvider; +import net.osdn.gokigen.pkremote.camera.vendor.nikon.wrapper.status.NikonStatusChecker; import net.osdn.gokigen.pkremote.camera.vendor.ptpip.wrapper.command.IPtpIpCommandCallback; import net.osdn.gokigen.pkremote.camera.vendor.ptpip.wrapper.command.IPtpIpCommandPublisher; import net.osdn.gokigen.pkremote.camera.vendor.ptpip.wrapper.command.IPtpIpMessages; @@ -26,10 +27,10 @@ public class NikonCameraConnectSequenceForPlayback implements Runnable, IPtpIpCo private final ICameraStatusReceiver cameraStatusReceiver; private final INikonInterfaceProvider interfaceProvider; private final IPtpIpCommandPublisher commandIssuer; - private final PtpIpStatusChecker statusChecker; + private final NikonStatusChecker statusChecker; private boolean isDumpLog = false; - NikonCameraConnectSequenceForPlayback(@NonNull Activity context, @NonNull ICameraStatusReceiver statusReceiver, @NonNull final ICameraConnection cameraConnection, @NonNull INikonInterfaceProvider interfaceProvider, @NonNull PtpIpStatusChecker statusChecker) + NikonCameraConnectSequenceForPlayback(@NonNull Activity context, @NonNull ICameraStatusReceiver statusReceiver, @NonNull final ICameraConnection cameraConnection, @NonNull INikonInterfaceProvider interfaceProvider, @NonNull NikonStatusChecker statusChecker) { Log.v(TAG, " NikonCameraConnectSequenceForPlayback"); this.context = context; diff --git a/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/connection/NikonConnection.java b/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/connection/NikonConnection.java index 17b8d5d..6396e31 100644 --- a/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/connection/NikonConnection.java +++ b/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/connection/NikonConnection.java @@ -19,7 +19,7 @@ import net.osdn.gokigen.pkremote.R; import net.osdn.gokigen.pkremote.camera.interfaces.control.ICameraConnection; import net.osdn.gokigen.pkremote.camera.interfaces.status.ICameraStatusReceiver; import net.osdn.gokigen.pkremote.camera.vendor.nikon.INikonInterfaceProvider; -import net.osdn.gokigen.pkremote.camera.vendor.ptpip.wrapper.status.PtpIpStatusChecker; +import net.osdn.gokigen.pkremote.camera.vendor.nikon.wrapper.status.NikonStatusChecker; import java.util.concurrent.Executor; import java.util.concurrent.Executors; @@ -32,10 +32,10 @@ public class NikonConnection implements ICameraConnection private final INikonInterfaceProvider interfaceProvider; private final BroadcastReceiver connectionReceiver; private final Executor cameraExecutor = Executors.newFixedThreadPool(1); - private final PtpIpStatusChecker statusChecker; + private final NikonStatusChecker statusChecker; private CameraConnectionStatus connectionStatus = CameraConnectionStatus.UNKNOWN; - public NikonConnection(@NonNull final Activity context, @NonNull final ICameraStatusReceiver statusReceiver, @NonNull INikonInterfaceProvider interfaceProvider, @NonNull PtpIpStatusChecker statusChecker) + public NikonConnection(@NonNull final Activity context, @NonNull final ICameraStatusReceiver statusReceiver, @NonNull INikonInterfaceProvider interfaceProvider, @NonNull NikonStatusChecker statusChecker) { Log.v(TAG, "NikonConnection()"); this.context = context; diff --git a/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/playback/PtpIpFullImageReceiver.java b/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/playback/CanonFullImageReceiver.java similarity index 97% rename from app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/playback/PtpIpFullImageReceiver.java rename to app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/playback/CanonFullImageReceiver.java index bfa7ca2..fc49f1f 100644 --- a/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/playback/PtpIpFullImageReceiver.java +++ b/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/playback/CanonFullImageReceiver.java @@ -14,9 +14,9 @@ import net.osdn.gokigen.pkremote.camera.vendor.ptpip.wrapper.command.messages.Pt import java.io.ByteArrayOutputStream; -public class PtpIpFullImageReceiver implements IPtpIpCommandCallback +public class CanonFullImageReceiver implements IPtpIpCommandCallback { - private static final String TAG = PtpIpFullImageReceiver.class.getSimpleName(); + private static final String TAG = CanonFullImageReceiver.class.getSimpleName(); private final Activity activity; private final IPtpIpCommandPublisher publisher; @@ -31,7 +31,7 @@ public class PtpIpFullImageReceiver implements IPtpIpCommandCallback private int target_image_size = 0; private boolean receivedFirstData = false; - PtpIpFullImageReceiver(@NonNull Activity activity, @NonNull IPtpIpCommandPublisher publisher) + CanonFullImageReceiver(@NonNull Activity activity, @NonNull IPtpIpCommandPublisher publisher) { this.activity = activity; this.publisher = publisher; diff --git a/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/playback/PtpIpPlaybackControl.java b/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/playback/CanonPlaybackControl.java similarity index 94% rename from app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/playback/PtpIpPlaybackControl.java rename to app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/playback/CanonPlaybackControl.java index e435e16..91588e0 100644 --- a/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/playback/PtpIpPlaybackControl.java +++ b/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/playback/CanonPlaybackControl.java @@ -26,23 +26,23 @@ import net.osdn.gokigen.pkremote.preference.IPreferencePropertyAccessor; * * */ -public class PtpIpPlaybackControl implements IPlaybackControl +public class CanonPlaybackControl implements IPlaybackControl { private final String TAG = toString(); private final Activity activity; private final PtpIpInterfaceProvider provider; - private final PtpIpFullImageReceiver fullImageReceiver; - private final PtpIpSmallImageReceiver smallImageReciever; + private final CanonFullImageReceiver fullImageReceiver; + private final CanonSmallImageReceiver smallImageReciever; private String raw_suffix = "CR2"; private boolean use_screennail_image = false; private CanonImageObjectReceiver canonImageObjectReceiver; - public PtpIpPlaybackControl(Activity activity, PtpIpInterfaceProvider provider) + public CanonPlaybackControl(Activity activity, PtpIpInterfaceProvider provider) { this.activity = activity; this.provider = provider; - this.fullImageReceiver = new PtpIpFullImageReceiver(activity, provider.getCommandPublisher()); - this.smallImageReciever = new PtpIpSmallImageReceiver(activity, provider.getCommandPublisher()); + this.fullImageReceiver = new CanonFullImageReceiver(activity, provider.getCommandPublisher()); + this.smallImageReciever = new CanonSmallImageReceiver(activity, provider.getCommandPublisher()); canonImageObjectReceiver = new CanonImageObjectReceiver(provider); try @@ -118,7 +118,7 @@ public class PtpIpPlaybackControl implements IPlaybackControl } // 画像を取得する - PtpIpScreennailImageReceiver receiver = new PtpIpScreennailImageReceiver(activity, objectId, publisher, callback); + CanonScreennailImageReceiver receiver = new CanonScreennailImageReceiver(activity, objectId, publisher, callback); publisher.enqueueCommand(new CanonRequestInnerDevelopStart(receiver, objectId, true, objectId, objectId)); // 0x9141 : RequestInnerDevelopStart } } diff --git a/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/playback/PtpIpScreennailImageReceiver.java b/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/playback/CanonScreennailImageReceiver.java similarity index 96% rename from app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/playback/PtpIpScreennailImageReceiver.java rename to app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/playback/CanonScreennailImageReceiver.java index ef5187b..bb6d586 100644 --- a/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/playback/PtpIpScreennailImageReceiver.java +++ b/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/playback/CanonScreennailImageReceiver.java @@ -14,9 +14,9 @@ import net.osdn.gokigen.pkremote.camera.vendor.ptpip.wrapper.command.messages.Pt import net.osdn.gokigen.pkremote.camera.vendor.ptpip.wrapper.command.messages.specific.CanonGetPartialObject; import net.osdn.gokigen.pkremote.camera.vendor.ptpip.wrapper.command.messages.specific.CanonRequestInnerDevelopEnd; -public class PtpIpScreennailImageReceiver implements IPtpIpCommandCallback +public class CanonScreennailImageReceiver implements IPtpIpCommandCallback { - private static final String TAG = PtpIpScreennailImageReceiver.class.getSimpleName(); + private static final String TAG = CanonScreennailImageReceiver.class.getSimpleName(); private static final int BITMAP_MAX_PIXEL = 1024; // 小さい方のサイズ @@ -25,13 +25,13 @@ public class PtpIpScreennailImageReceiver implements IPtpIpCommandCallback private final IPtpIpCommandPublisher publisher; private final int objectId; - public PtpIpScreennailImageReceiver(Activity activity, int objectId, IPtpIpCommandPublisher publisher, IDownloadThumbnailImageCallback callback) + public CanonScreennailImageReceiver(Activity activity, int objectId, IPtpIpCommandPublisher publisher, IDownloadThumbnailImageCallback callback) { this.activity = activity; this.callback = callback; this.publisher = publisher; this.objectId = objectId; - Log.v(TAG, "PtpIpScreennailImageReceiver CREATED : " + objectId); + Log.v(TAG, "CanonScreennailImageReceiver CREATED : " + objectId); } @Override diff --git a/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/playback/PtpIpSmallImageReceiver.java b/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/playback/CanonSmallImageReceiver.java similarity index 98% rename from app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/playback/PtpIpSmallImageReceiver.java rename to app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/playback/CanonSmallImageReceiver.java index dda5345..caac0c0 100644 --- a/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/playback/PtpIpSmallImageReceiver.java +++ b/app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/ptpip/wrapper/playback/CanonSmallImageReceiver.java @@ -18,9 +18,9 @@ import net.osdn.gokigen.pkremote.camera.vendor.ptpip.wrapper.command.messages.sp import java.io.ByteArrayOutputStream; -public class PtpIpSmallImageReceiver implements IPtpIpCommandCallback +public class CanonSmallImageReceiver implements IPtpIpCommandCallback { - private static final String TAG = PtpIpSmallImageReceiver.class.getSimpleName(); + private static final String TAG = CanonSmallImageReceiver.class.getSimpleName(); private final Activity activity; private final IPtpIpCommandPublisher publisher; @@ -33,7 +33,7 @@ public class PtpIpSmallImageReceiver implements IPtpIpCommandCallback private int received_total_bytes = 0; private int received_remain_bytes = 0; - public PtpIpSmallImageReceiver(@NonNull Activity activity, @NonNull IPtpIpCommandPublisher publisher) + public CanonSmallImageReceiver(@NonNull Activity activity, @NonNull IPtpIpCommandPublisher publisher) { this.activity = activity; this.publisher = publisher; -- 2.11.0