diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2020-11-03 10:29:50 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2020-11-14 13:39:40 +0000 |
commit | 4550dcfbdf2e1c8c4db0d7b7260144fb653c095d (patch) | |
tree | 50aada1b436481ca83c6099bebefe5b134a66ca7 /src/kerneldevice/mm-kernel-device.c | |
parent | 1e1fe8fb9c9b02de5f29f33bd46575d4d88f1464 (diff) |
kerneldevice: no need to subclass the type getters
We can just subclass the methods to check whether a given property
exists and to get it as a string, and then implement in the generic
class the actual boolean/int/hex type getters common for all.
Diffstat (limited to 'src/kerneldevice/mm-kernel-device.c')
-rw-r--r-- | src/kerneldevice/mm-kernel-device.c | 49 |
1 files changed, 31 insertions, 18 deletions
diff --git a/src/kerneldevice/mm-kernel-device.c b/src/kerneldevice/mm-kernel-device.c index 71e13077..a0717cc2 100644 --- a/src/kerneldevice/mm-kernel-device.c +++ b/src/kerneldevice/mm-kernel-device.c @@ -16,6 +16,9 @@ #include <config.h> #include <string.h> +#define _LIBMM_INSIDE_MM +#include <libmm-glib.h> + #include "mm-kernel-device.h" #include "mm-log-object.h" @@ -196,27 +199,32 @@ gboolean mm_kernel_device_get_property_as_boolean (MMKernelDevice *self, const gchar *property) { - return (MM_KERNEL_DEVICE_GET_CLASS (self)->get_property_as_boolean ? - MM_KERNEL_DEVICE_GET_CLASS (self)->get_property_as_boolean (self, property) : - FALSE); + const gchar *value; + + value = mm_kernel_device_get_property (self, property); + return (value && mm_common_get_boolean_from_string (value, NULL)); } gint mm_kernel_device_get_property_as_int (MMKernelDevice *self, const gchar *property) { - return (MM_KERNEL_DEVICE_GET_CLASS (self)->get_property_as_int ? - MM_KERNEL_DEVICE_GET_CLASS (self)->get_property_as_int (self, property) : - -1); + const gchar *value; + gint aux; + + value = mm_kernel_device_get_property (self, property); + return ((value && mm_get_int_from_str (value, &aux)) ? aux : 0); } guint mm_kernel_device_get_property_as_int_hex (MMKernelDevice *self, const gchar *property) { - return (MM_KERNEL_DEVICE_GET_CLASS (self)->get_property_as_int_hex ? - MM_KERNEL_DEVICE_GET_CLASS (self)->get_property_as_int_hex (self, property) : - 0); + const gchar *value; + guint aux; + + value = mm_kernel_device_get_property (self, property); + return ((value && mm_get_uint_from_hex_str (value, &aux)) ? aux : 0); } gboolean @@ -241,27 +249,32 @@ gboolean mm_kernel_device_get_global_property_as_boolean (MMKernelDevice *self, const gchar *property) { - return (MM_KERNEL_DEVICE_GET_CLASS (self)->get_global_property_as_boolean ? - MM_KERNEL_DEVICE_GET_CLASS (self)->get_global_property_as_boolean (self, property) : - FALSE); + const gchar *value; + + value = mm_kernel_device_get_global_property (self, property); + return (value && mm_common_get_boolean_from_string (value, NULL)); } gint mm_kernel_device_get_global_property_as_int (MMKernelDevice *self, const gchar *property) { - return (MM_KERNEL_DEVICE_GET_CLASS (self)->get_global_property_as_int ? - MM_KERNEL_DEVICE_GET_CLASS (self)->get_global_property_as_int (self, property) : - -1); + const gchar *value; + gint aux; + + value = mm_kernel_device_get_global_property (self, property); + return ((value && mm_get_int_from_str (value, &aux)) ? aux : 0); } guint mm_kernel_device_get_global_property_as_int_hex (MMKernelDevice *self, const gchar *property) { - return (MM_KERNEL_DEVICE_GET_CLASS (self)->get_global_property_as_int_hex ? - MM_KERNEL_DEVICE_GET_CLASS (self)->get_global_property_as_int_hex (self, property) : - 0); + const gchar *value; + guint aux; + + value = mm_kernel_device_get_global_property (self, property); + return ((value && mm_get_uint_from_hex_str (value, &aux)) ? aux : 0); } /*****************************************************************************/ |