ソースを参照

port from my old repository. let's hope they still work. provided without guarantee.

Zoadian 12 年 前
コミット
2301379a9e
4 ファイル変更194 行追加0 行削除
  1. 13 0
      package.json
  2. 86 0
      source/escapi/escapi.d
  3. 59 0
      source/escapi/functions.d
  4. 36 0
      source/escapi/types.d

+ 13 - 0
package.json

@@ -0,0 +1,13 @@
+{
+	"name": "derelict_extras-escapi",
+	"license": "BSL-1.0",
+	"description": "A dynamic binding to the escapi library.",
+	"copyright": "Copyright © 2014, Felix 'Zoadian' Hufnagel",
+	"authors": ["Felix 'Zoadian' Hufnagel"],
+	
+	"targetPath": "bin",
+    "targetType": "library",
+	
+	"dependencies": {
+	}
+}

+ 86 - 0
source/escapi/escapi.d

@@ -0,0 +1,86 @@
+/*
+
+Boost Software License - Version 1.0 - August 17th, 2003
+
+Permission is hereby granted, free of charge, to any person or organization
+obtaining a copy of the software and accompanying documentation covered by
+this license (the "Software") to use, reproduce, display, distribute,
+execute, and transmit the Software, and to prepare derivative works of the
+Software, and to permit third-parties to whom the Software is furnished to
+do so, all subject to the following:
+
+The copyright notices in the Software and this entire statement, including
+the above license grant, this restriction and the following disclaimer,
+must be included in all copies of the Software, in whole or in part, and
+all derivative works of the Software, unless such copies or derivative
+works are solely in the form of machine-executable object code generated by
+a source language processor.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
+SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
+FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+*/
+module derelict.escapi.escapi;
+
+public
+{
+    import derelict.escapi.types;
+    import derelict.escapi.functions;
+}
+
+private
+{
+    import derelict.util.loader;
+    import derelict.util.system;
+
+    static if(Derelict_OS_Windows)
+        enum libNames = "escapi.dll";
+    //~ else static if(Derelict_OS_Mac)
+        //~ enum libNames = "libglfw.3.dylib";
+    //~ else static if(Derelict_OS_Posix)
+        //~ enum libNames = "libglfw3.so,libglfw.so.3,/usr/local/lib/libglfw3.so,/usr/local/lib/libglfw.so.3";
+    else
+        static assert(0, "Need to implement ESCAPI libNames for this operating system.");
+}
+
+class DerelictESCAPILoader : SharedLibLoader
+{
+    protected
+    {
+        override void loadSymbols()
+        {
+            bindFunc(cast(void**)&escapiInitCOM, "initCOM");
+            bindFunc(cast(void**)&escapiCountCaptureDevices, "countCaptureDevices");
+            bindFunc(cast(void**)&escapiInitCapture, "initCapture");
+            bindFunc(cast(void**)&escapiDeinitCapture, "deinitCapture");            
+            bindFunc(cast(void**)&escapiDoCapture, "doCapture");
+            bindFunc(cast(void**)&escapiIsCaptureDone, "isCaptureDone");
+            bindFunc(cast(void**)&escapiGetCaptureDeviceName, "getCaptureDeviceName");
+            bindFunc(cast(void**)&escapiESCAPIDLLVersion, "ESCAPIDLLVersion");
+        }
+    }
+    public
+    {
+        this()
+        {
+            super(libNames);
+        }
+    }
+}
+
+__gshared DerelictESCAPILoader DerelictESCAPI;
+
+shared static this()
+{
+    DerelictESCAPI = new DerelictESCAPILoader();
+}
+
+shared static ~this()
+{
+    DerelictESCAPI.unload();
+}

+ 59 - 0
source/escapi/functions.d

@@ -0,0 +1,59 @@
+/*
+
+Boost Software License - Version 1.0 - August 17th, 2003
+
+Permission is hereby granted, free of charge, to any person or organization
+obtaining a copy of the software and accompanying documentation covered by
+this license (the "Software") to use, reproduce, display, distribute,
+execute, and transmit the Software, and to prepare derivative works of the
+Software, and to permit third-parties to whom the Software is furnished to
+do so, all subject to the following:
+
+The copyright notices in the Software and this entire statement, including
+the above license grant, this restriction and the following disclaimer,
+must be included in all copies of the Software, in whole or in part, and
+all derivative works of the Software, unless such copies or derivative
+works are solely in the form of machine-executable object code generated by
+a source language processor.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
+SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
+FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+*/
+module derelict.escapi.functions;
+
+private
+{
+    import core.stdc.config;
+    import derelict.escapi.types;
+}
+
+
+extern(C)
+{
+    alias nothrow void function() da_escapiInitCOM;
+    alias nothrow int function() da_escapiCountCaptureDevices;
+    alias nothrow int function(uint, ESCAPISimpleCapParams*) da_escapiInitCapture;
+    alias nothrow void function(uint) da_escapiDeinitCapture;
+    alias nothrow void function(uint) da_escapiDoCapture;
+    alias nothrow int function(uint) da_escapiIsCaptureDone;
+    alias nothrow void function(uint, const(char)*, int) da_escapiGetCaptureDeviceName;
+    alias nothrow int function() da_escapiESCAPIDLLVersion;
+}
+
+__gshared
+{
+    da_escapiInitCOM escapiInitCOM;
+    da_escapiCountCaptureDevices escapiCountCaptureDevices;
+    da_escapiInitCapture escapiInitCapture;
+    da_escapiDeinitCapture escapiDeinitCapture;
+    da_escapiDoCapture escapiDoCapture;
+    da_escapiIsCaptureDone escapiIsCaptureDone;
+    da_escapiGetCaptureDeviceName escapiGetCaptureDeviceName;
+    da_escapiESCAPIDLLVersion escapiESCAPIDLLVersion;
+}

+ 36 - 0
source/escapi/types.d

@@ -0,0 +1,36 @@
+/*
+
+Boost Software License - Version 1.0 - August 17th, 2003
+
+Permission is hereby granted, free of charge, to any person or organization
+obtaining a copy of the software and accompanying documentation covered by
+this license (the "Software") to use, reproduce, display, distribute,
+execute, and transmit the Software, and to prepare derivative works of the
+Software, and to permit third-parties to whom the Software is furnished to
+do so, all subject to the following:
+
+The copyright notices in the Software and this entire statement, including
+the above license grant, this restriction and the following disclaimer,
+must be included in all copies of the Software, in whole or in part, and
+all derivative works of the Software, unless such copies or derivative
+works are solely in the form of machine-executable object code generated by
+a source language processor.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
+SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
+FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+*/
+module derelict.escapi.types;
+
+
+struct ESCAPISimpleCapParams
+{
+	int * mTargetBuf;
+	int mWidth;
+	int mHeight;
+};