alsa-project/alsa-gobject pull request #71 was opened from takaswie: Current implementation uses function of ElemInfo to express variants of element information, however it's not enough convenient in the case of language bindings. The usage of GObject.Value in object property is expected to be supported widely instead. This patchset uses object classes derived from GObject to express the variants. The common properties are expressed by two interfaces; ElemInfoCommon and ElemInfoSingleArray. All of classes implement the former, and the latter is implemented except for IEC60958 element information. ``` Takashi Sakamoto (13): ctl: card: fix indentation fix missing usage of declaration macro ctl: card: add error path when generating name list at element addition ctl: elem-info-common: add common interface for element information ctl: elem-info-iec60958: add class for element information of IEC60958 type ctl: elem-info-single-array: add interface for single array element information ctl: elem-info-boolean: add class for element information of boolean type ctl: elem-info-bytes: add class for element information of bytes type ctl: elem-info-integer: add class for element information of integer type ctl: elem-info-integer64: add class for element information of integer64 type ctl: elem-info-enumerated: add class for element information of enumerated type ctl: card: use ALSACtl.ElemInfoCommon instead of ElemInfo ctl: elem-info: remove unused classes samples/ctl | 56 +-- src/ctl/alsactl-enum-types.h | 4 + src/ctl/alsactl.h | 10 +- src/ctl/alsactl.map | 30 +- src/ctl/card.c | 156 ++++--- src/ctl/card.h | 6 +- src/ctl/elem-info-boolean.c | 90 +++++ src/ctl/elem-info-boolean.h | 22 + src/ctl/elem-info-bytes.c | 89 ++++ src/ctl/elem-info-bytes.h | 21 + src/ctl/elem-info-common.c | 135 +++++++ src/ctl/elem-info-common.h | 20 + src/ctl/elem-info-enumerated.c | 137 +++++++ src/ctl/elem-info-enumerated.h | 22 + src/ctl/elem-info-iec60958.c | 80 ++++ src/ctl/elem-info-iec60958.h | 22 + src/ctl/elem-info-integer.c | 162 ++++++++ src/ctl/elem-info-integer.h | 22 + src/ctl/elem-info-integer64.c | 162 ++++++++ src/ctl/elem-info-integer64.h | 22 + src/ctl/elem-info-single-array.c | 68 ++++ src/ctl/elem-info-single-array.h | 20 + src/ctl/elem-info.c | 379 ------------------ src/ctl/elem-info.h | 30 -- src/ctl/meson.build | 18 +- src/ctl/privates.h | 54 ++- src/hwdep/alsahwdep-enum-types.h | 4 + src/rawmidi/alsarawmidi-enum-types.h | 4 + src/seq/alsaseq-enum-types.h | 4 + src/timer/alsatimer-enum-types.h | 4 + ...tl-elem-info => alsactl-elem-info-boolean} | 10 +- tests/alsactl-elem-info-bytes | 26 ++ tests/alsactl-elem-info-enumerated | 27 ++ tests/alsactl-elem-info-iec60958 | 25 ++ tests/alsactl-elem-info-integer | 29 ++ tests/alsactl-elem-info-integer64 | 29 ++ tests/meson.build | 7 +- 37 files changed, 1492 insertions(+), 514 deletions(-) create mode 100644 src/ctl/elem-info-boolean.c create mode 100644 src/ctl/elem-info-boolean.h create mode 100644 src/ctl/elem-info-bytes.c create mode 100644 src/ctl/elem-info-bytes.h create mode 100644 src/ctl/elem-info-common.c create mode 100644 src/ctl/elem-info-common.h create mode 100644 src/ctl/elem-info-enumerated.c create mode 100644 src/ctl/elem-info-enumerated.h create mode 100644 src/ctl/elem-info-iec60958.c create mode 100644 src/ctl/elem-info-iec60958.h create mode 100644 src/ctl/elem-info-integer.c create mode 100644 src/ctl/elem-info-integer.h create mode 100644 src/ctl/elem-info-integer64.c create mode 100644 src/ctl/elem-info-integer64.h create mode 100644 src/ctl/elem-info-single-array.c create mode 100644 src/ctl/elem-info-single-array.h delete mode 100644 src/ctl/elem-info.c delete mode 100644 src/ctl/elem-info.h rename tests/{alsactl-elem-info => alsactl-elem-info-boolean} (68%) create mode 100644 tests/alsactl-elem-info-bytes create mode 100644 tests/alsactl-elem-info-enumerated create mode 100644 tests/alsactl-elem-info-iec60958 create mode 100644 tests/alsactl-elem-info-integer create mode 100644 tests/alsactl-elem-info-integer64 ``` Request URL : https://github.com/alsa-project/alsa-gobject/pull/71 Patch URL : https://github.com/alsa-project/alsa-gobject/pull/71.patch Repository URL: https://github.com/alsa-project/alsa-gobject