summaryrefslogtreecommitdiff
path: root/cleopatre/application/libspid/src/hpav_info.c
blob: 4e259c64ed2ca5d8e5fcc33edc42fdceaf1beb94 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/* SPC300 bundle {{{
 *
 * Copyright (C) 2009-2011 Spidcom
 *
 * <<<Licence>>>
 *
 * }}} */
/**
 * \file    application/libspid/src/hpav_info.c
 * \brief   function for reading the HPAV info file.
 * \ingroup libspid
 *
 */

#include "libspid.h"

libspid_error_t
libspid_hpav_info_read_file (libspid_hpav_info_t *hpav_info)
{
    char is_backup_cco_str[LIBSPID_BOOLEAN_STR_MAX_LEN] = {0};
    char is_sc_str[LIBSPID_BOOLEAN_STR_MAX_LEN] = {0};
    char is_sc_button_str[LIBSPID_BOOLEAN_STR_MAX_LEN] = {0};
    libspid_error_t ret;

    if (NULL == hpav_info)
    {
        return LIBSPID_ERROR_PARAM;
    }

    const char *labels[LIBSPID_HPAV_INFO_ITEMS_COUNT] =
    {
        LIBSPID_HPAV_INFO_LABEL_STATUS,
        LIBSPID_HPAV_INFO_LABEL_CCO,
        LIBSPID_HPAV_INFO_LABEL_BACKUP_CCO,
        LIBSPID_HPAV_INFO_LABEL_SC,
        LIBSPID_HPAV_INFO_LABEL_SC_BUTTON
    };

    char *values[LIBSPID_HPAV_INFO_ITEMS_COUNT] =
    {
        hpav_info->status,
        hpav_info->cco,
        is_backup_cco_str,
        is_sc_str,
        is_sc_button_str
    };

    int buffers_len[LIBSPID_HPAV_INFO_ITEMS_COUNT]=
    {
        LIBSPID_HPAV_INFO_STATUS_MAX_LEN,
        LIBSPID_HPAV_INFO_CCO_MAX_LEN,
        LIBSPID_BOOLEAN_STR_MAX_LEN,
        LIBSPID_BOOLEAN_STR_MAX_LEN,
        LIBSPID_BOOLEAN_STR_MAX_LEN
    };

    ret = libspid_config_read_items (LIBSPID_HPAV_INFO_PATH, labels, values,
                                     buffers_len, LIBSPID_HPAV_INFO_ITEMS_COUNT);
    if (LIBSPID_SUCCESS == ret)
    {
        hpav_info->is_backup_cco = LIBSPID_GET_BOOLEAN (is_backup_cco_str);
        hpav_info->is_sc = LIBSPID_GET_BOOLEAN (is_sc_str);
        hpav_info->is_sc_button = LIBSPID_GET_BOOLEAN (is_sc_button_str);
    }

    return ret;
}