# SPDX-License-Identifier: GPL-2.0-or-later
# SPDX-FileCopyrightText: Copyright (C) 2026 Max A. Vilkki a.k.a. codise
#
# flipsid::player: plays tunes into an AudioOutput (DESIGN §3). The UI thread sends
# commands; a worker thread prepares libsidplayfp sessions and a render thread plays them
# into the output's ring, and ends each subtune at its length or after silence (§4.3).

add_library(flipsid_player STATIC
    c64_roms.cpp
    file_name_subtune.cpp
    player.cpp
    renderer.cpp
    session.cpp
    song_end.cpp
    tune_files.cpp
    worker.cpp
)
add_library(flipsid::player ALIAS flipsid_player)

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

find_package(Threads REQUIRED)
target_link_libraries(flipsid_player
    PUBLIC flipsid::common flipsid::output flipsid::engines flipsid::sidout
    PRIVATE flipsid::log ext::sidplayfp Threads::Threads
)

flipsid_configure_target(flipsid_player)
