From f259ec53101a3754cd2da24a369ea48bb1947e62 Mon Sep 17 00:00:00 2001 From: Manuel Bachmann Date: Mon, 4 Jul 2016 14:29:04 +0200 Subject: Finalize basic configuration logic Configuration-related structures and values are now applied everywhere. Change-Id: I5c665a649b8c7c52dd18d214cee6c484f491b584 Signed-off-by: Manuel Bachmann --- zone.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) (limited to 'zone.c') diff --git a/zone.c b/zone.c index 3a20ab9..5b1cd07 100644 --- a/zone.c +++ b/zone.c @@ -56,3 +56,56 @@ void agl_zoneset_done (struct userdata *u) free (zs); } } + +int agl_zoneset_add_zone (struct userdata *u, const char *name, uint32_t index) +{ + agl_zoneset *zs; + agl_zone *zone; + + pa_assert (u); + pa_assert (name); + pa_assert (index < AGL_ZONE_MAX); + pa_assert_se (zs = u->zoneset); + + zone = pa_xnew (agl_zone, 1); + zone->name = pa_xstrdup (name); + zone->index = index; + + pa_hashmap_put (zs->zones.hash, (void *)zone->name, zone); + + zs->zones.index[index] = zone; + + return 0; +} + +agl_zone *agl_zoneset_get_zone_by_name (struct userdata *u, const char *name) +{ + agl_zoneset *zs; + agl_zone *zone; + + pa_assert (u); + pa_assert_se (zs = u->zoneset); + + if (name && zs->zones.hash) + zone = pa_hashmap_get (zs->zones.hash, name); + else + zone = NULL; + + return zone; +} + +agl_zone *agl_zoneset_get_zone_by_index (struct userdata *u, uint32_t index) +{ + agl_zoneset *zs; + agl_zone *zone; + + pa_assert (u); + pa_assert_se (zs = u->zoneset); + + if (index < AGL_ZONE_MAX) + zone = zs->zones.index[index]; + else + zone = NULL; + + return zone; +} -- cgit 1.2.3-korg