rawdata.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include <libopenraw/libopenraw.h>
00025
00026 #include <libopenraw++/rawdata.h>
00027
00028 using OpenRaw::RawData;
00029
00030 extern "C" {
00031
00032 or_error or_get_extract_rawdata(const char* filename, uint32_t options,
00033 ORRawDataRef *rawdata)
00034 {
00035 or_error ret = OR_ERROR_NONE;
00036
00037 RawData ** pRawData = reinterpret_cast<RawData **>(rawdata);
00038 *pRawData = RawData::getAndExtractRawData(filename,
00039 options, ret);
00040 return ret;
00041 }
00042
00043 ORRawDataRef
00044 or_rawdata_new(void)
00045 {
00046 RawData * rawdata = new RawData();
00047 return reinterpret_cast<ORRawDataRef>(rawdata);
00048 }
00049
00050 or_error
00051 or_rawdata_release(ORRawDataRef rawdata)
00052 {
00053 if (rawdata == NULL) {
00054 return OR_ERROR_NOTAREF;
00055 }
00056 delete reinterpret_cast<RawData *>(rawdata);
00057 return OR_ERROR_NONE;
00058 }
00059
00060
00061 or_data_type
00062 or_rawdata_format(ORRawDataRef rawdata)
00063 {
00064 return reinterpret_cast<RawData *>(rawdata)->dataType();
00065 }
00066
00067
00068 void *
00069 or_rawdata_data(ORRawDataRef rawdata)
00070 {
00071 return reinterpret_cast<RawData *>(rawdata)->data();
00072 }
00073
00074
00075 size_t
00076 or_rawdata_data_size(ORRawDataRef rawdata)
00077 {
00078 return reinterpret_cast<RawData *>(rawdata)->size();
00079 }
00080
00081
00082 void
00083 or_rawdata_dimensions(ORRawDataRef rawdata,
00084 uint32_t *x, uint32_t *y)
00085 {
00086 RawData* t = reinterpret_cast<RawData *>(rawdata);
00087 if (x != NULL) {
00088 *x = t->x();
00089 }
00090 if (y != NULL) {
00091 *y = t->y();
00092 }
00093 }
00094
00095 uint32_t
00096 or_rawdata_bpc(ORRawDataRef rawdata)
00097 {
00098 return reinterpret_cast<RawData *>(rawdata)->bpc();
00099 }
00100
00101 or_cfa_pattern
00102 or_rawdata_get_cfa_pattern(ORRawDataRef rawdata)
00103 {
00104 return reinterpret_cast<RawData *>(rawdata)->cfaPattern();
00105 }
00106
00107 or_error
00108 or_rawdata_get_minmax(ORRawDataRef rawdata, uint16_t *min, uint16_t *max)
00109 {
00110 RawData* t = reinterpret_cast<RawData *>(rawdata);
00111 if(min) {
00112 *min = t->min();
00113 }
00114 if(max) {
00115 *max = t->max();
00116 }
00117 return OR_ERROR_NONE;
00118 }
00119
00120 }