From: MRSa Date: Fri, 24 May 2019 16:43:25 +0000 (+0900) Subject: 設定変える準備を搭載。 X-Git-Url: http://git.osdn.net/view?p=gokigen%2FFujiCam.git;a=commitdiff_plain;h=b00c11f67bee4b2d83a63f168f7b9257a1187051 設定変える準備を搭載。 --- diff --git a/app/src/main/java/net/osdn/gokigen/cameratest/camtest/CamTest.java b/app/src/main/java/net/osdn/gokigen/cameratest/camtest/CamTest.java index a49ebee..25caa87 100644 --- a/app/src/main/java/net/osdn/gokigen/cameratest/camtest/CamTest.java +++ b/app/src/main/java/net/osdn/gokigen/cameratest/camtest/CamTest.java @@ -208,12 +208,10 @@ public class CamTest implements View.OnClickListener, View.OnTouchListener, ILiv unlockFocus(); break; case R.id.button3: - //readImageFile("sampledata2.bin"); - //showMessageText("show 'sampledata2.bin'."); + changeFilmSimulation(); break; case R.id.button4: - //readImageFile("sampledata3.bin"); - //showMessageText("show 'sampledata3.bin'."); + changeImageAspect(); break; default: showMessageText("Unknown : " + id); @@ -309,6 +307,52 @@ public class CamTest implements View.OnClickListener, View.OnTouchListener, ILiv } } + private void changeFilmSimulation() + { + try + { + Thread thread = new Thread(new Runnable() { + @Override + public void run() { + boolean ret = connection.execute_change_film_simulation(); + if (!ret) + { + showMessageText("Change FilmSimulation Failure..."); + } + } + }); + thread.start(); + Snackbar.make(activity.findViewById(R.id.constraintLayout), R.string.change_film_simulation, Snackbar.LENGTH_SHORT).show(); + } + catch (Exception e) + { + e.printStackTrace(); + } + } + private void changeImageAspect() + { + try + { + Thread thread = new Thread(new Runnable() { + @Override + public void run() { + boolean ret = connection.execute_change_image_aspect(); + if (!ret) + { + showMessageText("Change Image aspect Failure..."); + } + } + }); + thread.start(); + Snackbar.make(activity.findViewById(R.id.constraintLayout), R.string.change_image_aspect, Snackbar.LENGTH_SHORT).show(); + } + catch (Exception e) + { + e.printStackTrace(); + } + } + + @Override public void updateImage(ReceivedDataHolder receivedData) { diff --git a/app/src/main/java/net/osdn/gokigen/cameratest/camtest/InformationView.java b/app/src/main/java/net/osdn/gokigen/cameratest/camtest/InformationView.java index 843fb8e..439a327 100644 --- a/app/src/main/java/net/osdn/gokigen/cameratest/camtest/InformationView.java +++ b/app/src/main/java/net/osdn/gokigen/cameratest/camtest/InformationView.java @@ -69,10 +69,12 @@ public class InformationView extends AppCompatImageView // Rotates the image. int centerX = canvas.getWidth() / 2; int centerY = canvas.getHeight() / 2; + int startX = 90; Paint framePaint = new Paint(); framePaint.setStyle(Paint.Style.STROKE); framePaint.setColor(Color.WHITE); + framePaint.setTextSize(24); String message = shooting_mode + " REMAIN : " + sd_remain_size + " ISO : " + iso + " BATT: "; if (battery_level < 0) @@ -84,7 +86,7 @@ public class InformationView extends AppCompatImageView message = message + battery_level + "% "; } message = message + " " + shutter_speed + " " + aperture + " " + expRev + " : cnt:" + f_ss_Control; - canvas.drawText(message, centerX, centerY - 50, framePaint); + canvas.drawText(message, startX, centerY - 50, framePaint); Log.v(TAG, message); @@ -102,12 +104,12 @@ public class InformationView extends AppCompatImageView message = message + " ERROR"; } message = message + " [" + focusControlMode + "] "; - canvas.drawText(message, centerX, centerY, framePaint); + canvas.drawText(message, startX, centerY, framePaint); Log.v(TAG, message); message = imageAspect + " " + imageFormat + " " + "[" + filmSimulation + "]" + " "; - canvas.drawText(message, centerX, centerY + 50, framePaint); + canvas.drawText(message, startX, centerY + 50, framePaint); Log.v(TAG, message); } diff --git a/app/src/main/java/net/osdn/gokigen/cameratest/fuji/Connection.java b/app/src/main/java/net/osdn/gokigen/cameratest/fuji/Connection.java index 4d5c2c6..2efc02d 100644 --- a/app/src/main/java/net/osdn/gokigen/cameratest/fuji/Connection.java +++ b/app/src/main/java/net/osdn/gokigen/cameratest/fuji/Connection.java @@ -10,6 +10,13 @@ import net.osdn.gokigen.cameratest.fuji.statuses.FujiStatusChecker; import net.osdn.gokigen.cameratest.fuji.statuses.IFujiStatusNotify; import net.osdn.gokigen.cameratest.fuji.statuses.IFujiStatusRequest; +import static net.osdn.gokigen.cameratest.fuji.statuses.IFujiCameraProperties.FILM_SIMULATION; +import static net.osdn.gokigen.cameratest.fuji.statuses.IFujiCameraProperties.IMAGE_ASPECT; +import static net.osdn.gokigen.cameratest.fuji.statuses.IFujiCameraPropertyValues.FILM_SIMULATION_MAX; +import static net.osdn.gokigen.cameratest.fuji.statuses.IFujiCameraPropertyValues.FILM_SIMULATION_MIN; +import static net.osdn.gokigen.cameratest.fuji.statuses.IFujiCameraPropertyValues.IMAGE_ASPECT_MAX; +import static net.osdn.gokigen.cameratest.fuji.statuses.IFujiCameraPropertyValues.IMAGE_ASPECT_MIN; + public class Connection implements IFujiStatusRequest { private final String TAG = toString(); @@ -273,6 +280,47 @@ public class Connection implements IFujiStatusRequest return (false); } + public boolean execute_change_film_simulation() + { + try + { + // 現在の値を入手 + int currentValue = statusChecker.getValue(FILM_SIMULATION); + currentValue++; + if (currentValue > FILM_SIMULATION_MAX) + { + currentValue = FILM_SIMULATION_MIN; + } + return (updateProperty(FILM_SIMULATION, currentValue)); + } + catch (Exception e) + { + e.printStackTrace(); + } + return (false); + } + + public boolean execute_change_image_aspect() + { + try + { + // 現在の値を入手 + int currentValue = statusChecker.getValue(IMAGE_ASPECT); + currentValue++; + if (currentValue > IMAGE_ASPECT_MAX) + { + currentValue = IMAGE_ASPECT_MIN; + } + return (updateProperty(IMAGE_ASPECT, currentValue)); + } + catch (Exception e) + { + e.printStackTrace(); + } + return (false); + } + + public boolean execute_unlock_focus() { try diff --git a/app/src/main/java/net/osdn/gokigen/cameratest/fuji/statuses/FujiStatusChecker.java b/app/src/main/java/net/osdn/gokigen/cameratest/fuji/statuses/FujiStatusChecker.java index f1a8889..4ee124b 100644 --- a/app/src/main/java/net/osdn/gokigen/cameratest/fuji/statuses/FujiStatusChecker.java +++ b/app/src/main/java/net/osdn/gokigen/cameratest/fuji/statuses/FujiStatusChecker.java @@ -74,14 +74,17 @@ public class FujiStatusChecker implements IFujiStatusReceiver } } + public int getValue(int statusId) + { + return (statusHolder.getValue(statusId)); + } + @Override public void stop() { threadIsRunning = false; } - - private void statusReceivedImpl(byte[] data) { boolean isStatusUpdated = false; diff --git a/app/src/main/java/net/osdn/gokigen/cameratest/fuji/statuses/IFujiCameraProperties.java b/app/src/main/java/net/osdn/gokigen/cameratest/fuji/statuses/IFujiCameraProperties.java index eeae8b0..0e5087f 100644 --- a/app/src/main/java/net/osdn/gokigen/cameratest/fuji/statuses/IFujiCameraProperties.java +++ b/app/src/main/java/net/osdn/gokigen/cameratest/fuji/statuses/IFujiCameraProperties.java @@ -1,6 +1,6 @@ package net.osdn.gokigen.cameratest.fuji.statuses; -interface IFujiCameraProperties +public interface IFujiCameraProperties { int BATTERY_LEVEL = 0x5001; int WHITE_BALANCE = 0x5005; diff --git a/app/src/main/java/net/osdn/gokigen/cameratest/fuji/statuses/IFujiCameraPropertyValues.java b/app/src/main/java/net/osdn/gokigen/cameratest/fuji/statuses/IFujiCameraPropertyValues.java index d601c00..c636d2a 100644 --- a/app/src/main/java/net/osdn/gokigen/cameratest/fuji/statuses/IFujiCameraPropertyValues.java +++ b/app/src/main/java/net/osdn/gokigen/cameratest/fuji/statuses/IFujiCameraPropertyValues.java @@ -29,6 +29,7 @@ public interface IFujiCameraPropertyValues int FOCUS_SINGLE_AUTO = 0x8001; int FOCUS_CONTINUOUS_AUTO = 0x8002; + int IMAGE_ASPECT_MIN = 2; int IMAGE_ASPECT_S_3x2 = 2; int IMAGE_ASPECT_S_16x9 = 3; int IMAGE_ASPECT_S_1x1 = 4; @@ -38,12 +39,15 @@ public interface IFujiCameraPropertyValues int IMAGE_ASPECT_L_3x2 = 10; int IMAGE_ASPECT_L_16x9 = 11; int IMAGE_ASPECT_L_1x1 = 12; + int IMAGE_ASPECT_MAX = 12; + int IMAGE_FORMAT_FINE = 2; int IMAGE_FORMAT_NORMAL = 3; int IMAGE_FORMAT_FINE_RAW = 4; int IMAGE_FORMAT_NORMAL_RAW = 5; + int FILM_SIMULATION_MIN = 1; int FILM_SIMULATION_PROVIA =1; int FILM_SIMULATION_VELVIA =2; int FILM_SIMULATION_ASTIA =3; @@ -60,6 +64,7 @@ public interface IFujiCameraPropertyValues int FILM_SIMULATION_ACROS_R =14; int FILM_SIMULATION_ACROS_G =15; int FILM_SIMULATION_ETERNA =16; + int FILM_SIMULATION_MAX = 17; int BATTERY_CRITICAL =1; int BATTERY_ONE_BAR =2; diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e85f458..d7a4b64 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -9,6 +9,8 @@ Execute Shutter Drive AF Focus Unlock + Change Film Simulation + Change Image Aspect 1 2 3