X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmUtil.cxx;h=55607cbf23bb82132c6deb62848cae16e7c9b89f;hb=b307c3639ecb0cbc03d141836132d153a6799c5f;hp=bf200b0d212847dceaf3fdba5c7851194af7e85e;hpb=f2956b2e24eb931cbd41e1c8e536259c93d325fa;p=gdcm.git diff --git a/src/gdcmUtil.cxx b/src/gdcmUtil.cxx index bf200b0d..55607cbf 100644 --- a/src/gdcmUtil.cxx +++ b/src/gdcmUtil.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmUtil.cxx,v $ Language: C++ - Date: $Date: 2005/08/22 16:17:54 $ - Version: $Revision: 1.159 $ + Date: $Date: 2005/10/27 11:39:34 $ + Version: $Revision: 1.169 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -95,7 +95,13 @@ namespace gdcm //------------------------------------------------------------------------- const std::string Util::GDCM_UID = "1.2.826.0.1.3680043.2.1143"; std::string Util::RootUID = GDCM_UID; -const uint16_t Util::FMIV = 0x0001; +/* + * File Meta Information Version (0002,0001) shall contain a two byte OB + * value consisting of a 0x00 byte, followed by 0x01 byte, and not the + * value 0x0001 encoded as a little endian 16 bit short value, + * which would be the other way around... + */ +const uint16_t Util::FMIV = 0x0100; uint8_t *Util::FileMetaInformationVersion = (uint8_t *)&FMIV; std::string Util::GDCM_MAC_ADRESS = GetMACAddress(); @@ -179,10 +185,46 @@ int Util::CountSubstring (const std::string &str, return count; } +/** + * \brief Checks whether a 'string' is printable or not (in order + * to avoid corrupting the terminal of invocation when printing) + * @param s string to check + */ +bool Util::IsCleanString(std::string const &s) +{ + std::cout<< std::endl << s << std::endl; + for(unsigned int i=0; i> 8 ) & 0x00ff ) ); - //save CPU time - swap = ( val << 8 | val >> 8 ); + swap = ( val << 8 | val >> 8 ); return os.write(reinterpret_cast(&swap), 2); #else @@ -898,9 +962,6 @@ std::ostream &binary_write(std::ostream &os, const uint32_t &val) { #if defined(GDCM_WORDS_BIGENDIAN) || defined(GDCM_FORCE_BIGENDIAN_EMULATION) uint32_t swap; -// swap = ( ((val<<24) & 0xff000000) | ((val<<8) & 0x00ff0000) | -// ((val>>8) & 0x0000ff00) | ((val>>24) & 0x000000ff) ); -// save CPU time swap = ( (val<<24) | ((val<<8) & 0x00ff0000) | ((val>>8) & 0x0000ff00) | (val>>24) ); return os.write(reinterpret_cast(&swap), 4); @@ -932,7 +993,7 @@ std::ostream &binary_write(std::ostream &os, std::string const &val) /** * \brief binary_write binary_write * @param os ostream to write to - * @param val value + * @param val 'characters' value * @param len length of the 'value' to be written */ std::ostream &binary_write(std::ostream &os, const uint8_t *val, size_t len)