From: Jaroslav Kysela Date: Wed, 13 Jan 2016 09:50:25 +0000 (+0100) Subject: cleanup: use tvh_uuid_t instead uint8_t array for idnode_t X-Git-Tag: v4.2.1~1174 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b091feb4394afce09bf6a67cffc137f002dd1b1e;p=thirdparty%2Ftvheadend.git cleanup: use tvh_uuid_t instead uint8_t array for idnode_t --- diff --git a/src/channels.c b/src/channels.c index 5e775176a..1508482b5 100644 --- a/src/channels.c +++ b/src/channels.c @@ -497,7 +497,7 @@ channel_t * channel_find_by_id ( uint32_t i ) { channel_t skel; - memcpy(skel.ch_id.in_uuid, &i, sizeof(i)); + memcpy(skel.ch_id.in_uuid.bin, &i, sizeof(i)); return RB_FIND(&channels, &skel, ch_link, ch_id_cmp); } diff --git a/src/idnode.c b/src/idnode.c index 6857152ff..a3f513b94 100644 --- a/src/idnode.c +++ b/src/idnode.c @@ -57,7 +57,7 @@ SKEL_DECLARE(idclasses_skel, idclass_link_t); static int in_cmp(const idnode_t *a, const idnode_t *b) { - return memcmp(a->in_uuid, b->in_uuid, sizeof(a->in_uuid)); + return uuid_cmp(&a->in_uuid, &b->in_uuid); } static int @@ -131,7 +131,7 @@ idnode_insert(idnode_t *in, const char *uuid, const idclass_t *class, int flags) in->in_class = NULL; return -1; } - memcpy(in->in_uuid, u.bin, sizeof(in->in_uuid)); + uuid_copy(&in->in_uuid, &u); c = NULL; if (flags & IDNODE_SHORT_UUID) { @@ -234,7 +234,7 @@ uint32_t idnode_get_short_uuid (const idnode_t *in) { uint32_t u32; - memcpy(&u32, in->in_uuid, sizeof(u32)); + memcpy(&u32, in->in_uuid.bin, sizeof(u32)); return u32 & 0x7FFFFFFF; // compat needs to be +ve signed } @@ -244,7 +244,7 @@ idnode_get_short_uuid (const idnode_t *in) const char * idnode_uuid_as_str(const idnode_t *in, char *uuid) { - bin2hex(uuid, UUID_HEX_SIZE, in->in_uuid, sizeof(in->in_uuid)); + bin2hex(uuid, UUID_HEX_SIZE, in->in_uuid.bin, sizeof(in->in_uuid.bin)); return uuid; } @@ -608,7 +608,7 @@ idnode_find ( const char *uuid, const idclass_t *idc, const idnodes_rb_t *domain tvhtrace("idnode", "find node %s class %s", uuid, idc ? idc->ic_class : NULL); if(uuid == NULL || strlen(uuid) != UUID_HEX_SIZE - 1) return NULL; - if(hex2bin(skel.in_uuid, sizeof(skel.in_uuid), uuid)) + if(hex2bin(skel.in_uuid.bin, sizeof(skel.in_uuid.bin), uuid)) return NULL; if (domain == NULL) domain = idnode_domain(idc); diff --git a/src/idnode.h b/src/idnode.h index 53665706c..490b2f0fa 100644 --- a/src/idnode.h +++ b/src/idnode.h @@ -83,7 +83,7 @@ typedef RB_HEAD(, idnode) idnodes_rb_t; * Node definition */ struct idnode { - uint8_t in_uuid[UUID_BIN_SIZE]; ///< Unique ID + tvh_uuid_t in_uuid; ///< Unique ID RB_ENTRY(idnode) in_link; ///< Global hash RB_ENTRY(idnode) in_domain_link; ///< Root class link (domain) idnodes_rb_t *in_domain; ///< Domain nodes diff --git a/src/input/mpegts/satip/satip.c b/src/input/mpegts/satip/satip.c index 7f1e3addd..e3226815b 100644 --- a/src/input/mpegts/satip/satip.c +++ b/src/input/mpegts/satip/satip.c @@ -675,7 +675,7 @@ satip_device_find( const char *satip_uuid ) satip_device_calc_bin_uuid(binuuid, satip_uuid); TVH_HARDWARE_FOREACH(th) { if (idnode_is_instance(&th->th_id, &satip_device_class) && - memcmp(th->th_id.in_uuid, binuuid, UUID_BIN_SIZE) == 0) + memcmp(th->th_id.in_uuid.bin, binuuid, UUID_BIN_SIZE) == 0) return (satip_device_t *)th; } return NULL; diff --git a/src/input/mpegts/tvhdhomerun/tvhdhomerun.c b/src/input/mpegts/tvhdhomerun/tvhdhomerun.c index 3425a8172..a3d665761 100644 --- a/src/input/mpegts/tvhdhomerun/tvhdhomerun.c +++ b/src/input/mpegts/tvhdhomerun/tvhdhomerun.c @@ -249,7 +249,7 @@ tvhdhomerun_device_find( uint32_t device_id ) tvhdhomerun_device_calc_bin_uuid(binuuid, device_id); TVH_HARDWARE_FOREACH(th) { if (idnode_is_instance(&th->th_id, &tvhdhomerun_device_class) && - memcmp(th->th_id.in_uuid, binuuid, UUID_BIN_SIZE) == 0) + memcmp(th->th_id.in_uuid.bin, binuuid, UUID_BIN_SIZE) == 0) return (tvhdhomerun_device_t *)th; } return NULL; diff --git a/src/uuid.h b/src/uuid.h index fcd775ad4..ebe8df6a1 100644 --- a/src/uuid.h +++ b/src/uuid.h @@ -59,6 +59,22 @@ int uuid_bin2hex ( const tvh_uuid_t *a, tvh_uuid_t *b ); */ int uuid_hex2bin ( const tvh_uuid_t *a, tvh_uuid_t *b ); +/** + * Copy + */ +static inline void uuid_copy ( tvh_uuid_t *dst, const tvh_uuid_t *src ) +{ + *dst = *src; +} + +/** + * Compare + */ +static inline int uuid_cmp ( const tvh_uuid_t *a, const tvh_uuid_t *b ) +{ + return memcmp(a->bin, b->bin, UUID_BIN_SIZE); +} + /** * Valid hex uuid */