From: Christian KarriƩ Date: Wed, 17 Aug 2016 08:55:33 +0000 (+0200) Subject: Working htsmsg.py X-Git-Tag: v4.2.1~372 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6fa299558da94c7c9f08e635805855c39f565091;p=thirdparty%2Ftvheadend.git Working htsmsg.py --- diff --git a/lib/py/tvh/htsmsg.py b/lib/py/tvh/htsmsg.py index 03ac1ba34..af0722c66 100644 --- a/lib/py/tvh/htsmsg.py +++ b/lib/py/tvh/htsmsg.py @@ -49,6 +49,8 @@ HMF_S64 = 2 HMF_STR = 3 HMF_BIN = 4 HMF_LIST = 5 +HMF_DBL = 6 +HMF_BOOL = 7 # Light wrapper for binary type class hmf_bin(str): @@ -57,9 +59,9 @@ class hmf_bin(str): # Convert python to HTSMSG type def hmf_type ( f ): if type(f) == list: - return HMF_MAP - elif type(f) == dict: return HMF_LIST + elif type(f) == dict: + return HMF_MAP elif type(f) == str: return HMF_STR elif type(f) == int: @@ -78,7 +80,7 @@ def _binary_count ( f ): while (f): ret = ret + 1 f = f >> 8 - elif type(f) in [ list, map ]: + elif type(f) in [ list, dict ]: ret = ret + binary_count(f) else: raise Exception('invalid data type') @@ -157,6 +159,12 @@ def deserialize0 ( data, typ = HMF_MAP ): i = i - 1 elif typ in [ HMF_LIST, HMF_MAP ]: item = deserialize0(data[:dlen], typ) + elif typ == HMF_BOOL: + bool_val = data[:dlen] + if len(bool_val) > 0: + item = bool(ord(bool_val)) + else: + item = None else: raise Exception('invalid data type %d' % typ) if islist: