diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2025-06-26 09:31:34 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2025-06-26 09:31:34 -0400 |
| commit | 769d4eae3cd98e717a9bda7612cf755ac0083f6f (patch) | |
| tree | 4e9b1f7f2e675887f99c1eab59c7316b0fea869a /src/audio-impl-pw.cpp | |
| parent | 6a4e6d14e99917039fc3c3fac3c550c4c4c2f04e (diff) | |
pke: audio naming consistency
Diffstat (limited to 'src/audio-impl-pw.cpp')
| -rw-r--r-- | src/audio-impl-pw.cpp | 146 |
1 files changed, 73 insertions, 73 deletions
diff --git a/src/audio-impl-pw.cpp b/src/audio-impl-pw.cpp index 61e27a2..ba6760e 100644 --- a/src/audio-impl-pw.cpp +++ b/src/audio-impl-pw.cpp @@ -13,7 +13,7 @@ #define PKE_AUDIO_PW_NAME_RESERVE_LEN 256 -pke_audio_implementation_pipewire pke_audio_impl_pw{}; +pke_audio_implementation_pipewire pke_audio_pw{}; int metadata_event_property(void *data, uint32_t subject, const char *key, const char *type, const char *value); @@ -49,27 +49,27 @@ bool pw_objects_find_pw_object_by_id(void *removed_id, void *item) void pke_audio_pw_init() { int i; - pke_audio_impl_pw.bkt = pk_mem_bucket_create("pipewire bucket", PK_MEM_DEFAULT_BUCKET_SIZE, PK_MEMBUCKET_FLAG_NONE); - pke_audio_impl_pw.loop = nullptr; - pke_audio_impl_pw.pod_buffer = nullptr; - pke_audio_impl_pw.stream = nullptr; - pke_audio_impl_pw.core = nullptr; - pke_audio_impl_pw.registry = nullptr; - pke_audio_impl_pw.registry_listener = {}; - pke_audio_impl_pw.metadata = nullptr; - pke_audio_impl_pw.metadata_listener = {}; - pke_audio_impl_pw.pw_objects.bkt = pke_audio_impl_pw.bkt; - pke_audio_impl_pw.created_objects.bkt = pke_audio_impl_pw.bkt; - pke_audio_impl_pw.default_sink_name = pk_new<char>(PKE_AUDIO_PW_NAME_RESERVE_LEN, pke_audio_impl_pw.bkt); - pke_audio_impl_pw.default_sink_id = 0; - pke_audio_impl_pw.is_needing_output_remapped = true; - - pke_audio_impl_pw.pod_buffer = pk_new<uint8_t>(pke_audio_mstr.channel_count * PKE_AUDIO_IMPL_POD_BUFFER_LEN, pke_audio_impl_pw.bkt); + pke_audio_pw.bkt = pk_mem_bucket_create("pipewire bucket", PK_MEM_DEFAULT_BUCKET_SIZE, PK_MEMBUCKET_FLAG_NONE); + pke_audio_pw.loop = nullptr; + pke_audio_pw.pod_buffer = nullptr; + pke_audio_pw.stream = nullptr; + pke_audio_pw.core = nullptr; + pke_audio_pw.registry = nullptr; + pke_audio_pw.registry_listener = {}; + pke_audio_pw.metadata = nullptr; + pke_audio_pw.metadata_listener = {}; + pke_audio_pw.pw_objects.bkt = pke_audio_pw.bkt; + pke_audio_pw.created_objects.bkt = pke_audio_pw.bkt; + pke_audio_pw.default_sink_name = pk_new<char>(PKE_AUDIO_PW_NAME_RESERVE_LEN, pke_audio_pw.bkt); + pke_audio_pw.default_sink_id = 0; + pke_audio_pw.is_needing_output_remapped = true; + + pke_audio_pw.pod_buffer = pk_new<uint8_t>(pke_audio_mstr.channel_count * PKE_AUDIO_POD_BUFFER_LEN, pke_audio_pw.bkt); pw_init(NULL, NULL); - pke_audio_impl_pw.loop = pw_thread_loop_new("pke audio thread", NULL); - if (pke_audio_impl_pw.loop == NULL) { + pke_audio_pw.loop = pw_thread_loop_new("pke audio thread", NULL); + if (pke_audio_pw.loop == NULL) { fprintf(stderr, "[" __FILE__ "][pke_audio_pw_init] failed to create pw_loop"); return; } @@ -82,20 +82,20 @@ void pke_audio_pw_init() { PW_KEY_MEDIA_ROLE, "Music", nullptr); assert(props != NULL); - pke_audio_impl_pw.stream = pw_stream_new_simple( - pw_thread_loop_get_loop(pke_audio_impl_pw.loop), + pke_audio_pw.stream = pw_stream_new_simple( + pw_thread_loop_get_loop(pke_audio_pw.loop), "pke-audio-pw", props, &stream_events, NULL /* user-data */); - if (pke_audio_impl_pw.stream == NULL) { + if (pke_audio_pw.stream == NULL) { fprintf(stderr, "[" __FILE__ "][pke_audio_pw_init] failed to create pw_stream"); return; } spa_pod_builder b{}; - b.data = pke_audio_impl_pw.pod_buffer; - b.size = PKE_AUDIO_IMPL_POD_BUFFER_LEN * pke_audio_mstr.channel_count; + b.data = pke_audio_pw.pod_buffer; + b.size = PKE_AUDIO_POD_BUFFER_LEN * pke_audio_mstr.channel_count; b._padding = 0; b.callbacks.data = NULL; b.callbacks.funcs = NULL; @@ -115,7 +115,7 @@ void pke_audio_pw_init() { params[0] = spa_format_audio_raw_build(&b, SPA_PARAM_EnumFormat, &spa_audio_info_raw_init); - if (i = pw_stream_connect(pke_audio_impl_pw.stream, + if (i = pw_stream_connect(pke_audio_pw.stream, PW_DIRECTION_OUTPUT, PW_ID_ANY, pw_stream_flags(PW_STREAM_FLAG_MAP_BUFFERS | PW_STREAM_FLAG_RT_PROCESS), @@ -124,55 +124,55 @@ void pke_audio_pw_init() { return; } - pke_audio_impl_pw.core = pw_stream_get_core(pke_audio_impl_pw.stream); - if (pke_audio_impl_pw.core == NULL) { + pke_audio_pw.core = pw_stream_get_core(pke_audio_pw.stream); + if (pke_audio_pw.core == NULL) { fprintf(stderr, "[" __FILE__ "][pke_audio_pw_init] failed to get core"); return; } - pke_audio_impl_pw.registry = pw_core_get_registry(pke_audio_impl_pw.core, PW_VERSION_REGISTRY, 0); - if (pke_audio_impl_pw.registry == NULL) { + pke_audio_pw.registry = pw_core_get_registry(pke_audio_pw.core, PW_VERSION_REGISTRY, 0); + if (pke_audio_pw.registry == NULL) { fprintf(stderr, "[" __FILE__ "][pke_audio_pw_init] failed to get registry"); return; } - memset(&pke_audio_impl_pw.registry_listener, 0, sizeof(pke_audio_impl_pw.registry_listener)); - pw_registry_add_listener(pke_audio_impl_pw.registry, &pke_audio_impl_pw.registry_listener, ®istry_events, NULL); + memset(&pke_audio_pw.registry_listener, 0, sizeof(pke_audio_pw.registry_listener)); + pw_registry_add_listener(pke_audio_pw.registry, &pke_audio_pw.registry_listener, ®istry_events, NULL); - pw_thread_loop_start(pke_audio_impl_pw.loop); + pw_thread_loop_start(pke_audio_pw.loop); return; } void pke_audio_pw_teardown() { uint32_t i; pke_audio_mstr.mtx_buffer.lock(); - pw_thread_loop_stop(pke_audio_impl_pw.loop); - for (i = pke_audio_impl_pw.created_objects.next; i > 0; --i) { - pw_core_destroy(pke_audio_impl_pw.core, ((void **)pke_audio_impl_pw.created_objects.data)[i - 1]); + pw_thread_loop_stop(pke_audio_pw.loop); + for (i = pke_audio_pw.created_objects.next; i > 0; --i) { + pw_core_destroy(pke_audio_pw.core, ((void **)pke_audio_pw.created_objects.data)[i - 1]); } - for (i = pke_audio_impl_pw.pw_objects.next; i > 0; --i) { - pw_properties_free(pke_audio_impl_pw.pw_objects[i - 1].props); + for (i = pke_audio_pw.pw_objects.next; i > 0; --i) { + pw_properties_free(pke_audio_pw.pw_objects[i - 1].props); } - if (pke_audio_impl_pw.metadata != NULL) { - pw_proxy_destroy((struct pw_proxy*)pke_audio_impl_pw.metadata); + if (pke_audio_pw.metadata != NULL) { + pw_proxy_destroy((struct pw_proxy*)pke_audio_pw.metadata); } - if (pke_audio_impl_pw.registry != NULL) { - pw_proxy_destroy((struct pw_proxy*)pke_audio_impl_pw.registry); + if (pke_audio_pw.registry != NULL) { + pw_proxy_destroy((struct pw_proxy*)pke_audio_pw.registry); } - if (pke_audio_impl_pw.core != NULL) { - pw_core_disconnect(pke_audio_impl_pw.core); + if (pke_audio_pw.core != NULL) { + pw_core_disconnect(pke_audio_pw.core); } - if (pke_audio_impl_pw.stream != NULL) { - pw_stream_destroy(pke_audio_impl_pw.stream); + if (pke_audio_pw.stream != NULL) { + pw_stream_destroy(pke_audio_pw.stream); } - if (pke_audio_impl_pw.loop != NULL) { - pw_thread_loop_destroy(pke_audio_impl_pw.loop); + if (pke_audio_pw.loop != NULL) { + pw_thread_loop_destroy(pke_audio_pw.loop); } pw_deinit(); - pk_delete<char>(pke_audio_impl_pw.default_sink_name, PKE_AUDIO_PW_NAME_RESERVE_LEN, pke_audio_impl_pw.bkt); - pk_delete<uint8_t>(pke_audio_impl_pw.pod_buffer, pke_audio_mstr.channel_count * PKE_AUDIO_IMPL_POD_BUFFER_LEN, pke_audio_impl_pw.bkt); - pk_mem_bucket_destroy(pke_audio_impl_pw.bkt); - pke_audio_impl_pw.bkt = CAFE_BABE(pk_membucket); + pk_delete<char>(pke_audio_pw.default_sink_name, PKE_AUDIO_PW_NAME_RESERVE_LEN, pke_audio_pw.bkt); + pk_delete<uint8_t>(pke_audio_pw.pod_buffer, pke_audio_mstr.channel_count * PKE_AUDIO_POD_BUFFER_LEN, pke_audio_pw.bkt); + pk_mem_bucket_destroy(pke_audio_pw.bkt); + pke_audio_pw.bkt = CAFE_BABE(pk_membucket); pke_audio_mstr.mtx_buffer.unlock(); } @@ -184,7 +184,7 @@ void on_pipewire_process(void *user_data) { uint64_t n_frames; float *dst; - if ((b = pw_stream_dequeue_buffer(pke_audio_impl_pw.stream)) == NULL) { + if ((b = pw_stream_dequeue_buffer(pke_audio_pw.stream)) == NULL) { fprintf(stderr, "[" __FILE__ "][on_pipewire_process] out of buffers"); return; } @@ -206,7 +206,7 @@ void on_pipewire_process(void *user_data) { buf->datas[0].chunk->offset = 0; buf->datas[0].chunk->stride = stride; buf->datas[0].chunk->size = n_frames * stride; - pw_stream_queue_buffer(pke_audio_impl_pw.stream, b); + pw_stream_queue_buffer(pke_audio_pw.stream, b); pke_audio_mstr.mtx_buffer.unlock(); return; } @@ -214,23 +214,23 @@ void on_pipewire_process(void *user_data) { void on_pipewire_stream_param_changed(void *, uint32_t id, const struct spa_pod *param) { /* NULL means to clear the format */ if (param == NULL || id != SPA_PARAM_Format) { - // memset(&pke_audio_impl_pw.format, 0, sizeof(struct spa_audio_info)); + // memset(&pke_audio_pw.format, 0, sizeof(struct spa_audio_info)); return; } - if (spa_format_parse(param, &pke_audio_impl_pw.format.media_type, &pke_audio_impl_pw.format.media_subtype) < 0) { + if (spa_format_parse(param, &pke_audio_pw.format.media_type, &pke_audio_pw.format.media_subtype) < 0) { return; } /* only accept raw audio */ - if (pke_audio_impl_pw.format.media_type != SPA_MEDIA_TYPE_audio || pke_audio_impl_pw.format.media_subtype != SPA_MEDIA_SUBTYPE_raw) { + if (pke_audio_pw.format.media_type != SPA_MEDIA_TYPE_audio || pke_audio_pw.format.media_subtype != SPA_MEDIA_SUBTYPE_raw) { return; } /* call a helper function to parse the format for us. */ - spa_format_audio_raw_parse(param, &pke_audio_impl_pw.format.info.raw); + spa_format_audio_raw_parse(param, &pke_audio_pw.format.info.raw); - fprintf(stdout, "\r\ncapturing rate changed:%d channels:%d\n", pke_audio_impl_pw.format.info.raw.rate, pke_audio_impl_pw.format.info.raw.channels); + fprintf(stdout, "\r\ncapturing rate changed:%d channels:%d\n", pke_audio_pw.format.info.raw.rate, pke_audio_pw.format.info.raw.channels); return; } @@ -238,12 +238,12 @@ int metadata_event_property(void *data, uint32_t subject, const char *key, const { if (subject == PW_ID_CORE) { if (key == NULL || spa_streq(key, "default.audio.sink")) { - if (pke_audio_impl_pw.default_sink_id != 0) { + if (pke_audio_pw.default_sink_id != 0) { // the default just changed?? - pke_audio_impl_pw.is_needing_output_remapped = true; + pke_audio_pw.is_needing_output_remapped = true; } - if (value == NULL || spa_json_str_object_find(value, strlen(value), "name", pke_audio_impl_pw.default_sink_name, sizeof(pke_audio_impl_pw.default_sink_name)) < 0) { - pke_audio_impl_pw.default_sink_name[0] = '\0'; + if (value == NULL || spa_json_str_object_find(value, strlen(value), "name", pke_audio_pw.default_sink_name, sizeof(pke_audio_pw.default_sink_name)) < 0) { + pke_audio_pw.default_sink_name[0] = '\0'; } } } @@ -317,11 +317,11 @@ void on_registry_event_global(void *data, uint32_t id, uint32_t permissions, con if (!spa_streq(str, "default")) { return; } - pke_audio_impl_pw.metadata = (pw_metadata*)pw_registry_bind(pke_audio_impl_pw.registry, id, PW_TYPE_INTERFACE_Metadata, PW_VERSION_METADATA, 0); + pke_audio_pw.metadata = (pw_metadata*)pw_registry_bind(pke_audio_pw.registry, id, PW_TYPE_INTERFACE_Metadata, PW_VERSION_METADATA, 0); - spa_zero(pke_audio_impl_pw.metadata_listener); + spa_zero(pke_audio_pw.metadata_listener); - pw_metadata_add_listener(pke_audio_impl_pw.metadata, &pke_audio_impl_pw.metadata_listener, &metadata_events, NULL); + pw_metadata_add_listener(pke_audio_pw.metadata, &pke_audio_pw.metadata_listener, &metadata_events, NULL); } else { return; } @@ -339,7 +339,7 @@ void on_registry_event_global(void *data, uint32_t id, uint32_t permissions, con printf("\r\nPW CALLBACK: object: id:%u type:%s/%d\n", id, type, version); - pk_arr_append_t(&pke_audio_impl_pw.pw_objects, obj); + pk_arr_append_t(&pke_audio_pw.pw_objects, obj); return; } @@ -347,17 +347,17 @@ void on_registry_event_global_removal(void *data, uint32_t id) { (void)data; uint32_t i; // printf("\r\nPW CALLBACK: object remove: id:%u ...", id); - if (i = pk_arr_find_first_index(&pke_audio_impl_pw.pw_objects, &id, pw_objects_find_pw_object_by_id), i != 0xFFFFFFFF) + if (i = pk_arr_find_first_index(&pke_audio_pw.pw_objects, &id, pw_objects_find_pw_object_by_id), i != 0xFFFFFFFF) { - if (pke_audio_impl_pw.pw_objects[i].type != PKE_AUDIO_PW_OBJECT_TYPE_LINK) { - pke_audio_impl_pw.is_needing_output_remapped = true; + if (pke_audio_pw.pw_objects[i].type != PKE_AUDIO_PW_OBJECT_TYPE_LINK) { + pke_audio_pw.is_needing_output_remapped = true; } - if (pke_audio_impl_pw.pw_objects[i].id == pke_audio_impl_pw.default_sink_id) { + if (pke_audio_pw.pw_objects[i].id == pke_audio_pw.default_sink_id) { // we just lost our target audio device - pke_audio_impl_pw.default_sink_id = 0; - pke_audio_impl_pw.default_sink_name[0] = '\0'; + pke_audio_pw.default_sink_id = 0; + pke_audio_pw.default_sink_name[0] = '\0'; } - pk_arr_remove_at(&pke_audio_impl_pw.pw_objects, i); + pk_arr_remove_at(&pke_audio_pw.pw_objects, i); // printf(" removed.\n"); } return; |
