summaryrefslogtreecommitdiff
path: root/test/analysis/AnalyzeFile.h
blob: d47b3bac105cc2b927f492c1db37f4501aedfa2c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <stdio.h>
#include "base/Types.h"
#include "audio/SampleBuffer.h"
#include "base/CharString.h"

#ifndef MrsWatson_AnalyzeFile_h
#define MrsWatson_AnalyzeFile_h

typedef struct {
    const char *analysisName;
    void *functionPtr;
    int consecutiveFailCounter;
    Sample *lastSample;
    SampleCount failedSample;
    ChannelCount failedChannel;
    int failTolerance;
} AnalysisFunctionDataMembers;
typedef AnalysisFunctionDataMembers *AnalysisFunctionData;
typedef boolByte (*AnalysisFuncPtr)(const SampleBuffer sampleBuffer, AnalysisFunctionData data);

typedef struct {
    CharString failedAnalysisFunctionName;
    SampleCount *failedAnalysisFrame;
    ChannelCount *failedAnalysisChannel;
    SampleCount *currentFrame;
    boolByte *result;
    SampleBuffer sampleBuffer;
    AnalysisFunctionData functionData;
} AnalysisDataMembers;
typedef AnalysisDataMembers *AnalysisData;

AnalysisFunctionData newAnalysisFunctionData(void);
boolByte analyzeFile(const char *filename, CharString failedAnalysisFunctionName,
                     ChannelCount *failedAnalysisChannel, SampleCount *failedAnalysisFrame);
void freeAnalysisFunctionData(AnalysisFunctionData self);

#endif