Changeset 570


Ignore:
Timestamp:
Mar 19, 2007, 4:19:33 AM (19 years ago)
Author:
Gregg Young
Message:

Updated arc visible viewer child hang fix; fixed 70 misid of files by showMM

Location:
trunk/dll
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/arccnrs.c

    r563 r570  
    13721372        free(s);
    13731373        if (IsFile(filename) == 1) {
    1374           if (fViewChild)
    1375             DosSleep(250);              // Allow unzip session to finish closing 14 Mar 07 SHL
     1374          if (fViewChild && fArcStuffVisible)
     1375            DosSleep(100);              // Allow unzip session to finish closing 14 Mar 07 SHL
    13761376          WinSendMsg(dcd->hwndCnr, UM_ENTER, MPFROMP(filename), MPVOID);
    13771377        }
  • trunk/dll/defview.c

    r557 r570  
    55
    66  Copyright (c) 1993-98 M. Kimes
    7   Copyright (c) 2003, 2006 Steven H.Levine
     7  Copyright (c) 2003, 2007 Steven H.Levine
    88
    99  Default file viewer
     
    1111  20 Nov 03 SHL ShowMultimedia: try to convince fmplay to not play exes (Gregg Young)
    1212  14 Jul 06 SHL Use Runtime_Error
     13  18 Mar 07 GKY Fixed misindentifycation of nonmultimedia files by ShowMultiMedia
     14  18 Mar 07 GKY Open mp3, ogg & flac files with OS2 object default since fm2play fails
    1315
    1416***********************************************************************/
     
    4143  HMODULE MMIOModHandle = NULLHANDLE;
    4244  PMMIOIDENTIFYFILE pMMIOIdentifyFile = NULL;
     45  PMMIOGETINFO pMMIOGetInfo = NULL;
     46  PMMIOCLOSE pMMIOClose = NULL;
     47  PMMIOOPEN pMMIOOpen = NULL;
     48  MMIOINFO mmioinfo;
     49  HMMIO  hmmio;
    4350  FOURCC fccStorageSystem = 0;
    4451  MMFORMATINFO mmFormatInfo;
    45   APIRET rc;
     52  APIRET rc, rc1;
     53  HWND hwnd;
     54  char *p;
    4655
    4756  if (no_mmos2 || !filename || !*filename)
     
    6372      return played;
    6473    }
     74    if (DosQueryProcAddr(MMIOModHandle,
     75                         0,
     76                         "mmioGetInfo", (PFN *) & pMMIOGetInfo)) {
     77      DosFreeModule(MMIOModHandle);
     78      no_mmos2 = TRUE;
     79      return played;
     80    }
     81    if (DosQueryProcAddr(MMIOModHandle,
     82                         0,
     83                         "mmioClose", (PFN *) & pMMIOClose)) {
     84      DosFreeModule(MMIOModHandle);
     85      no_mmos2 = TRUE;
     86      return played;
     87    }
     88    if (DosQueryProcAddr(MMIOModHandle,
     89                         0,
     90                         "mmioOpen", (PFN *) & pMMIOOpen)) {
     91      DosFreeModule(MMIOModHandle);
     92      no_mmos2 = TRUE;
     93      return played;
     94    }
    6595  }
    6696
    6797  /* attempt to identify the file using MMPM/2 */
     98  //printf("%s %d\n ", __FILE__, __LINE__); fflush(stdout);
     99  memset( &mmioinfo, '\0', sizeof(MMIOINFO) );
     100  /*Eliminate non multimedia files*/
     101  hmmio = pMMIOOpen(filename,
     102                    &mmioinfo,
     103                    MMIO_READ);
     104  /*printf("%s %d %d %d %d %d\n",
     105          __FILE__, __LINE__,mmioinfo.ulFlags, mmioinfo.ulErrorRet,
     106         mmioinfo.pIOProc, mmioinfo.aulInfo); fflush(stdout);*/
     107         if (!hmmio){
     108             p = strrchr(filename, '.'); //Added to save mp3, ogg & flac which fail above test
     109          if (!p)
     110              p = ".";
     111             /* printf("%s %d %s\n",
     112              __FILE__, __LINE__, p); fflush(stdout);*/
     113          if  (!stricmp(p, ".OGG") || !stricmp(p, ".MP3") || !stricmp(p, ".FLAC")){
     114             hmmio = pMMIOOpen(filename,
     115                    &mmioinfo,
     116                    MMIO_READ | MMIO_NOIDENTIFY);
     117             if (!hmmio){
     118                 DosFreeModule(MMIOModHandle);
     119                 printf("%s %d\n ", __FILE__, __LINE__); fflush(stdout);
     120                 return played;
     121             }
     122          }
     123          else {
     124             DosFreeModule(MMIOModHandle);
     125                // printf("%s %d\n ", __FILE__, __LINE__); fflush(stdout);
     126                 return played;
     127          }
     128         }
     129         if (!hmmio){
     130                 DosFreeModule(MMIOModHandle);
     131                // printf("%s %d\n ", __FILE__, __LINE__); fflush(stdout);
     132                 return played;
     133             }
     134
     135  rc1 = pMMIOGetInfo( hmmio,
     136              &mmioinfo,
     137                     0L);   //
     138  //printf("%s %d\n ", __FILE__, __LINE__); fflush(stdout);
    68139  memset(&mmFormatInfo, 0, sizeof(MMFORMATINFO));
    69140  mmFormatInfo.ulStructLen = sizeof(MMFORMATINFO);
    70141  rc = pMMIOIdentifyFile(filename,
    71                          0L,
     142                         &mmioinfo,
    72143                         &mmFormatInfo,
    73                          &fccStorageSystem, 0L, MMIO_FORCE_IDENTIFY_SS | MMIO_FORCE_IDENTIFY_FF);
     144                         &fccStorageSystem, 0L,
     145                         MMIO_FORCE_IDENTIFY_FF);
     146   /*printf("%s %d %d %d %d\n %d %d %d %s\n",
     147          __FILE__, __LINE__,mmioinfo.ulFlags,
     148          mmioinfo.pIOProc, mmioinfo.aulInfo,
     149          mmFormatInfo.fccIOProc, mmFormatInfo.fccIOProc,
     150          mmFormatInfo.ulIOProcType, mmFormatInfo.szDefaultFormatExt); fflush(stdout);*/
    74151  /* free module handle */
     152  rc1 = pMMIOClose(hmmio, 0L);
    75153  DosFreeModule(MMIOModHandle);
    76154
     
    89167    }
    90168    else if (mmFormatInfo.ulMediaType != MMIO_MEDIATYPE_IMAGE) {
    91       /* is a multimedia file (WAV, MID, AVI, etc.) */
    92       runemf2(SEPARATE | WINDOWED,
    93               HWND_DESKTOP,
    94               NULL,
    95               NULL,
    96               "%sFM2PLAY.EXE \"%s\"",
    97               (fAddUtils) ? "UTILS\\" : NullStr, filename);
     169        /* is a multimedia file (WAV, MID, AVI, etc.) */
     170        p = strrchr(filename, '.');
     171          if (!p)
     172              p = ".";
     173             /* printf("%s %d %s\n",
     174              __FILE__, __LINE__, p); fflush(stdout);*/
     175          if  (!stricmp(p, ".OGG") || !stricmp(p, ".MP3") || !stricmp(p, ".FLAC"))
     176              OpenObject(filename, Default, hwnd);  //FM2Play fails to play these
     177          else
     178              runemf2(SEPARATE | WINDOWED,
     179                      HWND_DESKTOP,
     180                      NULL,
     181                      NULL,
     182                      "%sFM2PLAY.EXE \"%s\"",
     183                      (fAddUtils) ? "UTILS\\" : NullStr, filename);
    98184      played = TRUE;
    99185    }
  • trunk/dll/fm3dll.h

    r557 r570  
    3838  17 Feb 07 GKY Add more file system types
    3939  17 Feb 07 GKY Add SelectDriveIcon to streamline update.c
     40  18 Mar 07 GKY Add MM import typedefines for fix for files misindentified as multimedia
    4041
    4142***********************************************************************/
     
    14031404                                          PFOURCC, DWORD, DWORD);
    14041405typedef MMIOIDENTIFYFILE *PMMIOIDENTIFYFILE;
     1406typedef DWORD(APIENTRY MMIOOPEN)( PSZ, PMMIOINFO, DWORD);
     1407typedef MMIOOPEN *PMMIOOPEN;
     1408typedef WORD (APIENTRY MMIOGETINFO)( HMMIO, PMMIOINFO, WORD);
     1409typedef MMIOGETINFO *PMMIOGETINFO;
     1410typedef WORD (APIENTRY MMIOCLOSE)( HMMIO, WORD);
     1411typedef MMIOCLOSE *PMMIOCLOSE;
    14051412
    14061413#pragma pack()
Note: See TracChangeset for help on using the changeset viewer.