|
Shinya Kitaoka |
810553 |
#pragma once
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#ifndef TFILETYPE_INCLUDED
|
|
Toshihiro Shimizu |
890ddd |
#define TFILETYPE_INCLUDED
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//#include "tfilepath.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "tcommon.h"
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
class TFilePath;
|
|
Toshihiro Shimizu |
890ddd |
class QString;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#undef DVAPI
|
|
Toshihiro Shimizu |
890ddd |
#undef DVVAR
|
|
Toshihiro Shimizu |
890ddd |
#ifdef TSYSTEM_EXPORTS
|
|
Toshihiro Shimizu |
890ddd |
#define DVAPI DV_EXPORT_API
|
|
Toshihiro Shimizu |
890ddd |
#define DVVAR DV_EXPORT_VAR
|
|
Toshihiro Shimizu |
890ddd |
#else
|
|
Toshihiro Shimizu |
890ddd |
#define DVAPI DV_IMPORT_API
|
|
Toshihiro Shimizu |
890ddd |
#define DVVAR DV_IMPORT_VAR
|
|
Toshihiro Shimizu |
890ddd |
#endif
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
namespace TFileType {
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
enum Type {
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
UNKNOW_FILE = 0,
|
|
Shinya Kitaoka |
120a6e |
LEVEL = 0x1,
|
|
Shinya Kitaoka |
120a6e |
SCENE = 0x1000,
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
RASTER_IMAGE = 0x2,
|
|
Shinya Kitaoka |
120a6e |
RASTER_LEVEL = RASTER_IMAGE | LEVEL,
|
|
Shinya Kitaoka |
120a6e |
VECTOR_IMAGE = 0x4,
|
|
Shinya Kitaoka |
120a6e |
VECTOR_LEVEL = VECTOR_IMAGE | LEVEL,
|
|
Shinya Kitaoka |
120a6e |
CMAPPED_IMAGE = 0x8,
|
|
Shinya Kitaoka |
120a6e |
CMAPPED_LEVEL = CMAPPED_IMAGE | LEVEL,
|
|
Shinya Kitaoka |
120a6e |
MESH_IMAGE = 0x10,
|
|
Shinya Kitaoka |
120a6e |
MESH_LEVEL = MESH_IMAGE | LEVEL,
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
IMAGE = RASTER_IMAGE | VECTOR_IMAGE | CMAPPED_IMAGE | MESH_IMAGE,
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
AUDIO_LEVEL = 0x20 | LEVEL,
|
|
Shinya Kitaoka |
120a6e |
PALETTE_LEVEL = 0x40 | LEVEL,
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
TABSCENE = 0x2000 | SCENE,
|
|
Shinya Kitaoka |
120a6e |
TOONZSCENE = 0x4000 | SCENE,
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
VIEWABLE = RASTER_IMAGE | VECTOR_IMAGE | CMAPPED_IMAGE
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
/*!
|
|
Shinya Kitaoka |
120a6e |
* getInfo() returns the TFileType::Type of the filepath.
|
|
Shinya Kitaoka |
120a6e |
* e.g. 'a.tif' => RASTER_IMAGE, 'a..tif' => RASTER_LEVEL, 'a.mov' =>
|
|
Shinya Kitaoka |
120a6e |
* RASTER_LEVEL, 'a.tlv' => CMAPPED_LEVEL, etc.
|
|
Shinya Kitaoka |
120a6e |
* Note!!: in the current implementation, a.0001.tif => RASTER_LEVEL,
|
|
Shinya Kitaoka |
120a6e |
* (probably a bad choice: should be RASTER IMAGE)
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Toshihiro Shimizu |
890ddd |
//!
|
|
Toshihiro Shimizu |
890ddd |
DVAPI Type getInfo(const TFilePath &fp);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
/*!
|
|
Shinya Kitaoka |
120a6e |
* getInfoFromExtension() returns the TFileType::Type "naturally" associated
|
|
Shinya Kitaoka |
120a6e |
* to a given type (file extension)
|
|
Shinya Kitaoka |
120a6e |
* e.g. 'tif' => RASTER_IMAGE, 'mov' => RASTER_LEVEL, 'tlv' => CMAPPED_LEVEL,
|
|
Shinya Kitaoka |
120a6e |
* etc.
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Toshihiro Shimizu |
890ddd |
//!
|
|
Shinya Kitaoka |
3bfa54 |
DVAPI Type getInfoFromExtension(const std::string &ext);
|
|
Toshihiro Shimizu |
890ddd |
DVAPI Type getInfoFromExtension(const QString &ext);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
3bfa54 |
DVAPI void declare(std::string extension, Type type);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
inline bool isResource(Type type) { return (type != UNKNOW_FILE); }
|
|
Toshihiro Shimizu |
890ddd |
inline bool isViewable(Type type) { return (type & VIEWABLE) != 0; }
|
|
Toshihiro Shimizu |
890ddd |
inline bool isLevel(Type type) { return (type & LEVEL) != 0; }
|
|
Toshihiro Shimizu |
890ddd |
inline bool isScene(Type type) { return (type & SCENE) != 0; }
|
|
Toshihiro Shimizu |
890ddd |
inline bool isFullColor(Type type) { return (type & RASTER_IMAGE) != 0; }
|
|
Toshihiro Shimizu |
890ddd |
inline bool isVector(Type type) { return (type & VECTOR_IMAGE) != 0; }
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
inline bool isLevelExtension(const std::string &fileExtension) {
|
|
Shinya Kitaoka |
120a6e |
return (getInfoFromExtension(fileExtension) & LEVEL) != 0;
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Shinya Kitaoka |
120a6e |
inline bool isLevelExtension(const QString &fileExtension) {
|
|
Shinya Kitaoka |
120a6e |
return (getInfoFromExtension(fileExtension) & LEVEL) != 0;
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
inline bool isLevelFilePath(const TFilePath &fp) {
|
|
Shinya Kitaoka |
120a6e |
return (getInfo(fp) & LEVEL) != 0;
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
} // namespace
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#endif
|