OSDN Git Service

db94f7ae1779ca05156cac74d2923ee0a0e99ef3
[gokigen/Gr2Control.git] / app / src / main / java / net / osdn / gokigen / gr2control / liveview / LiveViewFujiXKeyPanelClickListener.java
1 package net.osdn.gokigen.gr2control.liveview;
2
3 import android.os.Vibrator;
4 import android.util.Log;
5 import android.view.View;
6
7 import androidx.annotation.NonNull;
8 import androidx.annotation.Nullable;
9
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;
17
18 public class LiveViewFujiXKeyPanelClickListener implements View.OnClickListener, View.OnLongClickListener, IFujiXCommandCallback
19 {
20     private final String TAG = toString();
21     private static final boolean isDumpLog = false;
22     private final IInterfaceProvider interfaceProvider;
23     private final Vibrator vibrator;
24
25     LiveViewFujiXKeyPanelClickListener(@NonNull IInterfaceProvider interfaceProvider, @Nullable Vibrator vibrator)
26     {
27         this.interfaceProvider = interfaceProvider;
28         this.vibrator = vibrator;
29     }
30
31     @Override
32     public void onClick(View v)
33     {
34         boolean isVibrate = true;
35         try
36         {
37             int id = v.getId();
38             switch (id)
39             {
40                 case R.id.button_fuji_x_sv_minus:
41                     updateValue(IFujiXCameraCommands.SHUTTER_SPEED, 0);
42                     break;
43                 case R.id.button_fuji_x_sv_plus:
44                     updateValue(IFujiXCameraCommands.SHUTTER_SPEED, 1);
45                     break;
46                 case R.id.button_fuji_x_tv_minus:
47                     updateValue(IFujiXCameraCommands.APERTURE, 0);
48                     break;
49                 case R.id.button_fuji_x_tv_plus:
50                     updateValue(IFujiXCameraCommands.APERTURE, 1);
51                     break;
52                 case R.id.button_fuji_x_xv_minus:
53                     updateValue(IFujiXCameraCommands.EXPREV, 0);
54                     break;
55                 case R.id.button_fuji_x_xv_plus:
56                     updateValue(IFujiXCameraCommands.EXPREV, 1);
57                     break;
58                 default:
59                     isVibrate = false;
60                     break;
61             }
62             vibrate(isVibrate);
63         }
64         catch (Exception e)
65         {
66             e.printStackTrace();
67         }
68     }
69
70     @Override
71     public boolean onLongClick(View v)
72     {
73         boolean isVibrate = false;
74         boolean ret = false;
75         try
76         {
77             int id = v.getId();
78             switch (id)
79             {
80                 case R.id.button_fuji_x_sv_minus:
81                     break;
82                 case R.id.button_fuji_x_sv_plus:
83                     break;
84                 case R.id.button_fuji_x_tv_minus:
85                     break;
86                 case R.id.button_fuji_x_tv_plus:
87                     break;
88                 case R.id.button_fuji_x_xv_minus:
89                     break;
90                 case R.id.button_fuji_x_xv_plus:
91                     break;
92                 default:
93                     break;
94             }
95             vibrate(isVibrate);
96         }
97         catch (Exception e)
98         {
99             e.printStackTrace();
100         }
101         return (ret);
102     }
103
104     /**
105      *  値を更新する
106      *
107      */
108     private void updateValue(int id, int value)
109     {
110         try
111         {
112             IFujiXCommandPublisher publisher = interfaceProvider.getFujiXInterfaceProvider().getCommandPublisher();
113             publisher.enqueueCommand(new CommandGeneric(this, id, 4, value));
114         }
115         catch (Exception e)
116         {
117             e.printStackTrace();
118         }
119     }
120
121     /**
122      *   ぶるぶるさせる
123      *
124      */
125     private void vibrate(boolean isVibrate)
126     {
127         if ((vibrator != null)&&(isVibrate))
128         {
129             vibrator.vibrate(30);
130         }
131     }
132
133     @Override
134     public void receivedMessage(int id, byte[] rx_body)
135     {
136         if (isDumpLog)
137         {
138             SimpleLogDumper.dump_bytes("" + id, rx_body);
139         }
140     }
141
142     @Override
143     public void onReceiveProgress(int currentBytes, int totalBytes, byte[] rx_body)
144     {
145         Log.v(TAG, " onReceiveProgress() : " + currentBytes + "/" + totalBytes);
146     }
147
148     @Override
149     public boolean isReceiveMulti()
150     {
151         return (false);
152     }
153 }