Files
libgphoto2/bindings/csharp/CameraList.cs
2005-08-31 21:24:59 +00:00

130 lines
3.1 KiB
C#

using System;
using System.Runtime.InteropServices;
namespace LibGPhoto2
{
public class CameraList : Object
{
[DllImport ("libgphoto2.so")]
internal static extern ErrorCode gp_list_new (out IntPtr list);
public CameraList ()
{
IntPtr native;
Error.CheckError (gp_list_new (out native));
this.handle = new HandleRef (this, native);
}
[DllImport ("libgphoto2.so")]
internal static extern ErrorCode gp_list_unref (HandleRef list);
protected override void Cleanup ()
{
gp_list_unref (handle);
}
[DllImport ("libgphoto2.so")]
internal static extern ErrorCode gp_list_count (HandleRef list);
public int Count ()
{
ErrorCode result = gp_list_count (handle);
if (Error.IsError (result))
throw Error.ErrorException (result);
return (int)result;
}
[DllImport ("libgphoto2.so")]
internal static extern ErrorCode gp_list_set_name (HandleRef list, int index, string name);
public void SetName (int n, string name)
{
ErrorCode result = gp_list_set_name(this.Handle, n, name);
if (Error.IsError (result))
throw Error.ErrorException (result);
}
[DllImport ("libgphoto2.so")]
internal static extern ErrorCode gp_list_set_value (HandleRef list, int index, string value);
public void SetValue (int n, string value)
{
ErrorCode result = gp_list_set_value (this.Handle, n, value);
if (Error.IsError (result))
throw Error.ErrorException (result);
}
[DllImport ("libgphoto2.so")]
internal static extern ErrorCode gp_list_get_name (HandleRef list, int index, out string name);
public string GetName (int index)
{
string name;
Error.CheckError (gp_list_get_name(this.Handle, index, out name));
return name;
}
[DllImport ("libgphoto2.so")]
internal static extern ErrorCode gp_list_get_value (HandleRef list, int index, out string value);
public string GetValue (int index)
{
string value;
Error.CheckError (gp_list_get_value(this.Handle, index, out value));
return value;
}
[DllImport ("libgphoto2.so")]
internal static extern ErrorCode gp_list_append (HandleRef list, string name, string value);
public void Append (string name, string value)
{
Error.CheckError (gp_list_append(this.Handle, name, value));
}
[DllImport ("libgphoto2.so")]
internal static extern ErrorCode gp_list_populate (HandleRef list, string format, int count);
public void Populate (string format, int count)
{
Error.CheckError (gp_list_populate(this.Handle, format, count));
}
[DllImport ("libgphoto2.so")]
internal static extern ErrorCode gp_list_reset (HandleRef list);
public void Reset ()
{
Error.CheckError (gp_list_reset(this.Handle));
}
[DllImport ("libgphoto2.so")]
internal static extern ErrorCode gp_list_sort (HandleRef list);
public void Sort ()
{
Error.CheckError (gp_list_sort(this.Handle));
}
public int GetPosition(string name, string value)
{
for (int index = 0; index < Count(); index++)
{
if (GetName(index) == name && GetValue(index) == value)
return index;
}
return -1;
}
}
}