Hi Lars,
...Anyway, the "default" MM device for some given file type/file extension is defined through MMPM2.INI. And unfortunately, that "device" has to be an MCI device which essentially boils down to being a DLL with a defined entry point and command support. Certainly not any arbitrary EXE file. It would be possible to "wrap" invocation of an EXE file as a MCI device but this has to be implemented...
OK, good pointer. I found the following sections in MMPM2.INI file:
...
[IBMDIGVIDPLAYER01]
VERSIONNUMBER=1.2
PRODUCTINFO=Software Motion Video
MCDDRIVER=SVMC
MCDTABLE=MDM
RESOURCENAME=VIDEO PLAYER01
DEVICEFLAG=1
DEVICETYPE=12
SHARETYPE=3
RESOURCEUNITS=10
RESOURCECLASSES=2,10,1
CONNECTORS=1,3,,1
EXTNAMES=5,AVI,FLC,FLI,MOV,QT
EATYPES=Digital Video
ALIASNAME=DigitalVideo Player
...
[IBMMPEGPLAYER01]
VERSIONNUMBER=1.2
PRODUCTINFO=OpenMPEG Video
MCDDRIVER=DVMC
MCDTABLE=MDM
RESOURCENAME=OpenMPEG01
DEVICEFLAG=1
DEVICETYPE=12
SHARETYPE=3
RESOURCEUNITS=10
RESOURCECLASSES=2,10,1
CONNECTORS=1,3,,1
EXTNAMES=7,MPG,VBS,DAT,M2P,CDI,M2T,M1T
ALIASNAME=OpenMPEG Video 2
...
...therefore, the 'Digitalvideo' definition (see below section) clearly points to the above 'Software Motion Video' and 'OpenMPEG Video' as the providers of that playback functionality (at least as best as I can interpret this).
Further on, the following is defined in the 'Drivers' section:
[Drivers]
Digitalvideo=IBMDIGVIDPLAYER01,IBMMPEGPLAYER01
Speaker=SPEAKER
Headphone=HEADPHONE
Microphone=MICROPHONE
Filter=IBMFILTER01,IBMFILTER02,IBMFILTER03
CDaudio=IBMCDAUDIO01
Waveaudio=UNIAUDWAVE01
Ampmix=UNIAUDAMPMIX01,UNIFMAMPMIX01
Sequencer=UNIAUDFM01
Therefore, the IBMDIGVIDPLAYER01 & IBMMPEGPLAYER01 are the pertinent sections, where the 'MCDDRIVER=' field in both cases appears to point to a matching DLL file in the \MMOS2\DLL path.
Beyond this, the contents of MMPMMMIO.INI spell out the actual installed & registered details.
I am fairly certain that both of these are part of the default OS/2 MM install though, so I suppose one could try the official un-install process, although I'm worried that would remove far too much of that multimedia functionality.
Based on the feedback you provided I went looking through 'Multimedia Subsystem Programming Guide' (part of the OS/2 Toolkit), and under the 'Installation Requirements' one will find 'Installing an I/O Procedure' section. Of course that will simply update the MMPMMMIO.INI file, but it still needs the DLL itself that would allow a re-mapping of various file extensions to a user-defined program.
Taking the example of the AVI IOProc from above, so the SVMC.DLL file, I find the following procedures being exported:
Procedures Exported by Ordinal:
0 @#IBM:14.075#@
1 mciDriverEntry
Therefore, I'm curious if one was to:
1) build such a DLL that would re-map the call to a mplayer.exe (or a user defined EXE for that matter), would it be sufficient to define in that DLL the matching mciDriverEntry procedure?
2) once that procedure is created, would it simply call the EXE from there?
I feel like the above is a terrible oversimplification, but heck, that's all I know at the moment! LOL