Ctrl K
ComunidadGuías…

server/src/audio_lifecycle_policy.h

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
/**
 * @file src/audio_lifecycle_policy.h
 * @brief Pure decisions for shared audio ownership across app lifecycle edges.
 */
#pragma once

namespace audio::lifecycle {
  enum class release_action_e {
    restore,
    retain,
    ignore,
  };

  constexpr release_action_e final_owner_release_action(
    const bool restore_sink,
    const bool app_active,
    const bool app_termination_requested
  ) {
    if (!restore_sink) {
      return release_action_e::ignore;
    }
    if (app_active && !app_termination_requested) {
      return release_action_e::retain;
    }
    return release_action_e::restore;
  }

  constexpr bool can_reclaim_retained_audio(
    const bool retained,
    const bool app_active,
    const bool app_termination_requested
  ) {
    return retained && app_active && !app_termination_requested;
  }
}  // namespace audio::lifecycle