# Copyright 2021 The Cobalt Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

static_library("speech") {
  sources = [
    "audio_buffer.cc",
    "audio_buffer.h",
    "chunked_byte_buffer.cc",
    "chunked_byte_buffer.h",
    "endpointer/endpointer.cc",
    "endpointer/endpointer.h",
    "endpointer/energy_endpointer.cc",
    "endpointer/energy_endpointer.h",
    "endpointer/energy_endpointer_params.cc",
    "endpointer/energy_endpointer_params.h",
  ]
  deps = [
    "//base",
    "//cobalt/media",
  ]
}

target(gtest_target_type, "speech_test") {
  testonly = true
  sources = [
    "chunked_byte_buffer_unittest.cc",
    "endpointer/endpointer_unittest.cc",
  ]
  deps = [
    ":speech",
    "//cobalt/media",
    "//cobalt/test:run_all_unittests",
    "//starboard",
    "//testing/gtest",
  ]
}
