git-svn-id: https://svn.code.sf.net/p/gphoto/code/trunk/libgphoto2@8232 67ed7778-7388-44ab-90cf-0a291f65f57c
130 lines
3.1 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|