OSDN Git Service

d9291fe341ef3a9ac6b3a25d9792a55115d88365
[gokigen/FujiCam.git] / app / src / main / java / net / osdn / gokigen / cameratest / fuji / statuses / FujiStatusHolder.java
1 package net.osdn.gokigen.cameratest.fuji.statuses;
2
3
4 import android.util.SparseIntArray;
5
6 import static net.osdn.gokigen.cameratest.fuji.statuses.Properties.BATTERY_LEVEL;
7 import static net.osdn.gokigen.cameratest.fuji.statuses.Properties.FOCUS_LOCK;
8
9 class FujiStatusHolder implements IFujiStatus
10 {
11     private final String TAG = toString();
12     private SparseIntArray statusHolder;
13
14     /**
15      *   コンストラクタ
16      */
17     FujiStatusHolder()
18     {
19         statusHolder = new SparseIntArray();
20         statusHolder.clear();
21     }
22
23     void updateValue(int id, byte data0, byte data1, byte data2, byte data3)
24     {
25         int value = ((((int) data3)&0xff) << 24) +  ((((int) data2)&0xff) << 16) +  ((((int) data1)&0xff) << 8) + (((int) data0) & 0xff);
26
27         //Log.v(TAG, "updateValue() : " + id + "[" + value + "]");
28         statusHolder.put(id, value);
29     }
30
31     @Override
32     public int getValue(int statusId)
33     {
34         try
35         {
36             return (statusHolder.get(statusId));
37         }
38         catch (Exception e)
39         {
40             e.printStackTrace();
41         }
42         return (0);
43     }
44
45     @Override
46     public boolean isFocusLocked()
47     {
48         try
49         {
50             int status = statusHolder.get(FOCUS_LOCK);
51             if (status == 1)
52             {
53                 return (true);
54             }
55         }
56         catch (Exception e)
57         {
58             e.printStackTrace();
59         }
60         return (false);
61     }
62
63     @Override
64     public int getBatteryLevel()
65     {
66         int level = -1;
67         try
68         {
69             int status = statusHolder.get(BATTERY_LEVEL);
70             if ((status == 1)||(status == 6))
71             {
72                 level = 0;
73             }
74             else if (status == 7)
75             {
76                 level = 20;
77             }
78             else if ((status == 2)||(status == 8))
79             {
80                 level = 40;
81             }
82             else if (status == 9)
83             {
84                 level = 60;
85             }
86             else if ((status == 3)||(status == 10))
87             {
88                 level = 80;
89             }
90             else if ((status == 4)||(status == 11))
91             {
92                 level = 100;
93             }
94         }
95         catch (Exception e)
96         {
97             e.printStackTrace();
98         }
99         return (level);
100     }
101
102
103 }