fix(M2): wire vc_client's real voice plane through the C ABI, not just raw sockets
test_m2_voice passed against raw BSD sockets, but vc_client::stream_start/stop, UDP binding, and capture/recv were still VC_ERR_NOT_IMPLEMENTED stubs -- meaning vccli and any GUI client still couldn't actually talk. Implements the real client-side UDP-binding handshake, media key derivation, capture->encode->seal-> send and recv->open->decode->playback paths, plus server-side StreamInfo broadcast so peers learn about each other's streams via sync_remote_streams(). Adds test_voice_client_abi (two real vc_client instances, not raw sockets) and vccli --voice/--mute/--text flags, manually verified live between two instances. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -67,4 +67,13 @@ if(VOICECAT_USE_VCPKG_DEPS)
|
||||
target_include_directories(test_m2_voice PRIVATE ${VC_TEST_INTERNAL_INCLUDES})
|
||||
add_test(NAME m2_voice COMMAND test_m2_voice)
|
||||
set_tests_properties(m2_voice PROPERTIES TIMEOUT 120)
|
||||
|
||||
# Same exit criterion, but through the real C ABI (vc_client), not raw sockets —
|
||||
# proves stream_start/stop/UDP-binding in core/src/core/client.cpp actually work.
|
||||
add_executable(test_voice_client_abi test_voice_client_abi.cpp)
|
||||
target_link_libraries(test_voice_client_abi PRIVATE voicecat::server)
|
||||
target_compile_features(test_voice_client_abi PRIVATE cxx_std_20)
|
||||
target_include_directories(test_voice_client_abi PRIVATE ${VC_TEST_INTERNAL_INCLUDES})
|
||||
add_test(NAME voice_client_abi COMMAND test_voice_client_abi)
|
||||
set_tests_properties(voice_client_abi PROPERTIES TIMEOUT 60)
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user