/usr/include/tango/encoded_attribute.h is in libtango7-dev 7.2.6+dfsg-4build2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 | ///=============================================================================
//
// file : encoded_attribute.h
//
// description : Include file for the management of Tango::DevEncoded format
//
// project : TANGO
//
// author(s) : JL Pons
//
// Copyright (C) : 2004,2005,2006,2007,2008,2009,2010,2011
// European Synchrotron Radiation Facility
// BP 220, Grenoble 38043
// FRANCE
//
// This file is part of Tango.
//
// Tango is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Tango is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with Tango. If not, see <http://www.gnu.org/licenses/>.
//
// $Revision: 15556 $
//
// $Log$
// Revision 3.8 2010/09/09 13:45:22 taurel
// - Add year 2010 in Copyright notice
//
// Revision 3.7 2009/09/18 09:18:06 taurel
// - End of attribute serialization implementation?
//
// Revision 3.6 2009/09/10 07:00:30 taurel
// - Add some documentation fo rthe new ctor
//
// Revision 3.5 2009/09/08 14:22:15 taurel
// - Manage internal buffer(s) as a cicular buffer pool
//
// Revision 3.4 2009/04/06 06:54:34 taurel
// - Fix some typos
// - Commit in Unix format
//
// Revision 3.3 2009/03/26 16:08:44 jlpons
// Added decoding interface (DevEncoded format)
//
// Revision 3.2 2009/03/20 15:15:31 jlpons
// Fixed inline assembly error on gcc 4 release
//
// Revision 3.1 2009/03/19 17:50:29 jlpons
// Added management of DevEncoded format
//
//
//=============================================================================
#include <tango.h>
#ifndef _ENCODED_ATT_H
#define _ENCODED_ATT_H
#include <encoded_format.h>
namespace Tango
{
class EncodedAttributeExt
{
};
/**
* This class provides method to deal with Tango::DevEncoded attribute format.
*/
class EncodedAttribute
{
public:
/**@name Constructors
* Miscellaneous constructors */
//@{
/**
* Create a new EncodedAttribute object.
*
*/
EncodedAttribute();
/**
* Create a new EncodedAttribute object with a user defined buffer pool.
*
* This constructor allows the user to define the size of the buffer pool used to
* store the encoded images. This buffer pool is managed as a circular pool.
* A different buffer is used each time an image is encoded. The last used buffer is then
* passed to the attribute with the attribute::set_value() method
*
* @param buf_pool_size Buffer pool size
* @param serialization Set to true if the instance manage the data buffer serialization
*
*/
EncodedAttribute(int buf_pool_size,bool serialization = false);
//@}
/**@name Destructor
* Only one desctructor is defined for this class
*/
//@{
/**
* The attribute desctructor.
*/
~EncodedAttribute();
//@}
/**@name Image Encoding Methods
*/
//@{
/**
* Encode a 8 bit grayscale image as JPEG format
*
* @param gray8 Array of 8bit gray sample
* @param width The image width
* @param height The image height
* @param quality Quality of JPEG (0=poor quality 100=max quality)
*
*/
void encode_jpeg_gray8(unsigned char *gray8,int width,int height,double quality);
/**
* Encode a 32 bit rgb color image as JPEG format
*
* @param rgb32 Array of 32bit RGB sample (RGB0RGB0...)
* @param width The image width
* @param height The image height
* @param quality Quality of JPEG (0=poor quality 100=max quality)
*
*/
void encode_jpeg_rgb32(unsigned char *rgb32,int width,int height,double quality);
/**
* Encode a 24 bit rgb color image as JPEG format
*
* @param rgb24 Array of 32bit RGB sample (RGBRGB...)
* @param width The image width
* @param height The image height
* @param quality Quality of JPEG (0=poor quality 100=max quality)
*
*/
void encode_jpeg_rgb24(unsigned char *rgb24,int width,int height,double quality);
/**
* Encode a 8 bit grayscale image (no compression)
*
* @param gray8 Array of 8bit gray sample
* @param width The image width
* @param height The image height
*
*/
void encode_gray8(unsigned char *gray8,int width,int height);
/**
* Encode a 16 bit grayscale image (no compression)
*
* @param gray16 Array of 16bit gray sample
* @param width The image width
* @param height The image height
*
*/
void encode_gray16(unsigned short *gray16,int width,int height);
/**
* Encode a 24 bit color image (no compression)
*
* @param rgb24 Array of 24bit RGB sample
* @param width The image width
* @param height The image height
*
*/
void encode_rgb24(unsigned char *rgb24,int width,int height);
//@}
/**@name Image Decoding Methods
*/
//@{
/**
* Decode a color image (JPEG_RGB or RGB24) and returns a 32 bits RGB image.
* Throws DevFailed in case of failure.
*
* @param attr DeviceAttribute that contains the image
* @param width Width of the image
* @param height Height of the image
* @param rgb32 Image (memory allocated by the function)
*/
void decode_rgb32(DeviceAttribute *attr,int *width,int *height,unsigned char **rgb32);
/**
* Decode a 8 bits grayscale image (JPEG_GRAY8 or GRAY8) and returns a 8 bits gray scale image.
* Throws DevFailed in case of failure.
*
* @param attr DeviceAttribute that contains the image
* @param width Width of the image
* @param height Height of the image
* @param gray8 Image (memory allocated by the function)
*/
void decode_gray8(DeviceAttribute *attr,int *width,int *height,unsigned char **gray8);
/**
* Decode a 16 bits grayscale image (GRAY16) and returns a 16 bits gray scale image.
* Throws DevFailed in case of failure.
*
* @param attr DeviceAttribute that contains the image
* @param width Width of the image
* @param height Height of the image
* @param gray16 Image (memory allocated by the function)
*/
void decode_gray16(DeviceAttribute *attr,int *width,int *height,unsigned short **gray16);
//@}
DevUChar *get_data()
{if (index==0)
return (DevUChar *)buffer_array[buf_elt_nb-1];
else
return (DevUChar *)buffer_array[index-1];}
long get_size()
{if (index==0)
return (long)buffSize_array[buf_elt_nb-1];
else
return (long)buffSize_array[index-1];}
DevString *get_format() {return &format;}
bool get_exclusion() {return manage_exclusion;}
omni_mutex *get_mutex()
{if (index==0)
return &(mutex_array[buf_elt_nb-1]);
else
return &(mutex_array[index-1]);}
private:
unsigned char **buffer_array;
int *buffSize_array;
omni_mutex *mutex_array;
char *format;
int index;
int buf_elt_nb;
bool manage_exclusion;
EncodedAttributeExt *ext;
};
#define INC_INDEX() \
index++; \
if (index == buf_elt_nb) \
index = 0;
} // End of Tango namespace
#endif // _ENCODED_ATT_H
|