kopia lustrzana https://github.com/xdsopl/robot36
water falls downwards
rodzic
ec302f6800
commit
d61be31811
|
@ -218,6 +218,7 @@ public class MainActivity extends AppCompatActivity {
|
||||||
if (stft.push(input)) {
|
if (stft.push(input)) {
|
||||||
process = true;
|
process = true;
|
||||||
int stride = waterfallPlotBuffer.width;
|
int stride = waterfallPlotBuffer.width;
|
||||||
|
waterfallPlotBuffer.line = (waterfallPlotBuffer.line + waterfallPlotBuffer.height / 2 - 1) % (waterfallPlotBuffer.height / 2);
|
||||||
int line = stride * waterfallPlotBuffer.line;
|
int line = stride * waterfallPlotBuffer.line;
|
||||||
double lowest = Math.log(1e-9);
|
double lowest = Math.log(1e-9);
|
||||||
double highest = Math.log(1);
|
double highest = Math.log(1);
|
||||||
|
@ -225,14 +226,13 @@ public class MainActivity extends AppCompatActivity {
|
||||||
for (int i = 0; i < stride; ++i)
|
for (int i = 0; i < stride; ++i)
|
||||||
waterfallPlotBuffer.pixels[line + i] = rainbow((Math.log(stft.power[i + 14]) - lowest) / range);
|
waterfallPlotBuffer.pixels[line + i] = rainbow((Math.log(stft.power[i + 14]) - lowest) / range);
|
||||||
System.arraycopy(waterfallPlotBuffer.pixels, line, waterfallPlotBuffer.pixels, line + stride * (waterfallPlotBuffer.height / 2), stride);
|
System.arraycopy(waterfallPlotBuffer.pixels, line, waterfallPlotBuffer.pixels, line + stride * (waterfallPlotBuffer.height / 2), stride);
|
||||||
waterfallPlotBuffer.line = (waterfallPlotBuffer.line + 1) % (waterfallPlotBuffer.height / 2);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (process) {
|
if (process) {
|
||||||
int width = waterfallPlotBitmap.getWidth();
|
int width = waterfallPlotBitmap.getWidth();
|
||||||
int height = waterfallPlotBitmap.getHeight();
|
int height = waterfallPlotBitmap.getHeight();
|
||||||
int stride = waterfallPlotBuffer.width;
|
int stride = waterfallPlotBuffer.width;
|
||||||
int offset = stride * (waterfallPlotBuffer.line + waterfallPlotBuffer.height / 2 - height);
|
int offset = stride * waterfallPlotBuffer.line;
|
||||||
waterfallPlotBitmap.setPixels(waterfallPlotBuffer.pixels, offset, stride, 0, 0, width, height);
|
waterfallPlotBitmap.setPixels(waterfallPlotBuffer.pixels, offset, stride, 0, 0, width, height);
|
||||||
waterfallPlotView.invalidate();
|
waterfallPlotView.invalidate();
|
||||||
}
|
}
|
||||||
|
@ -242,6 +242,7 @@ public class MainActivity extends AppCompatActivity {
|
||||||
int width = waterfallPlotBitmap.getWidth();
|
int width = waterfallPlotBitmap.getWidth();
|
||||||
int height = waterfallPlotBitmap.getHeight();
|
int height = waterfallPlotBitmap.getHeight();
|
||||||
int stride = waterfallPlotBuffer.width;
|
int stride = waterfallPlotBuffer.width;
|
||||||
|
waterfallPlotBuffer.line = (waterfallPlotBuffer.line + waterfallPlotBuffer.height / 2 - 1) % (waterfallPlotBuffer.height / 2);
|
||||||
int line = stride * waterfallPlotBuffer.line;
|
int line = stride * waterfallPlotBuffer.line;
|
||||||
int channels = recordChannel > 0 ? 2 : 1;
|
int channels = recordChannel > 0 ? 2 : 1;
|
||||||
int samples = recordBuffer.length / channels;
|
int samples = recordBuffer.length / channels;
|
||||||
|
@ -257,8 +258,7 @@ public class MainActivity extends AppCompatActivity {
|
||||||
for (int i = 0; i < stride; ++i)
|
for (int i = 0; i < stride; ++i)
|
||||||
waterfallPlotBuffer.pixels[line + i] = 0x00FFFFFF & fgColor | Math.min(factor * waterfallPlotBuffer.pixels[line + i], 255) << 24;
|
waterfallPlotBuffer.pixels[line + i] = 0x00FFFFFF & fgColor | Math.min(factor * waterfallPlotBuffer.pixels[line + i], 255) << 24;
|
||||||
System.arraycopy(waterfallPlotBuffer.pixels, line, waterfallPlotBuffer.pixels, line + stride * (waterfallPlotBuffer.height / 2), stride);
|
System.arraycopy(waterfallPlotBuffer.pixels, line, waterfallPlotBuffer.pixels, line + stride * (waterfallPlotBuffer.height / 2), stride);
|
||||||
waterfallPlotBuffer.line = (waterfallPlotBuffer.line + 1) % (waterfallPlotBuffer.height / 2);
|
int offset = stride * waterfallPlotBuffer.line;
|
||||||
int offset = stride * (waterfallPlotBuffer.line + waterfallPlotBuffer.height / 2 - height);
|
|
||||||
waterfallPlotBitmap.setPixels(waterfallPlotBuffer.pixels, offset, stride, 0, 0, width, height);
|
waterfallPlotBitmap.setPixels(waterfallPlotBuffer.pixels, offset, stride, 0, 0, width, height);
|
||||||
waterfallPlotView.invalidate();
|
waterfallPlotView.invalidate();
|
||||||
}
|
}
|
||||||
|
@ -849,7 +849,7 @@ public class MainActivity extends AppCompatActivity {
|
||||||
height /= 4;
|
height /= 4;
|
||||||
waterfallPlotBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
|
waterfallPlotBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
|
||||||
int stride = waterfallPlotBuffer.width;
|
int stride = waterfallPlotBuffer.width;
|
||||||
int offset = stride * (waterfallPlotBuffer.line + waterfallPlotBuffer.height / 2 - height);
|
int offset = stride * waterfallPlotBuffer.line;
|
||||||
waterfallPlotBitmap.setPixels(waterfallPlotBuffer.pixels, offset, stride, 0, 0, width, height);
|
waterfallPlotBitmap.setPixels(waterfallPlotBuffer.pixels, offset, stride, 0, 0, width, height);
|
||||||
waterfallPlotView = findViewById(R.id.waterfall_plot);
|
waterfallPlotView = findViewById(R.id.waterfall_plot);
|
||||||
waterfallPlotView.setScaleType(ImageView.ScaleType.FIT_XY);
|
waterfallPlotView.setScaleType(ImageView.ScaleType.FIT_XY);
|
||||||
|
|
Ładowanie…
Reference in New Issue