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);
}
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
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) {
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
}
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;
}
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);
* 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
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;
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;
*/
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
*/