00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef __FIREVISION_FVUTILS_NET_FUSE_IMAGE_CONTENT_H_
00025 #define __FIREVISION_FVUTILS_NET_FUSE_IMAGE_CONTENT_H_
00026
00027 #include <fvutils/net/fuse.h>
00028 #include <fvutils/net/fuse_message_content.h>
00029 #include <utils/time/time.h>
00030 #include <sys/types.h>
00031
00032 namespace firevision {
00033 #if 0
00034 }
00035 #endif
00036
00037 class SharedMemoryImageBuffer;
00038
00039 class FuseImageContent : public FuseMessageContent
00040 {
00041 public:
00042 FuseImageContent(SharedMemoryImageBuffer *b);
00043 FuseImageContent(uint32_t type, void *payload, size_t payload_size);
00044 FuseImageContent(FUSE_image_format_t image_format, const char *image_id,
00045 unsigned char *buffer, size_t buffer_size,
00046 colorspace_t colorspace,
00047 unsigned int width, unsigned int height,
00048 long int capture_time_sec = 0, long int capture_time_usec = 0);
00049
00050 ~FuseImageContent();
00051
00052 unsigned char * buffer() const;
00053 size_t buffer_size() const;
00054 unsigned int pixel_width() const;
00055 unsigned int pixel_height() const;
00056 unsigned int colorspace() const;
00057 unsigned int format() const;
00058 void decompress(unsigned char *yuv422_planar_buffer, size_t buffer_size);
00059
00060 fawkes::Time * capture_time() const;
00061
00062 virtual void serialize();
00063
00064 private:
00065 unsigned char *__buffer;
00066 size_t __buffer_size;
00067 FUSE_image_message_header_t *__header;
00068
00069 mutable fawkes::Time *__capture_time;
00070 };
00071
00072 }
00073
00074 #endif