Skip to content

Commit f6e227d

Browse files
committed
api: Remove packet processors from public API
Packet processors should not appear in public API. Users never directly interact with these classes.
1 parent 63d16e7 commit f6e227d

File tree

5 files changed

+52
-62
lines changed

5 files changed

+52
-62
lines changed

include/internal/libfreenect2/depth_packet_processor.h

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ namespace libfreenect2
4040
{
4141

4242
/** Data packet with depth information. */
43-
struct LIBFREENECT2_API DepthPacket
43+
struct DepthPacket
4444
{
4545
uint32_t sequence;
4646
uint32_t timestamp;
@@ -51,11 +51,11 @@ struct LIBFREENECT2_API DepthPacket
5151
/** Class for processing depth information. */
5252
typedef PacketProcessor<DepthPacket> BaseDepthPacketProcessor;
5353

54-
class LIBFREENECT2_API DepthPacketProcessor : public BaseDepthPacketProcessor
54+
class DepthPacketProcessor : public BaseDepthPacketProcessor
5555
{
5656
public:
5757
/** Configuration of depth processing. */
58-
struct LIBFREENECT2_API Config
58+
struct Config
5959
{
6060
float MinDepth;
6161
float MaxDepth;
@@ -67,7 +67,7 @@ class LIBFREENECT2_API DepthPacketProcessor : public BaseDepthPacketProcessor
6767
};
6868

6969
/** Parameters of depth processing. */
70-
struct LIBFREENECT2_API Parameters
70+
struct Parameters
7171
{
7272
float ab_multiplier;
7373
float ab_multiplier_per_frq[3];
@@ -125,7 +125,7 @@ class LIBFREENECT2_API DepthPacketProcessor : public BaseDepthPacketProcessor
125125
class OpenGLDepthPacketProcessorImpl;
126126

127127
/** Depth packet processor using OpenGL. */
128-
class LIBFREENECT2_API OpenGLDepthPacketProcessor : public DepthPacketProcessor
128+
class OpenGLDepthPacketProcessor : public DepthPacketProcessor
129129
{
130130
public:
131131
OpenGLDepthPacketProcessor(void *parent_opengl_context_ptr, bool debug);
@@ -147,7 +147,7 @@ class LIBFREENECT2_API OpenGLDepthPacketProcessor : public DepthPacketProcessor
147147
class CpuDepthPacketProcessorImpl;
148148

149149
/** Depth packet processor using the CPU. */
150-
class LIBFREENECT2_API CpuDepthPacketProcessor : public DepthPacketProcessor
150+
class CpuDepthPacketProcessor : public DepthPacketProcessor
151151
{
152152
public:
153153
CpuDepthPacketProcessor();
@@ -168,7 +168,7 @@ class LIBFREENECT2_API CpuDepthPacketProcessor : public DepthPacketProcessor
168168
class OpenCLDepthPacketProcessorImpl;
169169

170170
/** Depth packet processor using OpenCL. */
171-
class LIBFREENECT2_API OpenCLDepthPacketProcessor : public DepthPacketProcessor
171+
class OpenCLDepthPacketProcessor : public DepthPacketProcessor
172172
{
173173
public:
174174
OpenCLDepthPacketProcessor(const int deviceId = -1);

include/internal/libfreenect2/rgb_packet_processor.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ namespace libfreenect2
4040
{
4141

4242
/** Packet with JPEG data. */
43-
struct LIBFREENECT2_API RgbPacket
43+
struct RgbPacket
4444
{
4545
uint32_t sequence;
4646

@@ -56,7 +56,7 @@ struct LIBFREENECT2_API RgbPacket
5656
typedef PacketProcessor<RgbPacket> BaseRgbPacketProcessor;
5757

5858
/** JPEG processor. */
59-
class LIBFREENECT2_API RgbPacketProcessor : public BaseRgbPacketProcessor
59+
class RgbPacketProcessor : public BaseRgbPacketProcessor
6060
{
6161
public:
6262
RgbPacketProcessor();
@@ -68,7 +68,7 @@ class LIBFREENECT2_API RgbPacketProcessor : public BaseRgbPacketProcessor
6868
};
6969

7070
/** Class for dumping the JPEG information, eg to file. */
71-
class LIBFREENECT2_API DumpRgbPacketProcessor : public RgbPacketProcessor
71+
class DumpRgbPacketProcessor : public RgbPacketProcessor
7272
{
7373
public:
7474
DumpRgbPacketProcessor();
@@ -80,7 +80,7 @@ class LIBFREENECT2_API DumpRgbPacketProcessor : public RgbPacketProcessor
8080
class TurboJpegRgbPacketProcessorImpl;
8181

8282
/** Processor to decode JPEG to image, using TurboJpeg. */
83-
class LIBFREENECT2_API TurboJpegRgbPacketProcessor : public RgbPacketProcessor
83+
class TurboJpegRgbPacketProcessor : public RgbPacketProcessor
8484
{
8585
public:
8686
TurboJpegRgbPacketProcessor();

include/libfreenect2/packet_pipeline.h

Lines changed: 6 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,13 @@
3030
#define PACKET_PIPELINE_H_
3131

3232
#include <libfreenect2/config.h>
33-
#include <libfreenect2/depth_packet_processor.h>
34-
#include <libfreenect2/rgb_packet_processor.h>
3533

3634
namespace libfreenect2
3735
{
3836

3937
class DataCallback;
38+
class RgbPacketProcessor;
39+
class DepthPacketProcessor;
4040

4141
/** Packet pipeline for data processing of the device. */
4242
class LIBFREENECT2_API PacketPipeline
@@ -52,38 +52,27 @@ class LIBFREENECT2_API PacketPipeline
5252
virtual DepthPacketProcessor *getDepthPacketProcessor() const = 0;
5353
};
5454

55-
class RgbPacketStreamParser;
56-
class DepthPacketStreamParser;
55+
class BasePacketPipelineComponents;
5756

5857
/** Front of the pipeline, RGB and Depth parsing and processing. */
5958
class LIBFREENECT2_API BasePacketPipeline : public PacketPipeline
6059
{
61-
protected:
62-
RgbPacketStreamParser *rgb_parser_;
63-
DepthPacketStreamParser *depth_parser_;
64-
65-
RgbPacketProcessor *rgb_processor_;
66-
BaseRgbPacketProcessor *async_rgb_processor_;
67-
DepthPacketProcessor *depth_processor_;
68-
BaseDepthPacketProcessor *async_depth_processor_;
69-
70-
virtual void initialize();
71-
virtual DepthPacketProcessor *createDepthPacketProcessor() = 0;
7260
public:
61+
BasePacketPipeline();
7362
virtual ~BasePacketPipeline();
7463

7564
virtual PacketParser *getRgbPacketParser() const;
7665
virtual PacketParser *getIrPacketParser() const;
7766

7867
virtual RgbPacketProcessor *getRgbPacketProcessor() const;
7968
virtual DepthPacketProcessor *getDepthPacketProcessor() const;
69+
protected:
70+
BasePacketPipelineComponents *comp_;
8071
};
8172

8273
/** Complete pipe line with depth processing by the CPU. */
8374
class LIBFREENECT2_API CpuPacketPipeline : public BasePacketPipeline
8475
{
85-
protected:
86-
virtual DepthPacketProcessor *createDepthPacketProcessor();
8776
public:
8877
CpuPacketPipeline();
8978
virtual ~CpuPacketPipeline();
@@ -96,7 +85,6 @@ class LIBFREENECT2_API OpenGLPacketPipeline : public BasePacketPipeline
9685
protected:
9786
void *parent_opengl_context_;
9887
bool debug_;
99-
virtual DepthPacketProcessor *createDepthPacketProcessor();
10088
public:
10189
OpenGLPacketPipeline(void *parent_opengl_context = 0, bool debug = false);
10290
virtual ~OpenGLPacketPipeline();
@@ -109,7 +97,6 @@ class LIBFREENECT2_API OpenCLPacketPipeline : public BasePacketPipeline
10997
{
11098
protected:
11199
const int deviceId;
112-
virtual DepthPacketProcessor *createDepthPacketProcessor();
113100
public:
114101
OpenCLPacketPipeline(const int deviceId = -1);
115102
virtual ~OpenCLPacketPipeline();

src/libfreenect2.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@
3939
#include <libfreenect2/usb/event_loop.h>
4040
#include <libfreenect2/usb/transfer_pool.h>
4141
#include <libfreenect2/packet_pipeline.h>
42+
#include <libfreenect2/depth_packet_processor.h>
43+
#include <libfreenect2/rgb_packet_processor.h>
4244
#include <libfreenect2/protocol/usb_control.h>
4345
#include <libfreenect2/protocol/command.h>
4446
#include <libfreenect2/protocol/response.h>

src/packet_pipeline.cpp

Lines changed: 33 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,28 @@ PacketPipeline::~PacketPipeline()
3939
{
4040
}
4141

42-
void BasePacketPipeline::initialize()
42+
class BasePacketPipelineComponents
43+
{
44+
public:
45+
RgbPacketStreamParser *rgb_parser_;
46+
DepthPacketStreamParser *depth_parser_;
47+
48+
RgbPacketProcessor *rgb_processor_;
49+
BaseRgbPacketProcessor *async_rgb_processor_;
50+
DepthPacketProcessor *depth_processor_;
51+
BaseDepthPacketProcessor *async_depth_processor_;
52+
53+
~BasePacketPipelineComponents();
54+
void initialize(RgbPacketProcessor *rgb, DepthPacketProcessor *depth);
55+
};
56+
57+
void BasePacketPipelineComponents::initialize(RgbPacketProcessor *rgb, DepthPacketProcessor *depth)
4358
{
4459
rgb_parser_ = new RgbPacketStreamParser();
4560
depth_parser_ = new DepthPacketStreamParser();
4661

47-
rgb_processor_ = new TurboJpegRgbPacketProcessor();
48-
depth_processor_ = createDepthPacketProcessor();
62+
rgb_processor_ = rgb;
63+
depth_processor_ = depth;
4964

5065
async_rgb_processor_ = new AsyncPacketProcessor<RgbPacket>(rgb_processor_);
5166
async_depth_processor_ = new AsyncPacketProcessor<DepthPacket>(depth_processor_);
@@ -54,7 +69,7 @@ void BasePacketPipeline::initialize()
5469
depth_parser_->setPacketProcessor(async_depth_processor_);
5570
}
5671

57-
BasePacketPipeline::~BasePacketPipeline()
72+
BasePacketPipelineComponents::~BasePacketPipelineComponents()
5873
{
5974
delete async_rgb_processor_;
6075
delete async_depth_processor_;
@@ -64,72 +79,58 @@ BasePacketPipeline::~BasePacketPipeline()
6479
delete depth_parser_;
6580
}
6681

82+
BasePacketPipeline::BasePacketPipeline(): comp_(new BasePacketPipelineComponents()) {}
83+
84+
BasePacketPipeline::~BasePacketPipeline()
85+
{
86+
delete comp_;
87+
}
88+
6789
BasePacketPipeline::PacketParser *BasePacketPipeline::getRgbPacketParser() const
6890
{
69-
return rgb_parser_;
91+
return comp_->rgb_parser_;
7092
}
7193

7294
BasePacketPipeline::PacketParser *BasePacketPipeline::getIrPacketParser() const
7395
{
74-
return depth_parser_;
96+
return comp_->depth_parser_;
7597
}
7698

7799
RgbPacketProcessor *BasePacketPipeline::getRgbPacketProcessor() const
78100
{
79-
return rgb_processor_;
101+
return comp_->rgb_processor_;
80102
}
81103

82104
DepthPacketProcessor *BasePacketPipeline::getDepthPacketProcessor() const
83105
{
84-
return depth_processor_;
106+
return comp_->depth_processor_;
85107
}
86108

87109
CpuPacketPipeline::CpuPacketPipeline()
88110
{
89-
initialize();
111+
comp_->initialize(new TurboJpegRgbPacketProcessor(), new CpuDepthPacketProcessor());
90112
}
91113

92114
CpuPacketPipeline::~CpuPacketPipeline() { }
93115

94-
DepthPacketProcessor *CpuPacketPipeline::createDepthPacketProcessor()
95-
{
96-
CpuDepthPacketProcessor *depth_processor = new CpuDepthPacketProcessor();
97-
98-
return depth_processor;
99-
}
100-
101116
#ifdef LIBFREENECT2_WITH_OPENGL_SUPPORT
102117
OpenGLPacketPipeline::OpenGLPacketPipeline(void *parent_opengl_context, bool debug) : parent_opengl_context_(parent_opengl_context), debug_(debug)
103118
{
104-
initialize();
119+
comp_->initialize(new TurboJpegRgbPacketProcessor(), new OpenGLDepthPacketProcessor(parent_opengl_context_, debug_));
105120
}
106121

107122
OpenGLPacketPipeline::~OpenGLPacketPipeline() { }
108-
109-
DepthPacketProcessor *OpenGLPacketPipeline::createDepthPacketProcessor()
110-
{
111-
OpenGLDepthPacketProcessor *depth_processor = new OpenGLDepthPacketProcessor(parent_opengl_context_, debug_);
112-
113-
return depth_processor;
114-
}
115123
#endif // LIBFREENECT2_WITH_OPENGL_SUPPORT
116124

117125

118126
#ifdef LIBFREENECT2_WITH_OPENCL_SUPPORT
119127

120128
OpenCLPacketPipeline::OpenCLPacketPipeline(const int deviceId) : deviceId(deviceId)
121129
{
122-
initialize();
130+
comp_->initialize(new TurboJpegRgbPacketProcessor(), new OpenCLDepthPacketProcessor(deviceId));
123131
}
124132

125133
OpenCLPacketPipeline::~OpenCLPacketPipeline() { }
126-
127-
DepthPacketProcessor *OpenCLPacketPipeline::createDepthPacketProcessor()
128-
{
129-
OpenCLDepthPacketProcessor *depth_processor = new OpenCLDepthPacketProcessor(deviceId);
130-
131-
return depth_processor;
132-
}
133134
#endif // LIBFREENECT2_WITH_OPENCL_SUPPORT
134135

135136
} /* namespace libfreenect2 */

0 commit comments

Comments
 (0)