2013-10-31, 07:40
XBMCExtPlayerLauncher
UPDATE: 1.0.0.3 release - Now supports both ISO and NON ISO files
Get it here: https://googledrive.com/host/0B9N9faZA-S...dXeFVBam8/
Unzip the 2 files to any folder. Just keep the config file with the exe.
Requires .NET 4.5
This is a new little application for Windows that I've written specifically to deal with:
1. Path substitutions in Windows so that when XBMC passes out a non Windows compliant path it can be automatically modified to be a path that Windows can understand using pairs of string substitutions that you supply.
2. Unmounting an ISO
3. Mounting an ISO
4. Launching the External Player you want to use to play your BD ISO.
5. Launching the External Player to play NON ISO files (I use this to play 3D MKV movies that are NOT SBS or OU and are ripped as MVC 3D MKVs with MakeMKV)
It takes 1 input parameter which is a fully qualified path (including file name) to the ISO file you want to mount and play.
If you use this application as the middle man it is not necessary to involve any other batch files etc. in the process. All you need to do is setup the "playercorefactory.xml" file correctly and make that point at this application.
See here: http://forum.xbmc.org/showthread.php?tid=176746
Everything this application does is configurable via the config file supplied with the exe file.
In the config file you will find the following settings:
ISOUnmountCmd and ISOMountCmd
These will probably be the same executable but there is a chance they might not be so I made these 2 separate settings. This is literally a path to the executable to run to mount and unmount ISO files.
The idea is to first unmount any ISO currently mounted on the virtual drive letter you are using for your ISO mounts and then mount the ISO file that you want to play on that same drive letter.
ISOUnmountParams and ISOMountParams
These are the command line parameters, if any, that you want to pass to the executables you've defined in ISOUnmountCmd and ISOMountCmd.
These command line parameters should NOT include the path to the ISO in the case of the ISOMountParams. That will be added as an additional command line parameter automatically.
VirtualDriveLetter
The drive letter that you have allocated to your Virtual Drive software. This must be the drive letter you will be mounting your ISOs on.
It will be passed to your External Player.
ExtPlayerRunCmd
This is the path to the executable of the External Player to be used to play the BD ISO you have mounted.
ExtPlayerParams
Any command line parameters you want to pass to your External Player NOT INCLUDING the drive letter of the virtual drive you are mounting the ISO file on because that will be added as an additional command line parameter automatically.
DelayAfterUnmount and DelayAfterMount
The amount of time, in seconds, that you want the app to wait after unmounting and mounting an ISO file.
This is configurable because it may be necessary to wait longer on certain machines due to performance issues etc.
PathSubstitutions
This is particularly useful and allows you to reformat the path to the ISO file that XBMC passes this application so that non Windows compliant paths can be converted to Windows complaint paths for you automatically.
This setting is a comma delimited string of path substitution pairs that are themselves separated by a pipe " | " character.
Example:
XBMC passes in the following NFS format path:
nfs://192.168.1.100/mnt/user/movies/ISO files/mymovie.iso
That is a Linux standard path and Windows does not recognise that.
For Windows to understand it, it must change to something like this:
//192.168.1.100/movies/ISO files/mymovie.iso
or
//myservername/movies/ISO files/mymovie.iso
To get that substitution to happen automatically we supply a substitution pair as follows:
nfs://192.168.1.100/mnt/user|//myservername
You can supply as many pairs as you like, comma separated. The first pair matched will be used and matching will not continue after a match occurs.
NOTE: You MUST have your media shared via an NFS share AND an equivalent SMB share for these substitutions to work. This app cannot magically find files over a network via SMB if you haven't shared them on an SMB share already. All this app does is convert an NFS network path to an SMB network path on-the-fly based on what you tell it to substitute for what and ASSUMING that the path prefixes you stipulate are already valid shares on your network.
DebugMode
Simply set this to "True" if you want the dos command window to stay open and wait for a key press after the app has finished doing it's work so that you can read the output it writes to the console window.
HandleISOMount
This is a new setting in v1.0.0.3.
This setting allows you to explicitly disable mounting and unmounting of ISO files. This may be required if you do NOT want this app to try and mount an ISO file passed to it and rather want it to just pass the path to the file on to the External Player you have specified because the External Player is capable of automatically mounting any ISO you point it at itself.
The app will check the extension of any file passed to it to see if it is an ISO and will only evaluate this setting if the file that has been passed in IS an ISO file, otherwise this setting is ignored.
-----------------------------------------------------
And that's it. If you are at all familiar with External Players and XBMC this should all make perfect sense and if you aren't this should be pretty easy to understand.
I've made it as configurable as possible and I've tested it my side and it seems to work well.
As always, feedback and input welcomed.
UPDATE: 1.0.0.3 release - Now supports both ISO and NON ISO files
Get it here: https://googledrive.com/host/0B9N9faZA-S...dXeFVBam8/
Unzip the 2 files to any folder. Just keep the config file with the exe.
Requires .NET 4.5
This is a new little application for Windows that I've written specifically to deal with:
1. Path substitutions in Windows so that when XBMC passes out a non Windows compliant path it can be automatically modified to be a path that Windows can understand using pairs of string substitutions that you supply.
2. Unmounting an ISO
3. Mounting an ISO
4. Launching the External Player you want to use to play your BD ISO.
5. Launching the External Player to play NON ISO files (I use this to play 3D MKV movies that are NOT SBS or OU and are ripped as MVC 3D MKVs with MakeMKV)
It takes 1 input parameter which is a fully qualified path (including file name) to the ISO file you want to mount and play.
If you use this application as the middle man it is not necessary to involve any other batch files etc. in the process. All you need to do is setup the "playercorefactory.xml" file correctly and make that point at this application.
See here: http://forum.xbmc.org/showthread.php?tid=176746
Everything this application does is configurable via the config file supplied with the exe file.
In the config file you will find the following settings:
Code:
<XBMCExtPlayerLauncher.Properties.Settings>
<setting name="ISOUnmountCmd" serializeAs="String">
<value>C:\Program Files (x86)\Elaborate Bytes\VirtualCloneDrive\vcdmount.exe</value>
</setting>
<setting name="ISOMountCmd" serializeAs="String">
<value>C:\Program Files (x86)\Elaborate Bytes\VirtualCloneDrive\vcdmount.exe</value>
</setting>
<setting name="VirtualDriveLetter" serializeAs="String">
<value>G:</value>
</setting>
<setting name="PathSubstitutions" serializeAs="String">
<value>nfs://192.168.1.100/mnt/user|//unraid</value>
</setting>
<setting name="ISOUnmountParams" serializeAs="String">
<value>/u</value>
</setting>
<setting name="ISOMountParams" serializeAs="String">
<value />
</setting>
<setting name="DelayAfterUnmount" serializeAs="String">
<value>2</value>
</setting>
<setting name="DelayAfterMount" serializeAs="String">
<value>2</value>
</setting>
<setting name="HandleISOMount" serializeAs="String">
<value>False</value>
</setting>
<setting name="ExtPlayerRunCmd" serializeAs="String">
<value>C:\Program Files (x86)\Stereoscopic Player\StereoPlayer.exe</value>
</setting>
<setting name="ExtPlayerParams" serializeAs="String">
<value>-fsu</value>
</setting>
<setting name="DebugMode" serializeAs="String">
<value>True</value>
</setting>
</XBMCExtPlayerLauncher.Properties.Settings>
ISOUnmountCmd and ISOMountCmd
These will probably be the same executable but there is a chance they might not be so I made these 2 separate settings. This is literally a path to the executable to run to mount and unmount ISO files.
The idea is to first unmount any ISO currently mounted on the virtual drive letter you are using for your ISO mounts and then mount the ISO file that you want to play on that same drive letter.
ISOUnmountParams and ISOMountParams
These are the command line parameters, if any, that you want to pass to the executables you've defined in ISOUnmountCmd and ISOMountCmd.
These command line parameters should NOT include the path to the ISO in the case of the ISOMountParams. That will be added as an additional command line parameter automatically.
VirtualDriveLetter
The drive letter that you have allocated to your Virtual Drive software. This must be the drive letter you will be mounting your ISOs on.
It will be passed to your External Player.
ExtPlayerRunCmd
This is the path to the executable of the External Player to be used to play the BD ISO you have mounted.
ExtPlayerParams
Any command line parameters you want to pass to your External Player NOT INCLUDING the drive letter of the virtual drive you are mounting the ISO file on because that will be added as an additional command line parameter automatically.
DelayAfterUnmount and DelayAfterMount
The amount of time, in seconds, that you want the app to wait after unmounting and mounting an ISO file.
This is configurable because it may be necessary to wait longer on certain machines due to performance issues etc.
PathSubstitutions
This is particularly useful and allows you to reformat the path to the ISO file that XBMC passes this application so that non Windows compliant paths can be converted to Windows complaint paths for you automatically.
This setting is a comma delimited string of path substitution pairs that are themselves separated by a pipe " | " character.
Example:
XBMC passes in the following NFS format path:
nfs://192.168.1.100/mnt/user/movies/ISO files/mymovie.iso
That is a Linux standard path and Windows does not recognise that.
For Windows to understand it, it must change to something like this:
//192.168.1.100/movies/ISO files/mymovie.iso
or
//myservername/movies/ISO files/mymovie.iso
To get that substitution to happen automatically we supply a substitution pair as follows:
nfs://192.168.1.100/mnt/user|//myservername
You can supply as many pairs as you like, comma separated. The first pair matched will be used and matching will not continue after a match occurs.
NOTE: You MUST have your media shared via an NFS share AND an equivalent SMB share for these substitutions to work. This app cannot magically find files over a network via SMB if you haven't shared them on an SMB share already. All this app does is convert an NFS network path to an SMB network path on-the-fly based on what you tell it to substitute for what and ASSUMING that the path prefixes you stipulate are already valid shares on your network.
DebugMode
Simply set this to "True" if you want the dos command window to stay open and wait for a key press after the app has finished doing it's work so that you can read the output it writes to the console window.
HandleISOMount
This is a new setting in v1.0.0.3.
This setting allows you to explicitly disable mounting and unmounting of ISO files. This may be required if you do NOT want this app to try and mount an ISO file passed to it and rather want it to just pass the path to the file on to the External Player you have specified because the External Player is capable of automatically mounting any ISO you point it at itself.
The app will check the extension of any file passed to it to see if it is an ISO and will only evaluate this setting if the file that has been passed in IS an ISO file, otherwise this setting is ignored.
-----------------------------------------------------
And that's it. If you are at all familiar with External Players and XBMC this should all make perfect sense and if you aren't this should be pretty easy to understand.
I've made it as configurable as possible and I've tested it my side and it seems to work well.
As always, feedback and input welcomed.