diff --git a/app/src/main/java/xdsopl/robot36/Decoder.java b/app/src/main/java/xdsopl/robot36/Decoder.java
index a8b4dcc..6c45fbc 100644
--- a/app/src/main/java/xdsopl/robot36/Decoder.java
+++ b/app/src/main/java/xdsopl/robot36/Decoder.java
@@ -92,7 +92,7 @@ public class Decoder {
}
};
- public Decoder(MainActivity activity, SpectrumView spectrum, SpectrumView spectrogram,ImageView image, VUMeterView meter) {
+ public Decoder(MainActivity activity, SpectrumView spectrum, SpectrumView spectrogram, ImageView image, VUMeterView meter) {
this.image = image;
this.spectrogram = spectrogram;
this.spectrum = spectrum;
@@ -150,6 +150,7 @@ public class Decoder {
thread.start();
}
+ void clear_image() { rsDecoder.invoke_reset_buffer(); }
void toggle_scaling() { image.intScale ^= true; }
void softer_image() { rsDecoder.invoke_incr_blur(); }
void sharper_image() { rsDecoder.invoke_decr_blur(); }
diff --git a/app/src/main/java/xdsopl/robot36/MainActivity.java b/app/src/main/java/xdsopl/robot36/MainActivity.java
index 8c4ee58..ac9bcf5 100644
--- a/app/src/main/java/xdsopl/robot36/MainActivity.java
+++ b/app/src/main/java/xdsopl/robot36/MainActivity.java
@@ -46,6 +46,7 @@ import java.util.Date;
public class MainActivity extends Activity {
private Decoder decoder;
+ private ImageView image;
private Bitmap bitmap;
private NotificationManager manager;
private ShareActionProvider share;
@@ -121,10 +122,11 @@ public class MainActivity extends Activity {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
changeLayoutOrientation(getResources().getConfiguration());
+ image = (ImageView)findViewById(R.id.image);
decoder = new Decoder(this,
(SpectrumView)findViewById(R.id.spectrum),
(SpectrumView)findViewById(R.id.spectrogram),
- (ImageView)findViewById(R.id.image),
+ image,
(VUMeterView)findViewById(R.id.meter)
);
manager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
@@ -180,6 +182,12 @@ public class MainActivity extends Activity {
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
+ case R.id.action_save_image:
+ storeBitmap(image.bitmap);
+ return true;
+ case R.id.action_clear_image:
+ decoder.clear_image();
+ return true;
case R.id.action_softer_image:
decoder.softer_image();
return true;
diff --git a/app/src/main/res/menu/menu_main.xml b/app/src/main/res/menu/menu_main.xml
index 4e8217f..a5d2391 100644
--- a/app/src/main/res/menu/menu_main.xml
+++ b/app/src/main/res/menu/menu_main.xml
@@ -8,6 +8,18 @@
android:title="Share"
android:actionProviderClass="android.widget.ShareActionProvider" />
+
+
+
+
- Robot36
"decoder is running
+ Save Image
+ Clear Image
Toggle Auto Mode
Toggle Debug Mode
Toggle Analyzer
diff --git a/app/src/main/rs/decoder.rs b/app/src/main/rs/decoder.rs
index be3c0c2..50c8621 100644
--- a/app/src/main/rs/decoder.rs
+++ b/app/src/main/rs/decoder.rs
@@ -32,7 +32,7 @@ limitations under the License.
#include "stft.rsh"
#include "utils.rsh"
-static void reset_buffer()
+void reset_buffer()
{
vpos = 0;
hpos = 0;
diff --git a/app/src/main/rs/initialization.rsh b/app/src/main/rs/initialization.rsh
index 34a62ae..853ae58 100644
--- a/app/src/main/rs/initialization.rsh
+++ b/app/src/main/rs/initialization.rsh
@@ -31,7 +31,7 @@ void initialize(float rate, int length, int iw, int ih, int sw, int sh, int sgw,
maximum_height = ih;
for (int i = 0; i < iw * ih; ++i)
- pixel_buffer[i] = 0;
+ pixel_buffer[i] = rgb(0, 0, 0);
init_analyzer(sw, sh, sgw, sgh);