package com.feemers.android.fftdrawer.SignalProcessing; import android.hardware.SensorManager; import java.util.Observer; public class SignalProcessingControl { private IDetector detector; private ISensor sensor; private Notifier notifier; private Logger logger; public SignalProcessingControl(SensorManager sensorManager, Logger logger) { this.logger = logger; logger.log("SignalProcessingControl()"); // create notifier notifier = new Notifier(); // create detector //detector = new DetectorTimedomain(20); detector = new DetectorFFT(20); detector.setThreshold(6); //TODO: Remove hardcoded threshold and read from GUI instead detector.connectNotifier(notifier); // create & link hardware to sensor -> sensorManager MySensor mySensor = new MySensor(); mySensor.connectSensorManager(sensorManager); this.sensor = mySensor; } public void init() { logger.log("SignalProcessingControl: init()"); sensor.connectDetector(detector); } public void start() { logger.log("SignalProcessingControl: start()"); sensor.startSampling(); } public void stop() { logger.log("SignalProcessingControl: stop()"); sensor.stopSampling(); } public Notifier getNotifier() { return notifier; } }