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");
        }
Exemple #2
0
        /// <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);
        }