1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
|
/* Copyright (c) MediaArea.net SARL. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license that can
* be found in the License.html file in the root of the source tree.
*/
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//
// Microsoft Visual J# wrapper for MediaInfo Library
// See MediaInfo.h for help
//
// To make it working, you must put MediaInfo.Dll
// in the executable folder
//
// Warning : not tested with J# 64-bit, will not work!
//
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
import System.Runtime.InteropServices.*;
import System.IntPtr;
public enum StreamKind
{
General,
Visual,
Audio,
Text,
Chapters,
Image,
Menu,
Max
}
public enum InfoKind
{
Name,
Text,
Measure,
Options,
NameText,
MeasureText,
Info,
HowTo,
Max
}
public enum InfoOptions
{
ShowInInform,
Reserved,
ShowInSupported,
TypeOfValue,
Max
}
public class MediaInfo
{
/**@attribute DllImport("MediaInfo.dll")*/
public static native IntPtr MediaInfo_New();
/**@attribute DllImport("MediaInfo.dll")*/
public static native void MediaInfo_Delete(IntPtr Handle);
/**@attribute DllImport("MediaInfo.dll")*/
public static native int MediaInfo_Open(IntPtr Handle, /** @attribute MarshalAs(UnmanagedType.LPWStr)*/ String File);
/**@attribute DllImport("MediaInfo.dll")*/
public static native void MediaInfo_Close(IntPtr Handle);
/**@attribute DllImport("MediaInfo.dll")*/
public static native IntPtr MediaInfo_Inform(IntPtr Handle, int Options); //WARNING : This is a wchar* value
/**@attribute DllImport("MediaInfo.dll")*/
public static native IntPtr MediaInfo_GetI(IntPtr Handle, StreamKind StreamKind, int StreamNumber, int Parameter, InfoKind KindOfInfo); //WARNING : This is a wchar* value, see MediaInfoDLL.h for enumeration values
/**@attribute DllImport("MediaInfo.dll")*/
public static native IntPtr MediaInfo_Get(IntPtr Handle, StreamKind StreamKind, int StreamNumber, /** @attribute MarshalAs(UnmanagedType.LPWStr)*/ String Parameter, InfoKind KindOfInfo, InfoKind KindOfSearch); //WARNING : This is a wchar* value, see MediaInfoDLL.h for enumeration values
/**@attribute DllImport("MediaInfo.dll")*/
public static native IntPtr MediaInfo_Option(IntPtr Handle, /** @attribute MarshalAs(UnmanagedType.LPWStr)*/ String Option, /** @attribute MarshalAs(UnmanagedType.LPWStr)*/ String Value); //WARNING : This is a wchar* value, see MediaInfoDLL.h for enumeration values
/**@attribute DllImport("MediaInfo.dll")*/
public static native int MediaInfo_State_Get(IntPtr Handle); //see MediaInfoDLL.h for details
/**@attribute DllImport("MediaInfo.dll")*/
public static native int MediaInfo_Count_Get(IntPtr Handle, StreamKind StreamKind, int StreamNumber); //see MediaInfoDLL.h for enumeration values
//MediaInfo class
public MediaInfo() { Handle = MediaInfo_New(); }
void Dispose(boolean disposing) { MediaInfo_Delete(Handle); }
public int Open(String FileName) { return MediaInfo_Open(Handle, FileName); }
public void Close() { MediaInfo_Close(Handle); }
public String Inform() { return Marshal.PtrToStringUni(MediaInfo_Inform(Handle, 0)); }
public String Get(StreamKind StreamKind, int StreamNumber, String Parameter, InfoKind KindOfInfo, InfoKind KindOfSearch) { return Marshal.PtrToStringUni(MediaInfo_Get(Handle, StreamKind, StreamNumber, Parameter, KindOfInfo, KindOfSearch)); }
public String Get(StreamKind StreamKind, int StreamNumber, int Parameter, InfoKind KindOfInfo) { return Marshal.PtrToStringUni(MediaInfo_GetI(Handle, StreamKind, StreamNumber, Parameter, KindOfInfo)); }
public String Option(String Option, String Value) { return Marshal.PtrToStringUni(MediaInfo_Option(Handle, Option, Value)); }
public int State_Get() { return MediaInfo_State_Get(Handle); }
public int Count_Get(StreamKind StreamKind, int StreamNumber) { return MediaInfo_Count_Get(Handle, StreamKind, StreamNumber); }
private IntPtr Handle;
//Default values, if you know how to set default values in J#, say me
public String Get(StreamKind StreamKind, int StreamNumber, String Parameter, InfoKind KindOfInfo) { return Get(StreamKind, StreamNumber, Parameter, KindOfInfo, InfoKind.Name); }
public String Get(StreamKind StreamKind, int StreamNumber, String Parameter) { return Get(StreamKind, StreamNumber, Parameter, InfoKind.Text, InfoKind.Name); }
public String Get(StreamKind StreamKind, int StreamNumber, int Parameter) { return Get(StreamKind, StreamNumber, Parameter, InfoKind.Text); }
public String Option(String Option) { return Option(Option, ""); }
public int Count_Get(StreamKind StreamKind) { return Count_Get(StreamKind, -1); }
}
|