Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #pragma once
00024
00025 #include <string>
00026 #include <vector>
00027 #include "cinder/Cinder.h"
00028 #include "cinder/Url.h"
00029 #include "cinder/DataSource.h"
00030 #undef check
00031 #include <boost/lexical_cast.hpp>
00032
00033 namespace cinder {
00034
00036 fs::path expandPath( const fs::path &path );
00038 fs::path getHomeDirectory();
00040 fs::path getDocumentsDirectory();
00042 fs::path getTemporaryDirectory();
00044 fs::path getTemporaryFilePath( const std::string &prefix = "" );
00046 std::string getPathDirectory( const std::string &path );
00048 std::string getPathFileName( const std::string &path );
00050 std::string getPathExtension( const std::string &path );
00052 bool createDirectories( const fs::path &path, bool createParents = true );
00053
00055 void launchWebBrowser( const Url &url );
00056
00058 void deleteFile( const fs::path &path );
00059
00061 std::vector<std::string> split( const std::string &str, char separator, bool compress = true );
00063 std::vector<std::string> split( const std::string &str, const std::string &separators, bool compress = true );
00064
00066 std::string loadString( DataSourceRef dataSource );
00067
00069 std::wstring toUtf16( const std::string &utf8 );
00071 std::string toUtf8( const std::wstring &utf16 );
00072
00074 void sleep( float milliseconds );
00075
00077 #if defined( CINDER_MSW )
00078 inline char getPathSeparator() { return '\\'; }
00079 #else
00080 inline char getPathSeparator() { return '/'; }
00081 #endif
00082
00083 template<typename T>
00084 inline std::string toString( const T &t ) { return boost::lexical_cast<std::string>( t ); }
00085 template<typename T>
00086 inline T fromString( const std::string &s ) { return boost::lexical_cast<T>( s ); }
00087
00088 template<>
00089 inline Url fromString( const std::string &s ) { return Url( s ); }
00090
00092 std::vector<std::string> stackTrace();
00093
00094
00095 inline int8_t swapEndian( int8_t val ) { return val; }
00096 inline uint8_t swapEndian( uint8_t val ) { return val; }
00097 extern int16_t swapEndian( int16_t val );
00098 extern uint16_t swapEndian( uint16_t val );
00099 extern int32_t swapEndian( int32_t val );
00100 extern uint32_t swapEndian( uint32_t val );
00101 extern float swapEndian( float val );
00102 extern double swapEndian( double val );
00103
00104 extern void swapEndianBlock( uint16_t *blockPtr, size_t blockSizeInBytes );
00105 extern void swapEndianBlock( float *blockPtr, size_t blockSizeInBytes );
00106
00107 }