blob: 269e323c925b6556d2713f44dfc5389d4e725864 [file] [edit]
// Copyright 2016 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef INCLUDE_EVALUATOR_H_
#define INCLUDE_EVALUATOR_H_
#include <stdint.h>
#include <memory>
#include <set>
#include <vector>
#include "include/binary_client.h"
#include "include/common.h"
#include "include/sample_format.h"
class Evaluator {
public:
explicit Evaluator(const AudioFunTestConfig&);
// Evaluates the recorded wave and compared with the expected bin.
// Saves the result in the vector that indicates the successness of each mic
// channels.
void Evaluate(int center_bin,
RecordClient* recorder,
std::vector<bool>* result);
private:
// Returns the matched filter confidence the single channel.
double EstimateChannel(std::vector<double>* data, int center_bin);
std::vector<double> filter_;
int half_window_size_;
int num_channels_;
std::set<int> active_mic_channels_;
SampleFormat format_;
int sample_rate_;
std::vector<double> bin_;
std::unique_ptr<uint8_t[]> buffer_;
size_t buf_size_;
double power_threshold_;
double confidence_threshold_;
int max_trial_;
bool verbose_;
};
#endif // INCLUDE_EVALUATOR_H_