changeset 815:4df1bfd11131

Add file classes.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 24 Nov 2014 21:31:04 +0200
parents e59d57cc3aa8
children 95c3e0a1058e
files msite.inc.php
diffstat 1 files changed, 92 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/msite.inc.php	Mon Nov 24 18:55:03 2014 +0200
+++ b/msite.inc.php	Mon Nov 24 21:31:04 2014 +0200
@@ -55,6 +55,13 @@
   EPREV_AUDIO        => array("Audio file"  , "Audio"),
 );
 
+//
+// File format classes
+//
+define("EFILE_UNKNOWN", 0);
+define("EFILE_IMAGE", 1);
+define("EFILE_AUDIO", 2);
+define("EFILE_ARCHIVE", 5);
 
 //
 // Entry flags (bitfield)
@@ -128,18 +135,21 @@
 //
 $fileTypeData = array(
   "PNG"  => array(
+    "class" => EFILE_IMAGE,
     "type" => EPREV_IMAGE,
     "mime" => "image/png",
     "fext" => ".png",
     "test" => "^PNG image data",
   ),
   "JPEG" => array(
+    "class" => EFILE_IMAGE,
     "type" => EPREV_IMAGE,
     "mime" => "image/jpeg",
     "fext" => ".jpg",
     "test" => "^JPEG image data",
   ),
   "GIF"  => array(
+    "class" => EFILE_IMAGE,
     "type" => EPREV_IMAGE,
     "mime" => "image/gif",
     "fext" => ".gif",
@@ -147,68 +157,142 @@
   ),
 
   "MP3" => array(
+    "class" => EFILE_AUDIO,
     "type" => EPREV_AUDIO,
     "mime" => "audio/mpeg",
     "fext" => ".mp3",
     "test" => "MPEG ADTS, layer III",
   ),
   "OggVorbis" => array(
+    "class" => EFILE_AUDIO,
     "type" => EPREV_AUDIO,
     "mime" => "audio/ogg; codecs=vorbis",
     "fext" => ".ogg",
     "test" => "Ogg data, Vorbis audio",
   ),
+  "FLAC" => array(
+    "class" => EFILE_AUDIO,
+    "type" => EPREV_AUDIO,
+    "mime" => "audio/x-flac",
+    "fext" => ".flac",
+  ),
+  "WAV" => array(
+    "class" => EFILE_AUDIO,
+    "type" => EPREV_AUDIO,
+    "mime" => "audio/x-wav",
+    "fext" => ".wav",
+  ),
 
   // Special cases
   "ILBM" => array(
-    "type" => EPREV_IMAGE,
+    "class" => EFILE_IMAGE,
     "mime" => "gfx", // Special cases to be converted through gfxconv ..
     "fext" => ".lbm",
     "test" => "^IFF data",
   ),
   "PCX" => array(
-    "type" => EPREV_IMAGE,
+    "class" => EFILE_IMAGE,
     "mime" => "image/x-pcx",
     "fext" => ".pcx",
     "test" => "^PCX ver\. 3\.0",
   ),
 
   "PTMOD" => array(
-    "type" => EPREV_AUDIO,
+    "class" => EFILE_AUDIO,
     "mime" => "audio/x-mod",
     "fext" => ".mod",
     "test" => "^\d+-channel Protracker module",
   ),
   "PTMOD" => array(
-    "type" => EPREV_AUDIO,
+    "class" => EFILE_AUDIO,
     "mime" => "audio/x-mod",
     "fext" => ".mod",
     "test" => "^\d+-channel Fasttracker module",
   ),
   "S3M" => array(
-    "type" => EPREV_AUDIO,
+    "class" => EFILE_AUDIO,
     "mime" => "audio/x-mod",
     "fext" => ".s3m",
     "test" => "^ScreamTracker III Module",
   ),
   "XM" => array(
-    "type" => EPREV_AUDIO,
+    "class" => EFILE_AUDIO,
     "mime" => "audio/x-mod",
     "fext" => ".xm",
     "test" => "^Fasttracker II module",
   ),
   "IT" => array(
-    "type" => EPREV_AUDIO,
+    "class" => EFILE_AUDIO,
     "mime" => "audio/x-mod",
     "fext" => ".it",
     "test" => "^Impulse Tracker module",
   ),
   "PTM" => array(
-    "type" => EPREV_AUDIO,
+    "class" => EFILE_AUDIO,
     "mime" => "audio/x-mod",
     "fext" => ".ptm",
     "test" => "^Poly Tracker PTM Module",
   ),
+
+  "AVI" => array(
+    "class" => EFILE_VIDEO,
+    "mime" => "video/x-msvideo",
+    "fext" => ".avi",
+  ),
+  "WMV" => array(
+    "class" => EFILE_VIDEO,
+    "mime" => "video/x-ms-asf",
+    "fext" => ".wmv",
+  ),
+  "MP4" => array(
+    "class" => EFILE_VIDEO,
+    "mime" => "video/mp4",
+    "fext" => ".mp4",
+  ),
+  "MOV" => array(
+    "class" => EFILE_VIDEO,
+    "mime" => "video/quicktime",
+    "fext" => ".mov",
+  ),
+  "MKV" => array(
+    "class" => EFILE_VIDEO,
+    "mime" => "video/x-matroska",
+    "fext" => ".mkv",
+  ),
+
+  // Archives
+  "LHA" => array(
+    "class" => EFILE_ARCHIVE,
+    "mime" => "application/x-lha",
+    "fext" => ".lha",
+  ),
+  "ZIP" => array(
+    "class" => EFILE_ARCHIVE,
+    "mime" => "application/zip",
+    "fext" => ".zip",
+  ),
+  "7ZIP" => array(
+    "class" => EFILE_ARCHIVE,
+    "mime" => "application/x-7z-compressed",
+    "fext" => ".7z",
+  ),
+  "RAR" => array(
+    "class" => EFILE_ARCHIVE,
+    "mime" => "application/x-rar",
+    "fext" => ".rar",
+  ),
+  "ARJ" => array(
+    "class" => EFILE_ARCHIVE,
+    "mime" => "application/x-arj",
+    "fext" => ".arj",
+  ),
+
+  // Final fallback
+  "MISC" => array(
+    "class" => EFILE_ARCHIVE,
+    "mime" => "application/octet-stream",
+    "fext" => FALSE,
+  ),
 );