private void SetCallback(IntPtr pointer, IntPtr clientData)
{
float[] data = new float[1]; /* Value */
Marshal.Copy(pointer, data, 0, data.Length);
if (IsValid(data[0]))
{
bool changed = (data[0] != value);
value = data[0];
if (changed) {
OnChanged(EventArgs.Empty);
}
}
}