Changeset 1481 for trunk/dll/defview.c
- Timestamp:
- Dec 13, 2009, 2:58:02 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/dll/defview.c
r1479 r1481 25 25 to place exes before MMPM check (avoids MMPM trying to play them) 26 26 15 Nov 09 GKY Work around MMIO's falure to identify MPG files as media 27 12 Dec 09 GKY Remove code that opened files to check if they were media types 28 It was redundant. 29 12 Dec 09 GKY Pass .WPI files to PM for default handling. 27 30 28 31 ***********************************************************************/ … … 67 70 PCSZ Default = "DEFAULT"; 68 71 72 /** 73 * ShowMultimedia uses MMOS2 if available to check if files are media types 74 * It will play them as media if they are. There are several work arounds 75 * to handle newer media types which are misidentified or which don't play 76 * in our default player/viewer 77 */ 78 69 79 BOOL ShowMultimedia(CHAR * filename) 70 80 { … … 75 85 HMODULE MMIOModHandle = NULLHANDLE; 76 86 PMMIOIDENTIFYFILE pMMIOIdentifyFile = NULL; 77 //PMMIOGETINFO pMMIOGetInfo = NULL;78 //PMMIOCLOSE pMMIOClose = NULL;79 //PMMIOOPEN pMMIOOpen = NULL;80 //MMIOINFO mmioinfo;81 //HMMIO hmmio;82 87 FOURCC fccStorageSystem = 0; 83 88 MMFORMATINFO mmFormatInfo; 84 APIRET rc; // rc1;89 APIRET rc; 85 90 HWND hwnd = HWND_DESKTOP; 86 91 char *p; … … 89 94 return played; 90 95 91 / * load MMPM/2, if available. */96 //load MMPM/2, if available. 92 97 *loaderror = 0; 93 98 rc = DosLoadModule(loaderror, sizeof(loaderror), "MMIO", &MMIOModHandle); … … 99 104 if (DosQueryProcAddr(MMIOModHandle, 100 105 0, 101 "mmioIdentifyFile", (PFN *) & 106 "mmioIdentifyFile", (PFN *) &pMMIOIdentifyFile)) { 102 107 DosFreeModule(MMIOModHandle); 103 108 no_mmos2 = TRUE; 104 109 return played; 105 110 } 106 /* This code seems to serve no purpose GKY 11-15-09 107 if (DosQueryProcAddr(MMIOModHandle, 108 0, 109 "mmioGetInfo", (PFN *) & pMMIOGetInfo)) { 110 DosFreeModule(MMIOModHandle); 111 no_mmos2 = TRUE; 112 return played; 113 } 114 if (DosQueryProcAddr(MMIOModHandle, 115 0, 116 "mmioClose", (PFN *) & pMMIOClose)) { 117 DosFreeModule(MMIOModHandle); 118 no_mmos2 = TRUE; 119 return played; 120 } 121 if (DosQueryProcAddr(MMIOModHandle, 122 0, 123 "mmioOpen", (PFN *) & pMMIOOpen)) { 124 DosFreeModule(MMIOModHandle); 125 no_mmos2 = TRUE; 126 return played; 127 }*/ 128 } 129 130 /* attempt to identify the file using MMPM/2 */ 131 //memset( &mmioinfo, '\0', sizeof(MMIOINFO) ); 132 /*Eliminate non multimedia files*/ 133 /*hmmio = pMMIOOpen(filename, 134 &mmioinfo, 135 MMIO_READ); 136 if (!hmmio) { 137 p = strrchr(filename, '.'); //Added to save mp3, ogg & flac which fail above test 138 if (!p) 139 p = "."; 140 if (!stricmp(p, PCSZ_DOTOGG) || !stricmp(p, PCSZ_DOTMP3) || !stricmp(p, PCSZ_DOTFLAC) || 141 !stricmp(p, PCSZ_DOTJPG) || !stricmp(p, PCSZ_DOTJPEG)) { 142 hmmio = pMMIOOpen(filename, 143 &mmioinfo, 144 MMIO_READ | MMIO_NOIDENTIFY); 145 if (!hmmio){ 146 DosFreeModule(MMIOModHandle); 147 return played; 148 } 149 } 150 else { 151 DosFreeModule(MMIOModHandle); 152 return played; 153 } 154 } 155 if (!hmmio) { 156 DosFreeModule(MMIOModHandle); 157 return played; 158 } 159 rc1 = pMMIOGetInfo(hmmio, &mmioinfo, 0L);*/ 111 } 160 112 memset(&mmFormatInfo, 0, sizeof(MMFORMATINFO)); 161 113 mmFormatInfo.ulStructLen = sizeof(MMFORMATINFO); 162 rc = pMMIOIdentifyFile(filename, 163 0L, //&mmioinfo, 164 &mmFormatInfo, 114 rc = pMMIOIdentifyFile(filename, 0L, &mmFormatInfo, 165 115 &fccStorageSystem, 0L, 166 116 MMIO_FORCE_IDENTIFY_FF); 167 /* free module handle */168 //rc1 = pMMIOClose(hmmio, 0L);169 117 DosFreeModule(MMIOModHandle); 170 171 /* if identified and not FOURCC_DOS */ 172 p = strrchr(filename, '.'); //Added to save mp3, ogg & flac which fail above test 118 p = strrchr(filename, '.'); 173 119 if (!p) 174 120 p = "."; 175 if (!rc && (mmFormatInfo.fccIOProc != FOURCC_DOS || !stricmp(p, PCSZ_DOTMPG) || 176 !stricmp(p, PCSZ_DOTMPEG))) { // MPG are identified as FOURCC_DOS 121 /* if identified and not FOURCC_DOS MPEGs are misidentified as DOS*/ 122 //DbgMsg(pszSrcFile, __LINE__, "FOUCC %x %s %i", mmFormatInfo.fccIOProc, 123 // mmFormatInfo.szDefaultFormatExt, mmFormatInfo.ulMediaType); 124 if (!rc && (mmFormatInfo.fccIOProc != FOURCC_DOS || 125 !stricmp(p, PCSZ_DOTMPG) || !stricmp(p, PCSZ_DOTMPEG))) { 177 126 if (mmFormatInfo.ulMediaType == MMIO_MEDIATYPE_IMAGE && 178 127 (mmFormatInfo.ulFlags & MMIO_CANREADTRANSLATED)) { 179 p = strrchr(filename, '.'); 180 if (!p) 181 p = "."; 182 if (!stricmp(p, PCSZ_DOTJPG) || !stricmp(p, PCSZ_DOTJPEG)) 183 OpenObject(filename, Default, hwnd); //Image fails to display these 184 else // is an image that can be translated 185 RunFM2Util(PCSZ_IMAGEEXE, filename); 186 played = TRUE; 128 if (!stricmp(p, PCSZ_DOTJPG) || !stricmp(p, PCSZ_DOTJPEG)) 129 OpenObject(filename, Default, hwnd); //Image fails to display these 130 else // is an image that can be translated 131 RunFM2Util(PCSZ_IMAGEEXE, filename); 132 played = TRUE; 187 133 } 188 134 else if (mmFormatInfo.ulMediaType != MMIO_MEDIATYPE_IMAGE) { 189 135 /* is a multimedia file (WAV, MID, AVI, etc.) */ 190 p = strrchr(filename, '.'); 191 if (!p) 192 p = "."; 193 if (!stricmp(p, PCSZ_DOTOGG) || !stricmp(p, PCSZ_DOTMP3) || !stricmp(p, PCSZ_DOTFLAC)) 194 OpenObject(filename, Default, hwnd); //FM2Play fails to play these 195 else 196 RunFM2Util(PCSZ_FM2PLAYEXE, filename); 197 played = TRUE; 136 if (!stricmp(p, PCSZ_DOTOGG) || !stricmp(p, PCSZ_DOTMP3) || !stricmp(p, PCSZ_DOTFLAC)) 137 OpenObject(filename, Default, hwnd); //FM2Play fails to play these 138 else 139 RunFM2Util(PCSZ_FM2PLAYEXE, filename); 140 played = TRUE; 198 141 } 199 142 } … … 214 157 DefaultView(hwnd, hwndFrame, hwndParent, swp, 0, filename); 215 158 } 159 160 /** 161 * DefaultView runs multiple checks for opening files including checking 162 * for associations, archives, executables, help, ini, warpin, multimedia and 163 * viewing as binary or text. 164 */ 216 165 217 166 VOID DefaultView(HWND hwnd, HWND hwndFrame, HWND hwndParent, SWP * swp, … … 323 272 if (!p) 324 273 p = "."; 274 if (!stricmp(p, ".WPI")) { 275 OpenObject(filename, Default, hwnd); 276 return; 277 } 325 278 if (stricmp(p, ".INI") || !StartIniEditor(hwndParent, filename, 4)) { 326 279 if (stricmp(p, PCSZ_DOTHLP) || !ViewHelp(filename)) { 327 if (!fCheckMM || ! stricmp(p, ".DLL") || !ShowMultimedia(filename)) {280 if (!fCheckMM || !ShowMultimedia(filename)) { 328 281 ViewIt: 329 282 if (TestBinary(filename)) {
Note:
See TracChangeset
for help on using the changeset viewer.