76 lines
3.9 KiB
C#
76 lines
3.9 KiB
C#
/**
|
|||
|
|
* Product: Tolk
|
||
|
|
* File: Tolk.cs
|
||
|
|
* Description: .NET wrapper class (in C#).
|
||
|
|
* Copyright: (c) 2014, Davy Kager <mail@davykager.nl>
|
||
|
|
* License: LGPLv3
|
||
|
|
*/
|
||
|
|
|
||
|
|
using System;
|
||
|
|
using System.Runtime.InteropServices;
|
||
|
|
|
||
|
|
namespace DavyKager {
|
||
|
|
|
||
|
|
public sealed class Tolk {
|
||
|
|
[DllImport("Tolk.dll", CharSet=CharSet.Unicode, CallingConvention=CallingConvention.Cdecl)]
|
||
|
|
private static extern void Tolk_Load();
|
||
|
|
[DllImport("Tolk.dll", CharSet=CharSet.Unicode, CallingConvention=CallingConvention.Cdecl)]
|
||
|
|
[return: MarshalAs(UnmanagedType.I1)]
|
||
|
|
private static extern bool Tolk_IsLoaded();
|
||
|
|
[DllImport("Tolk.dll", CharSet=CharSet.Unicode, CallingConvention=CallingConvention.Cdecl)]
|
||
|
|
private static extern void Tolk_Unload();
|
||
|
|
[DllImport("Tolk.dll", CharSet=CharSet.Unicode, CallingConvention=CallingConvention.Cdecl)]
|
||
|
|
private static extern void Tolk_TrySAPI(
|
||
|
|
[MarshalAs(UnmanagedType.I1)]bool trySAPI);
|
||
|
|
[DllImport("Tolk.dll", CharSet=CharSet.Unicode, CallingConvention=CallingConvention.Cdecl)]
|
||
|
|
private static extern void Tolk_PreferSAPI(
|
||
|
|
[MarshalAs(UnmanagedType.I1)]bool preferSAPI);
|
||
|
|
[DllImport("Tolk.dll", CharSet=CharSet.Unicode, CallingConvention=CallingConvention.Cdecl)]
|
||
|
|
private static extern IntPtr Tolk_DetectScreenReader();
|
||
|
|
[DllImport("Tolk.dll", CharSet=CharSet.Unicode, CallingConvention=CallingConvention.Cdecl)]
|
||
|
|
[return: MarshalAs(UnmanagedType.I1)]
|
||
|
|
private static extern bool Tolk_HasSpeech();
|
||
|
|
[DllImport("Tolk.dll", CharSet=CharSet.Unicode, CallingConvention=CallingConvention.Cdecl)]
|
||
|
|
[return: MarshalAs(UnmanagedType.I1)]
|
||
|
|
private static extern bool Tolk_HasBraille();
|
||
|
|
[DllImport("Tolk.dll", CharSet=CharSet.Unicode, CallingConvention=CallingConvention.Cdecl)]
|
||
|
|
[return: MarshalAs(UnmanagedType.I1)]
|
||
|
|
private static extern bool Tolk_Output(
|
||
|
|
[MarshalAs(UnmanagedType.LPWStr)]String str,
|
||
|
|
[MarshalAs(UnmanagedType.I1)]bool interrupt);
|
||
|
|
[DllImport("Tolk.dll", CharSet=CharSet.Unicode, CallingConvention=CallingConvention.Cdecl)]
|
||
|
|
[return: MarshalAs(UnmanagedType.I1)]
|
||
|
|
private static extern bool Tolk_Speak(
|
||
|
|
[MarshalAs(UnmanagedType.LPWStr)]String str,
|
||
|
|
[MarshalAs(UnmanagedType.I1)]bool interrupt);
|
||
|
|
[DllImport("Tolk.dll", CharSet=CharSet.Unicode, CallingConvention=CallingConvention.Cdecl)]
|
||
|
|
[return: MarshalAs(UnmanagedType.I1)]
|
||
|
|
private static extern bool Tolk_Braille(
|
||
|
|
[MarshalAs(UnmanagedType.LPWStr)]String str);
|
||
|
|
[DllImport("Tolk.dll", CharSet=CharSet.Unicode, CallingConvention=CallingConvention.Cdecl)]
|
||
|
|
[return: MarshalAs(UnmanagedType.I1)]
|
||
|
|
private static extern bool Tolk_IsSpeaking();
|
||
|
|
[DllImport("Tolk.dll", CharSet=CharSet.Unicode, CallingConvention=CallingConvention.Cdecl)]
|
||
|
|
[return: MarshalAs(UnmanagedType.I1)]
|
||
|
|
private static extern bool Tolk_Silence();
|
||
|
|
|
||
|
|
// Prevent construction
|
||
|
|
private Tolk() {}
|
||
|
|
|
||
|
|
public static void Load() { Tolk_Load(); }
|
||
|
|
public static bool IsLoaded() { return Tolk_IsLoaded(); }
|
||
|
|
public static void Unload() { Tolk_Unload(); }
|
||
|
|
public static void TrySAPI(bool trySAPI) { Tolk_TrySAPI(trySAPI); }
|
||
|
|
public static void PreferSAPI(bool preferSAPI) { Tolk_PreferSAPI(preferSAPI); }
|
||
|
|
// Prevent the marshaller from freeing the unmanaged string
|
||
|
|
public static String DetectScreenReader() { return Marshal.PtrToStringUni(Tolk_DetectScreenReader()); }
|
||
|
|
public static bool HasSpeech() { return Tolk_HasSpeech(); }
|
||
|
|
public static bool HasBraille() { return Tolk_HasBraille(); }
|
||
|
|
public static bool Output(String str, bool interrupt = false) { return Tolk_Output(str, interrupt); }
|
||
|
|
public static bool Speak(String str, bool interrupt = false) { return Tolk_Speak(str, interrupt); }
|
||
|
|
public static bool Braille(String str) { return Tolk_Braille(str); }
|
||
|
|
public static bool IsSpeaking() { return Tolk_IsSpeaking(); }
|
||
|
|
public static bool Silence() { return Tolk_Silence(); }
|
||
|
|
}
|
||
|
|
}
|