Files
arcs/apps/arcs-mini/services/service_volume.c
2026-08-13 16:50:52 +08:00

58 lines
1.0 KiB
C

#include <stdbool.h>
#include <stdint.h>
#define TAG "volume"
#include "lisa_log.h"
#include "lisa_kv.h"
#include "kv.h"
#include "player_mgr.h"
#define DEFAULT_VOLUME 50
void service_volume_set(int volume);
void service_volume_init(void)
{
int volume = DEFAULT_VOLUME;
if (lisa_kv_get_int(KV_KEY_USER_VOLUME, &volume) == 0) {
service_volume_set(volume);
}
LOGI("Volume service initialized");
}
void service_volume_set(int volume)
{
if (volume < 0) {
volume = 0;
}
if (volume > 100) {
volume = 100;
}
lisa_kv_set_int(KV_KEY_USER_VOLUME, volume);
player_mgr_set_volume(volume);
LOGI("Volume set to %d", volume);
}
int service_volume_get(void)
{
int volume = DEFAULT_VOLUME;
if (lisa_kv_get_int(KV_KEY_USER_VOLUME, &volume) != 0) {
volume = DEFAULT_VOLUME;
}
return volume;
}
void service_volume_adjust(int delta)
{
int current_vol = service_volume_get();
int target_vol = current_vol + delta;
service_volume_set(target_vol);
}