Home | History | Annotate | Download | only in processing
      1 #!/usr/bin/python
      2 
      3 # Copyright (C) 2014 The Android Open Source Project
      4 #
      5 # Licensed under the Apache License, Version 2.0 (the "License");
      6 # you may not use this file except in compliance with the License.
      7 # You may obtain a copy of the License at
      8 #
      9 #       http://www.apache.org/licenses/LICENSE-2.0
     10 #
     11 # Unless required by applicable law or agreed to in writing, software
     12 # distributed under the License is distributed on an "AS IS" BASIS,
     13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14 # See the License for the specific language governing permissions and
     15 # limitations under the License.
     16 
     17 from consts import *
     18 
     19 # Sample test for dut_playback_sample case
     20 # Input: host recording (mono),
     21 #        frequency of sine in Hz (i64)
     22 #        pass level threshold (double)
     23 # Output: device (double) frequency
     24 
     25 def playback_sample(inputData, inputTypes):
     26     output = []
     27     outputData = []
     28     outputTypes = []
     29     # basic sanity check
     30     inputError = False
     31     if (inputTypes[0] != TYPE_MONO):
     32         inputError = True
     33     if (inputTypes[1] != TYPE_I64):
     34         inputError = True
     35     if (inputTypes[2] != TYPE_DOUBLE):
     36         inputError = True
     37     if inputError:
     38         output.append(RESULT_ERROR)
     39         output.append(outputData)
     40         output.append(outputTypes)
     41         return output
     42 
     43     hostRecording = inputData[0]
     44     signalFrequency = inputData[1]
     45     threshold = inputData[2]
     46     samplingRate = 44100
     47 
     48     freq = calc_freq(hostRecording, samplingRate)
     49     print "Expected Freq ", signalFrequency, "Actual Freq ", freq, "Threshold % ", threshold
     50     diff = abs(freq - signalFrequency)
     51     if (diff < threshold):
     52         output.append(RESULT_PASS)
     53     else:
     54         output.append(RESULT_OK)
     55     outputData.append(freq)
     56     outputTypes.append(TYPE_DOUBLE)
     57     output.append(outputData)
     58     output.append(outputTypes)
     59     return output
     60 
     61 def calc_freq(recording, samplingRate):
     62     #This would calculate the frequency of recording, but is skipped in this sample test for brevity
     63     return 32000