filetype.cpp
上传用户:center1979
上传日期:2022-07-26
资源大小:50633k
文件大小:4k
源码类别:

OpenGL

开发平台:

Visual C++

  1. // filetype.cpp
  2. //
  3. // Copyright (C) 2001, Chris Laurel <claurel@shatters.net>
  4. //
  5. // This program is free software; you can redistribute it and/or
  6. // modify it under the terms of the GNU General Public License
  7. // as published by the Free Software Foundation; either version 2
  8. // of the License, or (at your option) any later version.
  9. #include <cctype>
  10. #include <cstdlib>
  11. #include "util.h"
  12. #include "filetype.h"
  13. using namespace std;
  14. static const string JPEGExt(".jpeg");
  15. static const string JPGExt(".jpg");
  16. static const string JFIFExt(".jif");
  17. static const string BMPExt(".bmp");
  18. static const string TargaExt(".tga");
  19. static const string PNGExt(".png");
  20. static const string ThreeDSExt(".3ds");
  21. static const string CelestiaTextureExt(".ctx");
  22. static const string CelestiaMeshExt(".cms");
  23. static const string CelestiaCatalogExt(".ssc");
  24. static const string CelestiaStarCatalogExt(".stc");
  25. static const string CelestiaDeepSkyCatalogExt(".dsc");
  26. static const string AVIExt(".avi");
  27. static const string DDSExt(".dds");
  28. static const string DXT5NormalMapExt(".dxt5nm");
  29. static const string CelestiaLegacyScriptExt(".cel");
  30. static const string CelestiaScriptExt(".clx");
  31. static const string CelestiaScriptExt2(".celx");
  32. static const string CelestiaModelExt(".cmod");
  33. static const string CelestiaParticleSystemExt(".cpart");
  34. static const string CelestiaXYZTrajectoryExt(".xyz");
  35. static const string CelestiaXYZVTrajectoryExt(".xyzv");
  36. ContentType DetermineFileType(const string& filename)
  37. {
  38.     int extPos = filename.rfind('.');
  39.     if (extPos == (int)string::npos)
  40.         return Content_Unknown;
  41.     string ext = string(filename, extPos, filename.length() - extPos + 1);
  42.     if (compareIgnoringCase(JPEGExt, ext) == 0 ||
  43.         compareIgnoringCase(JPGExt, ext) == 0 ||
  44.         compareIgnoringCase(JFIFExt, ext) == 0)
  45.         return Content_JPEG;
  46.     else if (compareIgnoringCase(BMPExt, ext) == 0)
  47.         return Content_BMP;
  48.     else if (compareIgnoringCase(TargaExt, ext) == 0)
  49.         return Content_Targa;
  50.     else if (compareIgnoringCase(PNGExt, ext) == 0)
  51.         return Content_PNG;
  52.     else if (compareIgnoringCase(ThreeDSExt, ext) == 0)
  53.         return Content_3DStudio;
  54.     else if (compareIgnoringCase(CelestiaTextureExt, ext) == 0)
  55.         return Content_CelestiaTexture;
  56.     else if (compareIgnoringCase(CelestiaMeshExt, ext) == 0)
  57.         return Content_CelestiaMesh;
  58.     else if (compareIgnoringCase(CelestiaCatalogExt, ext) == 0)
  59.         return Content_CelestiaCatalog;
  60.     else if (compareIgnoringCase(CelestiaStarCatalogExt, ext) == 0)
  61.         return Content_CelestiaStarCatalog;
  62.     else if (compareIgnoringCase(CelestiaDeepSkyCatalogExt, ext) == 0)
  63.         return Content_CelestiaDeepSkyCatalog;
  64.     else if (compareIgnoringCase(AVIExt, ext) == 0)
  65.         return Content_AVI;
  66.     else if (compareIgnoringCase(DDSExt, ext) == 0)
  67.         return Content_DDS;
  68.     else if (compareIgnoringCase(CelestiaLegacyScriptExt, ext) == 0)
  69.         return Content_CelestiaLegacyScript;
  70.     else if (compareIgnoringCase(CelestiaScriptExt, ext) == 0 ||
  71.              compareIgnoringCase(CelestiaScriptExt2, ext) == 0)
  72.         return Content_CelestiaScript;
  73.     else if (compareIgnoringCase(CelestiaModelExt, ext) == 0)
  74.         return Content_CelestiaModel;
  75.     else if (compareIgnoringCase(CelestiaParticleSystemExt, ext) == 0)
  76.         return Content_CelestiaParticleSystem;
  77.     else if (compareIgnoringCase(DXT5NormalMapExt, ext) == 0)
  78.         return Content_DXT5NormalMap;
  79.     else if (compareIgnoringCase(CelestiaXYZTrajectoryExt, ext) == 0)
  80.         return Content_CelestiaXYZTrajectory;
  81.     else if (compareIgnoringCase(CelestiaXYZVTrajectoryExt, ext) == 0)
  82.         return Content_CelestiaXYZVTrajectory;
  83.     else
  84.         return Content_Unknown;
  85. }