MythTV master
dsmccobjcarousel.h
Go to the documentation of this file.
1/*
2 * Copyright (C) David C.J. Matthews 2005, 2006
3 * Derived from libdsmcc by Richard Palmer
4 */
5#ifndef DSMCC_OBJCAROUSEL_H
6#define DSMCC_OBJCAROUSEL_H
7
8#include <list>
9#include <vector>
10
11class DsmccDii;
12class Dsmcc;
13class DsmccDb;
14class DsmccModuleInfo;
15
16#include "dsmcccache.h"
17#include "dsmccbiop.h" // For ModuleDescriptorData
18
24{
25 public:
27 unsigned short streamTag);
29
30 unsigned char *AddModuleData(DsmccDb *ddb, const unsigned char *Data);
31
32 unsigned long CarouselId(void) const { return m_carouselId; }
33 unsigned short ModuleId(void) const { return m_moduleId; }
34 unsigned short StreamId(void) const { return m_streamId; }
35 unsigned char Version(void) const { return m_version; }
36 unsigned long ModuleSize(void) const { return m_moduleSize; }
37
39 unsigned long DataSize(void) const
40 {
43 }
44
45
46 private:
47 unsigned long m_carouselId;
48 unsigned short m_moduleId;
49 unsigned short m_streamId;
50
51 unsigned char m_version;
52 unsigned long m_moduleSize;
53 unsigned long m_receivedData {0};
54
56 std::vector<QByteArray*> m_blocks;
58 bool m_completed {false};
60};
61
63{
64 public:
65 explicit ObjCarousel(Dsmcc*dsmcc) : m_fileCache(dsmcc) {}
67 void AddModuleInfo(DsmccDii *dii, Dsmcc *status, unsigned short streamTag);
68 void AddModuleData(DsmccDb *ddb, const unsigned char *data);
69
71 std::list<DSMCCCacheModuleData*> m_Cache;
73 std::vector<unsigned short> m_Tags;
74 unsigned long m_id {0};
75};
76
77#endif
78
DSMCCCacheModuleData contains information about a module and holds the blocks for a partly completed ...
unsigned char * AddModuleData(DsmccDb *ddb, const unsigned char *Data)
Add block to the module and create the module if it's now complete.
unsigned short ModuleId(void) const
unsigned short m_streamId
unsigned char m_version
unsigned long CarouselId(void) const
unsigned long m_moduleSize
Total size.
bool m_completed
True if we have completed this module.
unsigned char Version(void) const
unsigned short m_moduleId
std::vector< QByteArray * > m_blocks
Block table. As blocks are received they are added to this table.
unsigned long m_receivedData
Size received so far.
unsigned long DataSize(void) const
Return the, possibly uncompressed, module size.
DSMCCCacheModuleData(DsmccDii *dii, DsmccModuleInfo *info, unsigned short streamTag)
unsigned short StreamId(void) const
ModuleDescriptorData m_descriptorData
unsigned long ModuleSize(void) const
unsigned long m_carouselId
The object carousel is transmitted as a directed graph.
Definition: dsmcccache.h:87
Definition: dsmcc.h:78
unsigned long m_originalSize
Definition: dsmccbiop.h:210
std::list< DSMCCCacheModuleData * > m_Cache
DSMCCCache m_fileCache
ObjCarousel(Dsmcc *dsmcc)
void AddModuleData(DsmccDb *ddb, const unsigned char *data)
We have received a block for a module.
void AddModuleInfo(DsmccDii *dii, Dsmcc *status, unsigned short streamTag)
unsigned long m_id
std::vector< unsigned short > m_Tags
Component tags matched to this carousel.
dictionary info
Definition: azlyrics.py:7