File: MediaInfoDLL.jsl

package info (click to toggle)
libmediainfo 25.10%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 19,472 kB
  • sloc: cpp: 272,822; ansic: 6,551; asm: 2,100; xml: 1,476; java: 1,245; sh: 1,203; cs: 1,189; python: 653; makefile: 444; pascal: 197; javascript: 169
file content (98 lines) | stat: -rw-r--r-- 4,945 bytes parent folder | download | duplicates (7)
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); }
}