git-svn-id: https://svn.code.sf.net/p/gphoto/code/trunk/libgphoto2@8232 67ed7778-7388-44ab-90cf-0a291f65f57c
166 lines
4.0 KiB
C#
166 lines
4.0 KiB
C#
using System;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace LibGPhoto2
|
|
{
|
|
|
|
public enum CameraDriverStatus
|
|
{
|
|
Production,
|
|
Testing,
|
|
Experimental
|
|
}
|
|
|
|
public enum CameraOperation
|
|
{
|
|
None = 0,
|
|
CaptureImage = 1 << 0,
|
|
CaptureVideo = 1 << 1,
|
|
CaptureAudio = 1 << 2,
|
|
CapturePreview = 1 << 3,
|
|
Config = 1 << 4
|
|
}
|
|
|
|
public enum CameraFileOperation
|
|
{
|
|
None = 0,
|
|
Delete = 1 << 1,
|
|
Preview = 1 << 3,
|
|
Raw = 1 << 4,
|
|
Audio = 1 << 5,
|
|
Exif = 1 << 6
|
|
}
|
|
|
|
public enum CameraFolderOperation
|
|
{
|
|
None = 0,
|
|
DeleteAll = 1 << 0,
|
|
PutFile = 1 << 1,
|
|
MakeDirectory = 1 << 2,
|
|
RemoveDirectory = 1 << 3
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public unsafe struct CameraAbilities
|
|
{
|
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=128)] public string model;
|
|
public CameraDriverStatus status;
|
|
|
|
public PortType port;
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst=64)] public int[] speed;
|
|
|
|
public CameraOperation operations;
|
|
public CameraFileOperation file_operations;
|
|
public CameraFolderOperation folder_operations;
|
|
|
|
public int usb_vendor;
|
|
public int usb_product;
|
|
public int usb_class;
|
|
public int usb_subclass;
|
|
public int usb_protocol;
|
|
|
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=1024)] public string library;
|
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=1024)] public string id;
|
|
|
|
public int reserved1;
|
|
public int reserved2;
|
|
public int reserved3;
|
|
public int reserved4;
|
|
public int reserved5;
|
|
public int reserved6;
|
|
public int reserved7;
|
|
public int reserved8;
|
|
}
|
|
|
|
public class CameraAbilitiesList : Object
|
|
{
|
|
[DllImport ("libgphoto2.so")]
|
|
internal static extern ErrorCode gp_abilities_list_new (out IntPtr native);
|
|
|
|
public CameraAbilitiesList()
|
|
{
|
|
IntPtr native;
|
|
|
|
Error.CheckError (gp_abilities_list_new (out native));
|
|
|
|
this.handle = new HandleRef (this, native);
|
|
}
|
|
|
|
[DllImport ("libgphoto2.so")]
|
|
internal static extern ErrorCode gp_abilities_list_free (HandleRef list);
|
|
|
|
protected override void Cleanup ()
|
|
{
|
|
gp_abilities_list_free(this.handle);
|
|
}
|
|
|
|
[DllImport ("libgphoto2.so")]
|
|
internal unsafe static extern ErrorCode gp_abilities_list_load (HandleRef list, HandleRef context);
|
|
|
|
public void Load (Context context)
|
|
{
|
|
unsafe {
|
|
ErrorCode result = gp_abilities_list_load (this.Handle, context.Handle);
|
|
|
|
if (Error.IsError (result))
|
|
throw Error.ErrorException(result);
|
|
}
|
|
}
|
|
|
|
[DllImport ("libgphoto2.so")]
|
|
internal unsafe static extern ErrorCode gp_abilities_list_detect (HandleRef list, HandleRef info_list, HandleRef l, HandleRef context);
|
|
|
|
public void Detect (PortInfoList info_list, CameraList l, Context context)
|
|
{
|
|
Error.CheckError (gp_abilities_list_detect (this.handle, info_list.Handle,
|
|
l.Handle, context.Handle));
|
|
}
|
|
|
|
[DllImport ("libgphoto2.so")]
|
|
internal static extern ErrorCode gp_abilities_list_count (HandleRef list);
|
|
|
|
public int Count ()
|
|
{
|
|
ErrorCode result = gp_abilities_list_count (this.handle);
|
|
|
|
if (Error.IsError (result))
|
|
throw Error.ErrorException (result);
|
|
|
|
return (int)result;
|
|
}
|
|
|
|
[DllImport ("libgphoto2.so")]
|
|
internal static extern ErrorCode gp_abilities_list_lookup_model (HandleRef list, string model);
|
|
|
|
public int LookupModel (string model)
|
|
{
|
|
ErrorCode result = gp_abilities_list_lookup_model(this.handle, model);
|
|
|
|
if (Error.IsError (result))
|
|
throw Error.ErrorException (result);
|
|
|
|
return (int)result;
|
|
}
|
|
|
|
[DllImport ("libgphoto2.so")]
|
|
internal static extern ErrorCode gp_abilities_list_get_abilities (HandleRef list, int index, out CameraAbilities abilities);
|
|
|
|
public CameraAbilities GetAbilities (int index)
|
|
{
|
|
CameraAbilities abilities = new CameraAbilities ();
|
|
|
|
Error.CheckError (gp_abilities_list_get_abilities(this.Handle, index, out abilities));
|
|
|
|
return abilities;
|
|
}
|
|
|
|
[DllImport ("libgphoto2.so")]
|
|
internal static extern ErrorCode gp_abilities_list_append (HandleRef list, ref CameraAbilities abilities);
|
|
|
|
public void Append (CameraAbilities abilities)
|
|
{
|
|
Error.CheckError (gp_abilities_list_append (this.Handle, ref abilities));
|
|
}
|
|
}
|
|
}
|