1 package net.osdn.gokigen.gr2control.liveview;
3 import android.os.Vibrator;
4 import android.util.Log;
5 import android.view.View;
7 import androidx.annotation.NonNull;
8 import androidx.annotation.Nullable;
10 import net.osdn.gokigen.gr2control.R;
11 import net.osdn.gokigen.gr2control.camera.IInterfaceProvider;
12 import net.osdn.gokigen.gr2control.camera.fuji_x.wrapper.command.IFujiXCommandCallback;
13 import net.osdn.gokigen.gr2control.camera.fuji_x.wrapper.command.IFujiXCommandPublisher;
14 import net.osdn.gokigen.gr2control.camera.fuji_x.wrapper.command.messages.CommandGeneric;
15 import net.osdn.gokigen.gr2control.camera.fuji_x.wrapper.command.messages.IFujiXCameraCommands;
16 import net.osdn.gokigen.gr2control.camera.utils.SimpleLogDumper;
18 public class LiveViewFujiXKeyPanelClickListener implements View.OnClickListener, View.OnLongClickListener, IFujiXCommandCallback
20 private final String TAG = toString();
21 private static final boolean isDumpLog = false;
22 private final IInterfaceProvider interfaceProvider;
23 private final Vibrator vibrator;
25 LiveViewFujiXKeyPanelClickListener(@NonNull IInterfaceProvider interfaceProvider, @Nullable Vibrator vibrator)
27 this.interfaceProvider = interfaceProvider;
28 this.vibrator = vibrator;
32 public void onClick(View v)
34 boolean isVibrate = true;
40 case R.id.button_fuji_x_sv_minus:
41 updateValue(IFujiXCameraCommands.SHUTTER_SPEED, 0);
43 case R.id.button_fuji_x_sv_plus:
44 updateValue(IFujiXCameraCommands.SHUTTER_SPEED, 1);
46 case R.id.button_fuji_x_tv_minus:
47 updateValue(IFujiXCameraCommands.APERTURE, 0);
49 case R.id.button_fuji_x_tv_plus:
50 updateValue(IFujiXCameraCommands.APERTURE, 1);
52 case R.id.button_fuji_x_xv_minus:
53 updateValue(IFujiXCameraCommands.EXPREV, 0);
55 case R.id.button_fuji_x_xv_plus:
56 updateValue(IFujiXCameraCommands.EXPREV, 1);
71 public boolean onLongClick(View v)
73 boolean isVibrate = false;
80 case R.id.button_fuji_x_sv_minus:
82 case R.id.button_fuji_x_sv_plus:
84 case R.id.button_fuji_x_tv_minus:
86 case R.id.button_fuji_x_tv_plus:
88 case R.id.button_fuji_x_xv_minus:
90 case R.id.button_fuji_x_xv_plus:
108 private void updateValue(int id, int value)
112 IFujiXCommandPublisher publisher = interfaceProvider.getFujiXInterfaceProvider().getCommandPublisher();
113 publisher.enqueueCommand(new CommandGeneric(this, id, 4, value));
125 private void vibrate(boolean isVibrate)
127 if ((vibrator != null)&&(isVibrate))
129 vibrator.vibrate(30);
134 public void receivedMessage(int id, byte[] rx_body)
138 SimpleLogDumper.dump_bytes("" + id, rx_body);
143 public void onReceiveProgress(int currentBytes, int totalBytes, byte[] rx_body)
145 Log.v(TAG, " onReceiveProgress() : " + currentBytes + "/" + totalBytes);
149 public boolean isReceiveMulti()