internal static void SetColourFx(this MMALCameraComponent camera, ColourEffects colourFx) { MMALLog.Logger.Debug("Setting colour effects"); MMAL_PARAMETER_COLOURFX_T colFx = new MMAL_PARAMETER_COLOURFX_T(new MMAL_PARAMETER_HEADER_T(MMAL_PARAMETER_COLOUR_EFFECT, Marshal.SizeOf <MMAL_PARAMETER_COLOURFX_T>()), (colourFx.Enable ? 1 : 0), colourFx.U, colourFx.V); MMALCheck(MMALPort.mmal_port_parameter_set(camera.Control.Ptr, &colFx.hdr), "Unable to set colour fx"); }
/// <summary> /// Gets the Colour Effects value currently being used by the camera. /// </summary> /// <param name="camera">The camera component.</param> /// <returns>The Colour Effects value.</returns> public static ColourEffects GetColourFx(this MMALCameraComponent camera) { MMAL_PARAMETER_COLOURFX_T colFx = new MMAL_PARAMETER_COLOURFX_T( new MMAL_PARAMETER_HEADER_T(MMAL_PARAMETER_COLOUR_EFFECT, Marshal.SizeOf <MMAL_PARAMETER_COLOURFX_T>()), 0, 0, 0); MMALCheck(MMALPort.mmal_port_parameter_get(camera.Control.Ptr, &colFx.Hdr), "Unable to get colour fx"); ColourEffects fx = new ColourEffects(colFx.Enable == 1, MMALColor.FromYUVBytes(0, (byte)colFx.U, (byte)colFx.V)); return(fx); }