image.cpp
Go to the documentation of this file.
00001 
00006 /*****************************************************************************
00007 ** Includes
00008 *****************************************************************************/
00009 
00010 #include <string>
00011 #include "../../include/mm_vision_msgs/image.hpp"
00012 
00013 /*****************************************************************************
00014 ** Namespaces
00015 *****************************************************************************/
00016 
00017 namespace mm_vision_msgs {
00018 
00019 /*****************************************************************************
00020 ** Utilities
00021 *****************************************************************************/
00022 
00023 std::string imageType2String(const ImageType& image_type) {
00024   switch( image_type ) {
00025     case ( ImageType::QVGA )  : return std::string("QVGA");
00026     case ( ImageType::CQVGA ) : return std::string("CQVGA");
00027     case ( ImageType::VGA )   : return std::string("VGA");
00028     case ( ImageType::CVGA )  : return std::string("CVGA");
00029     default : return "Unknown";
00030   }
00031 }
00032 
00033 } // namespace mm_vision_msgs
00034 
00035 /*****************************************************************************
00036 ** Namespaces
00037 *****************************************************************************/
00038 
00039 namespace mm_messages {
00040 
00041 /*****************************************************************************
00042 ** Implementation
00043 *****************************************************************************/
00055 void Message<mm_vision_msgs::ImagePtr>::encode(const mm_vision_msgs::ImagePtr& image, ByteArray& buffer) {
00056   // we might like to do something more tricky once we can use c++11 here (like std::move) to avoid
00057   // copying buffers.
00058   buffer = image->data;
00059 }
00060 
00068 mm_vision_msgs::ImagePtr Message<mm_vision_msgs::ImagePtr>::decode(const unsigned char* buffer, const unsigned int& size) {
00069   mm_vision_msgs::ImagePtr image = std::make_shared<mm_vision_msgs::Image>();
00070   image->data.assign(buffer, buffer + size); // c++0x buffer+size -> std::end(buffer) instead of size?
00071   if (size == 76800) { // QVGA
00072     image->width = 320;
00073     image->height = 240;
00074     image->colour = false;
00075   } else if (size == 153600) { // CQVGA
00076     image->width = 320;
00077     image->height = 240;
00078     image->colour = true;
00079   } else if (size == 307200) { // VGA
00080     image->width = 640;
00081     image->height = 480;
00082     image->colour = false;
00083   } else if (size == 614400) { // CVGA
00084     image->width = 640;
00085     image->height = 480;
00086     image->colour = true;
00087   }
00088   image->size = size;
00089   return image;
00090 }
00091 
00092 
00093 } // namespace mm_messages


mm_vision_msgs
Author(s): Daniel Stonier
autogenerated on Sun Jun 7 2015 12:58:20