#include "SCENE.H" #include "MEDIA.h" #include #pragma comment(lib, "psapi.lib") INPUT_IO *DUMY_CREATE(char *Filename); INPUT_IO *WEBCAM_CREATE(WORLD *pScene,char *MediaName); INPUT_IO *AVI_CREATE(WORLD *pScene,char *MediaName); INPUT_IO *SOUND_CREATE(WORLD *pScene,char *MediaName); INPUT_IO *MICRO_CREATE(WORLD *pScene); INPUT_IO *BINK_CREATE(char *MediaName); INPUT_IO *MPEG_CREATE(char *MediaName); INPUT_IO *JPEG_CREATE(char *MediaName); INPUT_IO *TARG_CREATE(char *MediaName); INPUT_IO *BMP_CREATE(char *MediaName); INPUT_IO *PNG_CREATE(char *MediaName); INPUT_IO *PSD_CREATE(char *MediaName); INPUT_IO *VOID_CREATE(char *MediaName); INPUT_IO *MAPC_CREATE(char *MediaName); INPUT_IO *PALT_CREATE(char *MediaName); INPUT_IO *ERROR_CREATE(char *Error); #ifndef SKIMMED_NET INPUT_IO *StreamIn_CREATE(WORLD *pScene,char *Name); INPUT_IO *StreamOut_CREATE(WORLD *pScene,char *Name); #endif INPUT_IO *ReverseRender_CREATE(WORLD *pScene,char *Name); INPUT_IO *BLUR_CREATE(WORLD *pScene,char *Filename); INPUT_IO *DIFF_CREATE(WORLD *pScene,char *Filename); INPUT_IO *FONT_CREATE(WORLD *pScene,char *Filename); INPUT_IO *TEXT_CREATE(WORLD *pScene,char *Filename); INPUT_IO *LAYER_CREATE(WORLD *pScene,char *Filename); INPUT_IO *DSWAV_CREATE(WORLD *pScene,char *Filename); INPUT_IO *DRVO_CREATE(WORLD *pScene,char *Filename); INPUT_IO *BACK_CREATE(WORLD *pScene,char *Filename); INPUT_IO *SNAP_CREATE(WORLD *pScene,char *Filename); INPUT_IO *BROWSER_CREATE(WORLD *pScene,char *Filename); INPUT_IO *NATAL_CREATE(WORLD *pScene,char *Filename); #ifdef PRIMESENS_SUPPORT INPUT_IO *PRIMESENS_CREATE(WORLD *pScene,char *Filename); #endif INPUT_IO *FACEFEATURE_CREATE(WORLD *pScene,char *Filename); //#pragma optimize("",off) u32 MediaSize = 0; INPUT_IO *CreateIO(WORLD *pScene,char *MediaName, bool dummy) { START_RASTER(Media); PROCESS_MEMORY_COUNTERS ppsmemCounters; GetProcessMemoryInfo(GetCurrentProcess(),&ppsmemCounters,sizeof(PROCESS_MEMORY_COUNTERS)); u32 SizeBefor = ppsmemCounters.WorkingSetSize; INPUT_IO *Ret; Ret = NULL; if (MediaName) { char MediaNameProcess[2048]; strcpy(MediaNameProcess,MediaName); u32 FFF = GetFileNameExtend((char *)MediaNameProcess); if (!dummy) { if ((FFF == '.AVI') || (FFF == '.OGG') || (FFF == '.OGV') || (FFF == '.WMV') || (FFF == '.MOV')|| (FFF == '.FLV')|| (FFF == 'MPEG')|| (FFF == '.MPG')|| (FFF == '.VOB')) Ret = AVI_CREATE(pScene,MediaNameProcess); if (FFF == 'AVIA' || (FFF == 'WMVA')) Ret = AVI_CREATE(pScene,MediaNameProcess); if (FFF == '.MP3' || FFF == '.KAR') Ret = SOUND_CREATE(pScene,MediaNameProcess); if (FFF == '.WAV') Ret = DSWAV_CREATE(pScene,MediaNameProcess); if (FFF == '.MIC') Ret = MICRO_CREATE(pScene); if ((FFF == '.JPG') || (FFF == 'JPEG')) Ret = JPEG_CREATE(MediaNameProcess); if ((FFF >= 'CAM0') && (FFF <= 'CAM9')) Ret = WEBCAM_CREATE(pScene,MediaNameProcess); if (FFF == '.TGA') Ret = TARG_CREATE(MediaNameProcess); if (FFF == '.PNG') Ret = PNG_CREATE(MediaNameProcess); if (FFF == '.BMP') Ret = BMP_CREATE(MediaNameProcess); if (FFF == 'VOID') Ret = VOID_CREATE(MediaNameProcess); if (FFF == 'MAPC') Ret = MAPC_CREATE(MediaNameProcess); if (FFF == 'PALT') Ret = PALT_CREATE(MediaNameProcess); #ifndef SKIMMED_NET if (FFF == 'STRI') Ret = StreamIn_CREATE(pScene,MediaNameProcess); if (FFF == 'STRO') Ret = StreamOut_CREATE(pScene,MediaNameProcess); #endif if (FFF == 'REVR') Ret = ReverseRender_CREATE(pScene,MediaNameProcess); if (FFF == '.PSD') Ret = PSD_CREATE(MediaNameProcess); if (FFF == 'BLUR') Ret = BLUR_CREATE(pScene,MediaNameProcess); if (FFF == 'DIFF') Ret = DIFF_CREATE(pScene,MediaNameProcess); if (FFF == 'FONT') Ret = FONT_CREATE(pScene,MediaNameProcess); if (FFF == 'AYER') Ret = LAYER_CREATE(pScene,MediaNameProcess); if (FFF == 'DRVO') Ret = DRVO_CREATE(pScene,MediaNameProcess); if (FFF == 'BACK') Ret = BACK_CREATE(pScene,MediaNameProcess); if (FFF == 'SNAP') Ret = SNAP_CREATE(pScene,MediaNameProcess); if (FFF == 'WSER') Ret = BROWSER_CREATE(pScene,MediaNameProcess); if (FFF == 'ATAL') Ret = NATAL_CREATE(pScene,MediaNameProcess); #ifdef PRIMESENS_SUPPORT if (FFF == 'SENS') Ret = PRIMESENS_CREATE(pScene,MediaNameProcess); #endif if (FFF == 'FACE') Ret = FACEFEATURE_CREATE(pScene,MediaNameProcess); if ((FFF == '.TXT')||(FFF == 'TEXT')) Ret = TEXT_CREATE(pScene,MediaNameProcess); } else { Ret = DUMY_CREATE(MediaNameProcess); } if (Ret) { Ret->nbReferences = 1; Ret->Image.PITCH = Ret->Image.SX; Ret->dCurrentTime = 0; Ret->ulCurrentFrame = 0; Ret->lCurrentTrackOffset = 0; Ret->IsValidForMosaique = 1; Ret->ulMediaRedirectValue = -1; Ret->VirtuallyDestroyed = 0; Ret->Tracks = NULL; Ret->ulColorMode = 0; Ret->MediaFocale = 0.0f; Ret->FrameRaster = 0; Ret->ulFileAsbeenTouched = 0; strcpy((char*)Ret->MediaName,MediaName); char TrackName[2048]; Ret->Priority = 0; Ret->Nickname[0]= 0; if (FFF == 'REVR') Ret->Priority = 1; if (FFF == 'BLUR') Ret->Priority = 2; if (FFF == 'DIFF') Ret->Priority = 3; strcpy(TrackName,MediaName); SetFileNameExtend(TrackName,'.TRK'); LoadTrackPlayer(&Ret->Tracks,TrackName); STOP_RASTER(Media); GetProcessMemoryInfo(GetCurrentProcess(),&ppsmemCounters,sizeof(PROCESS_MEMORY_COUNTERS)); MediaSize += ppsmemCounters.WorkingSetSize - SizeBefor; return Ret; } } //char TEEXT[2048]; //sprintf(TEEXT,"Error\n%s",MediaName); Ret = ERROR_CREATE(MediaName); Ret->VirtuallyDestroyed = 0; Ret->Priority = 0; Ret->ulCurrentFrame = 0; Ret->ulMediaRedirectValue = -1; Ret->ulColorMode = 0; Ret->MediaFocale = 0.0f; Ret->Tracks = NULL; Ret->Nickname[0] = 0; Ret->lTimeState = 0; Ret->ulMediaParams = 0; Ret->FrameRaster = 0; Ret->nbReferences = 1; STOP_RASTER(Media); GetProcessMemoryInfo(GetCurrentProcess(),&ppsmemCounters,sizeof(PROCESS_MEMORY_COUNTERS)); MediaSize += ppsmemCounters.WorkingSetSize - SizeBefor; return Ret; }