Merge branch 'v2' into adding-hffax

# Conflicts:
#	app/src/main/java/xdsopl/robot36/MainActivity.java
This commit is contained in:
Marek Ossowski 2025-08-21 23:52:38 +02:00
commit e29f5728e3
4 changed files with 14 additions and 25 deletions

View file

@ -4,12 +4,12 @@ plugins {
android {
namespace 'xdsopl.robot36'
compileSdk 35
compileSdk = 36
defaultConfig {
applicationId "xdsopl.robot36"
minSdk 24
targetSdk 35
targetSdk 36
versionCode 65
versionName "2.15"

View file

@ -15,7 +15,6 @@ import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.media.AudioFormat;
import android.media.AudioRecord;
import android.media.MediaRecorder;
@ -44,7 +43,6 @@ import androidx.appcompat.app.AppCompatDelegate;
import androidx.appcompat.widget.ShareActionProvider;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.core.graphics.ColorUtils;
import androidx.core.graphics.Insets;
import androidx.core.os.LocaleListCompat;
import androidx.core.view.MenuItemCompat;
@ -74,7 +72,6 @@ public class MainActivity extends AppCompatActivity {
private ImageView peakMeterView;
private PixelBuffer imageBuffer;
private ShortTimeFourierTransform stft;
private final int binWidthHz = 10;
private short[] shortBuffer;
private float[] recordBuffer;
private AudioRecord audioRecord;
@ -92,6 +89,8 @@ public class MainActivity extends AppCompatActivity {
private int tintColor;
private boolean autoSave;
private boolean showSpectrogram;
private final int binWidthHz = 10;
private final int[] freqMarkers = { 1100, 1300, 1500, 2300 };
private void setStatus(int id) {
setTitle(id);
@ -226,22 +225,12 @@ public class MainActivity extends AppCompatActivity {
double lowest = Math.log(1e-9);
double highest = Math.log(1);
double range = highest - lowest;
int lowestBin = 14;
int minFreq = 140;
int minBin = minFreq / binWidthHz;
for (int i = 0; i < stride; ++i)
waterfallPlotBuffer.pixels[line + i] = rainbow((Math.log(stft.power[i + lowestBin]) - lowest) / range);
int[] markerFrequencies = new int[] {
(int)Demodulator.syncPulseFrequency,
(int)Demodulator.blackFrequency,
(int)Demodulator.whiteFrequency,
};
for (int freq: markerFrequencies) {
int marker = freq / binWidthHz - lowestBin;
waterfallPlotBuffer.pixels[line + marker - 1] = Color.BLACK;
waterfallPlotBuffer.pixels[line + marker] = ColorUtils.blendARGB(waterfallPlotBuffer.pixels[line + marker], Color.GREEN, 0.8f);
waterfallPlotBuffer.pixels[line + marker + 1] = Color.BLACK;
}
waterfallPlotBuffer.pixels[line + i] = rainbow((Math.log(stft.power[i + minBin]) - lowest) / range);
for (int freq : freqMarkers)
waterfallPlotBuffer.pixels[line + (freq - minFreq) / binWidthHz] = fgColor;
System.arraycopy(waterfallPlotBuffer.pixels, line, waterfallPlotBuffer.pixels, line + stride * (waterfallPlotBuffer.height / 2), stride);
}
}

View file

@ -1,9 +1,9 @@
[versions]
agp = "8.9.0"
agp = "8.12.1"
junit = "4.13.2"
junitVersion = "1.2.1"
espressoCore = "3.6.1"
appcompat = "1.7.0"
junitVersion = "1.3.0"
espressoCore = "3.7.0"
appcompat = "1.7.1"
material = "1.12.0"
activity = "1.10.1"
constraintlayout = "2.2.1"

View file

@ -1,6 +1,6 @@
#Fri Apr 12 11:35:07 CEST 2024
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists