📄 dsmcc-biop.h
字号:
#ifndef DSMCC_BIOP_H#define DSMCC_BIOP_H#include <vdr/receiver.h>#include "dsmcc-cache.h"#define BIOP_OBJ_OFFSET 11#define BIOP_TAG_OFFSET 17struct biop_name_comp { unsigned char id_len; char *id; unsigned char kind_len; char *kind;};struct biop_name { unsigned char comp_count; struct biop_name_comp *comps;};struct biop_body_file { unsigned long msgbody_len; unsigned long content_len;/* char *content_byte; */};/*struct biop_body_stream { struct str_info_t info_t; unsigned char contextlist_count}; struct context *contexts; unsigned long msgbody_len; unsigned char taps_count; struct biop_tap *taps;};struct biop_body_stream_event { struct str_info_t info_t; struct str_eventlist_t *eventlist_t; unsigned char contextlist_count; struct context *contexts; unsigned long msgbody_len; unsigned char taps_count; struct biop_tap *taps; unsigned char eventids_count; unsigned short *eventids;};struct str_info_t { unsigned char aDesc_len; char *aDesc; unsigned long aSec; unsigned long aMicro; unsigned char audio; unsigned char video; unsigned char data;};struct str_event_list_t event_list_t { unsigned short evNames_count; struct event_name *names;};struct event_name { unsigned char length; char *data;};*/struct biop_msg_header { unsigned char version_major; unsigned char version_minor; unsigned int message_size; unsigned char objkey_len; char *objkey; unsigned long objkind_len; char *objkind; unsigned int objinfo_len; char *objinfo;};struct biop_tap { unsigned short id; unsigned short use; unsigned short assoc_tag; unsigned short selector_len; char *selector_data;};struct biop_module_info { unsigned long mod_timeout; unsigned long block_timeout; unsigned long min_blocktime; unsigned char taps_count; struct biop_tap tap; unsigned char userinfo_len; struct descriptor *descriptors;};struct biop_dsm_connbinder { unsigned long component_tag; unsigned char component_data_len; unsigned char taps_count; struct biop_tap tap;};struct biop_obj_location { unsigned long component_tag; char component_data_len; unsigned long carousel_id; unsigned short module_id; char version_major; char version_minor; unsigned char objkey_len; char *objkey;};struct biop_profile_body { unsigned long data_len; char byte_order; char lite_components_count; struct biop_obj_location obj_loc; struct biop_dsm_connbinder dsm_conn; /* ignore the rest */};struct biop_profile_lite { ;};struct biop_ior { unsigned long type_id_len; char *type_id; unsigned long tagged_profiles_count; unsigned long profile_id_tag; union { struct biop_profile_body full; struct biop_profile_lite lite; } body; /* UKProfile - ignore other profiles */}; struct biop_binding { struct biop_name name; char binding_type; struct biop_ior ior; unsigned int objinfo_len; char *objinfo;};struct biop_body_gateway { unsigned long msgbody_len; unsigned int bindings_count; struct biop_binding binding;};struct biop_body_directory { unsigned long msgbody_len; unsigned int bindings_count; struct biop_binding binding;};struct biop_message { struct biop_msg_header hdr; union { struct biop_body_file file; struct biop_body_directory dir; struct biop_body_gateway srg;/* struct biop_body_stream str; struct biop_body_streamevent eve;*/ } body;};class Biop { public: static int ProcessBiopIor(struct biop_ior *, uchar *); static int ProcessBiopName(struct biop_name *,uchar *); static int ProcessBiopNameComp(struct biop_name_comp*,uchar *); static int ProcessBiopBinding(struct biop_binding*,uchar *Data); static int ProcessBiopModuleInfo(struct biop_module_info *, uchar *Data); static void ProcessBiopData(Cache *cache, struct cache_module_data *cachep); private: static int ProcessBiopSrg(struct biop_message *, struct cache_module_data *cachep, Cache *cache); static void ProcessBiopDir(struct biop_message *, struct cache_module_data *cachep, Cache *cache); static void ProcessBiopFile(struct biop_message *, struct cache_module_data *cachep, Cache *cache); static int ProcessBiopMsgHdr(struct biop_message *, struct cache_module_data *cachep); static int ProcessBiopTap(struct biop_tap *, uchar *); static int ProcessBiopBinder(struct biop_dsm_connbinder*,uchar*); static int ProcessBiopObject(struct biop_obj_location*, uchar*); static int ProcessBiopBody(struct biop_profile_body *,uchar *); static int ProcessBiopLite(struct biop_profile_lite *, uchar *); static void FreeBiopBinding(struct biop_binding *);};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -