@brief Allocates memory for a string and returns the pointer.
@brief Creates a new projectM instance.
@brief Destroys the given instance and frees the resources.
@brief Frees the memory of an allocated string.
@brief Returns whether aspect ratio correction is enabled or not.
@param instance The projectM instance handle.
@return True if aspect ratio correction is enabled, false otherwise.
@brief Returns the beat sensitivity.
@param instance The projectM instance handle.
@return The current sensitivity setting.
@brief Returns the current “easter egg” value.
@param instance The projectM instance handle.
@return The current “easter egg” value.
@brief Returns the current/average frames per second.
@brief Returns the minimum display time before a hard cut can happen.
@param instance The projectM instance handle.
@return The minimum number of seconds the preset will be displayed before a hard cut.
@brief Returns whether hard cuts are enabled or not.
@param instance The projectM instance handle.
@return True if hard cuts are enabled, false otherwise.
@brief Returns the current hard cut sensitivity.
@param instance The projectM instance handle.
@return The current hard cut sensitivity.
@brief Returns the per-pixel equation mesh size in units.
@param instance The projectM instance handle.
@param width The width of the mesh.
@param height The height of the mesh.
@brief Returns the preset display duration before switching to the next using a soft cut.
@brief Returns whether the current preset is locked or not.
@param instance The projectM instance handle.
@return True if the preset lock is enabled, false otherwise.
@brief Returns the time in seconds for a soft transition between two presets.
@param instance The projectM instance handle.
@return Time in seconds it takes to smoothly transition from one preset to another.
@brief Returns the VCS revision from which the projectM library was built.
@brief Returns the runtime library version components as individual integers.
@brief Returns the runtime library version as a string.
@brief Returns the current viewport size in pixels.
@param instance The projectM instance handle.
@param width Valid pointer to a size_t variable that will receive the window width value.
@param height Valid pointer to a size_t variable that will receive the window height value.
@brief Loads a preset from the data pointer.
@brief Loads a preset from the given filename/URL.
@brief Renders a single frame.
@brief Adds 32-bit floating-point audio samples.
@brief Adds 16-bit integer audio samples.
@brief Adds 8-bit unsigned integer audio samples.
@brief Returns the maximum number of audio samples that can be stored.
@brief Appends presets from the given path to the end of the current playlist.
@brief Adds a single preset to the end of the playlist.
@brief Adds a list of presets to the end of the playlist.
@brief Applies the current filter list to the existing playlist.
@brief Clears the playlist.
@param instance The playlist manager instance to clear.
@brief Connects the playlist manager to a projectM instance.
@brief Creates a playlist manager for the given projectM instance
@brief Destroys a previously created playlist manager.
@brief Frees a char pointer returned by any of the playlist API functions.
@brief Frees a string array returned by any of the playlist API functions.
@brief Returns the current filter list.
@brief Returns the current playlist position.
@param instance The playlist manager instance.
@return The current playlist position. If the playlist is empty, 0 will be returned.
@brief Returns the number of retries after failed preset switches.
@param instance The playlist manager instance.
@return The number of retries after failed preset switches.
@brief Retrieves the current state of shuffle mode.
@param instance The playlist manager instance.
@return True if shuffle mode is enabled, false otherwise.
@brief Inserts presets from the given path to the end of the current playlist.
@brief Adds a single preset to the playlist at the specified position.
@brief Adds a single preset to the playlist at the specified position.
@brief Returns the name of a preset at the given index in the current playlist.
@note Call projectm_playlist_free_string() when you’re done using the return value.
@note If you need to retrieve a major part of playlist filenames, use projectm_playlist_items()
instead.
@param instance The playlist manager instance.
@param index The index to retrieve the filename for.
@return The filename of the requested preset, or NULL if the index was out of bounds or the
playlist is empty.
@brief Returns a list of preset files inside the given range of the current playlist, in order.
@brief Plays the last preset played in the history and returns the index of the preset.
@brief Plays the next playlist item and returns the index of the new preset.
@brief Plays the previous playlist item and returns the index of the new preset.
@brief Removes a single preset from the playlist at the specified position.
@brief Removes a number of presets from the playlist from the specified position.
@brief Sets a new filter list.
@brief Plays the preset at the requested playlist position and returns the actual playlist index.
@brief Sets a callback function that will be called when a preset change failed.
@brief Sets a callback function that will be called when a preset changes.
@brief Sets the number of retries after failed preset switches.
@note Don’t set this value too high, as each retry is done recursively.
@param instance The playlist manager instance.
@param retry_count The number of retries after failed preset switches. Default is 5. Set to 0
to simply forward the failure event from projectM.
@brief Enable or disable shuffle mode.
@param instance The playlist manager instance.
@param shuffle True to enable random shuffling, false to play presets in playlist order.
@brief Returns the number of presets in the current playlist.
@param instance The playlist manager instance.
@return The number of presets in the current playlist.
@brief Sorts part or the whole playlist according to the given predicate and order.
@brief Reloads all textures.
@brief Enabled or disables aspect ratio correction in presets that support it.
@brief Sets the beat sensitivity.
@brief Sets the “easter egg” value.
@brief Sets the current/average frames per second.
@brief Sets the minimum display time before a hard cut can happen.
@brief Enables or disables hard cuts.
@brief Sets the hard cut volume sensitivity.
@brief Sets the per-pixel equation mesh size in units.
Will internally be clamped to [8,300] in each axis. If any dimension is set to an odd value, it will be incremented by 1
so only multiples of two are used.
@param instance The projectM instance handle.
@param width The new width of the mesh.
@param height The new height of the mesh.
@brief Sets the preset display duration before switching to the next using a soft cut.
@brief Locks or unlocks the current preset.
@brief Sets a callback function that will be called when a preset change failed.
@brief Sets a callback function that will be called when a preset change is requested.
@brief Sets the time in seconds for a soft transition between two presets.
@brief Sets the texture search paths.
@brief Sets the current viewport size in pixels.
@brief Starts a touch event or moves an existing waveform.
@brief Removes any additional touch waveforms under the given coordinates.
@param instance The projectM instance handle.
@param x The last known x touch coordinate.
@param y The last known y touch coordinate.
@brief Removes all touch waveforms from the screen.
@brief Centers any waveforms under the coordinates to simulate dragging.
@param instance The projectM instance handle.
@param x The x coordinate of the drag.
@param y the y coordinate of the drag.
@param pressure The amount of pressure applied in a range from 0.0 to 1.0.
@brief Writes a .bmp main texture dump after rendering the next main texture, before shaders are applied.