# SPDX-License-Identifier: GPL-2.0-or-later
# SPDX-FileCopyrightText: Copyright (C) 2026 Max A. Vilkki a.k.a. codise
#
# flipsid::output: audio output through miniaudio (DESIGN §2.1, §3). The device callback
# pulls from an AudioRing that the player's render thread fills.

add_library(flipsid_output STATIC
    audio_output.cpp
    miniaudio_ids.cpp
    output_stage.cpp
)
add_library(flipsid::output ALIAS flipsid_output)

target_include_directories(flipsid_output PUBLIC
    "${CMAKE_CURRENT_SOURCE_DIR}/include"
)

# miniaudio stays PRIVATE: only audio_output.cpp and miniaudio_ids.cpp include it, so our
# headers don't drag its 95k lines (or its configuration macros) into every user.
# miniaudio_ids.h is the exception, for flipsid::recording, which links miniaudio itself.
target_link_libraries(flipsid_output
    PUBLIC flipsid::common
    PRIVATE ext::miniaudio
)

flipsid_configure_target(flipsid_output)
