diff options
author | Manuel Bachmann <manuel.bachmann@iot.bzh> | 2016-07-04 14:29:04 +0200 |
---|---|---|
committer | Yannick Gicquel <yannick.gicquel@iot.bzh> | 2016-10-11 17:09:07 +0200 |
commit | f259ec53101a3754cd2da24a369ea48bb1947e62 (patch) | |
tree | 76a42068003af728c71ec1d253eeb869189c9c97 /zone.c | |
parent | acb229813f5845e8b38bea56870211319887f3b4 (diff) |
Finalize basic configuration logic
Configuration-related structures and values are now
applied everywhere.
Change-Id: I5c665a649b8c7c52dd18d214cee6c484f491b584
Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
Diffstat (limited to 'zone.c')
-rw-r--r-- | zone.c | 53 |
1 files changed, 53 insertions, 0 deletions
@@ -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; +} |