Structs

@brief projectM instance settings.

Constants

!< Set this flag to disable loading a preset playlist on startup.

!< Draws a blob-style waveform.

!< Draws another blob-style waveform.

!< Draws a five-blob waveform.

!< Draws a derivative-line waveform.

!< Draws a single-line waveform.

Functions

@brief Adds a new preset at the end of the playlist.

@brief Allocates memory for a projectm_settings struct and returns the pointer.

@brief Allocates memory for a string and returns the pointer.

@brief Clears the preset playlist. @param instance The projectM instance handle.

@brief Creates a new projectM instance, reading settings from the given file. @param setting_file_path A path to the settings file to read the configuration from. If NULL or an empty path are provided, default settings will be used. @param flags Any combination of values from the projectm_flags enumeration. @return A projectM handle for the newly created instance that must be used in subsequent API calls. NULL if the instance could not be created successfully.

@brief Creates a new projectM instance with given settings. @param settings A pointer to a projectm_settings_t with the settings to be used by the new instance. If this pointer is NULL, default settings will be used. @param flags Any combination of values from the projectm_flags enumeration. @return A projectM handle for the newly created instance that must be used in subsequent API calls. NULL if the instance could not be created successfully.

@brief Default key handler that processes user input.

@brief Deletes one character from the preset search text.

@brief Destroys the given instance and frees the resources.

@brief Frees the memory of an allocated projectm_settings structure.

@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 path projectM uses to search for additional data. @param instance The projectM instance handle. @return The data dir path.

@brief Returns the current “easter egg” value. @param instance The projectM instance handle. @return The current “easter egg” value.

@brief Returns whether the current preset was loaded successfully or not. @param instance The projectM instance handle. @return True if the preset was not loaded successfully, false if it is displayed correctly.

@brief Returns the target frames per second count. @note This is not the actual FPS, but the targeted refresh framerate if the integrating application. @param instance The projectM instance handle.

@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 path and filename of the font used to render the menu overlay text. @param instance The projectM instance handle. @return The path and filename of the menu text font.

@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 number of presets in the current playlist. @param instance The projectM instance handle. @return The number of presets in the currently loaded playlist.

@brief Returns the path and filename of the preset at the requested playlist index. @note Make sure the index is inside the playlist bounds! @param instance The projectM instance handle. @param index The playlist index to return the filename for. @return The full path and filename of the preset at the given index.

@brief Returns the playlist index for the given preset name.

@brief Returns the display name of the preset at the requested playlist index. @note Make sure the index is inside the playlist bounds! @param instance The projectM instance handle. @param index The playlist index to return the display name for. @return The display name of the preset at the given index.

@brief Returns the search path for presets and textures. @param instance The projectM instance handle. @return The path used to search for presets and textures.

@brief Returns the rating for the given index and transition type. @param instance The projectM instance handle. @param index The playlist item to retrieve the rating from. @param rating_type The rating type to retrieve, either hard or soft cut. @return The rating value of the requested item and type.

@brief Gets the index of the provided preset name in the current search result list. @param instance The projectM instance handle. @param name The name of the preset to return the index for. @return The search result list index of the given preset name.

@brief Returns the current preset search text. @param instance The projectM instance handle. @return The current search text used to search for presets in the playlist.

@brief Returns the currently selected preset index. @param instance The projectM instance handle. @param index A valid pointer to an unsigned int that will receive the preset index. @return True if a preset idnex was returned, false if no preset was selected, e.g. the playlist is empty.

@brief Returns a structure with the current projectM settings. @param instance The projectM instance handle. @return A struct with all currently used settings.

@brief Returns whether playlist shuffling is currently enabled or not. @param instance The projectM instance handle. @return True if shuffle is enabled, false if not.

@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 size of the internal render texture. @param instance The projectM instance handle. @return The size of the internal rendering texture.

@brief Returns the current title text. @param instance The projectM instance handle. @return The currently set title text.

@brief Returns the path and filename of the font used to render the title overlay text. @param instance The projectM instance handle. @return The path and filename of the title text font.

@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 Enables render-to-texture.

@brief Adds a new preset at the given position in the playlist.

@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 whether the search text input mode is active or not. @param instance The projectM instance handle. @param no_minimum_length If set to true, will return true if at least one character has been typed, otherwise a minimum length of three characters is required. @return True if text input mode is active, false otherwise.

@brief Key handler that processes user input.

@brief Locks or unlocks the current preset.

@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 Populates the on-screen preset menu. @param instance The projectM instance handle.

@brief Returns whether the currently selected preset has a valid position in the playlist.

@brief Removes a preset from the playlist. @param instance The projectM instance handle. @param index The preset index to remove from the playlist.

@brief Renders a single frame.

@brief Reset the projectM OpenGL renderer.

@brief Deletes the whole search text.

@brief Reloads all textures.

@brief Switches to the next preset in the current playlist.

@brief Selects and displays the preset. @param instance The projectM instance handle. @param index the preset to display. @param hard_cut If true, a hard cut is made, otherwise it will be blended smoothly.

@brief Displays the preset with the given name. @param instance The projectM instance handle. @param preset_name The preset name to search for. @param hard_cut If true, the preset will be shown immediately, if false a soft transition will be rendered.

@brief Selects a preset, but does not display it. @param instance The projectM instance handle. @param index The preset index to select.

@brief Switches to the previous preset in the current playlist.

@brief Switches to a random preset in the current playlist.

@brief Enabled or disables aspect ratio correction in presets that support it.

@brief Sets the “easter egg” value.

@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 help menu text.

@brief Sets the per-pixel equation mesh size in units. @note This will recreate the renderer. @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 Changes the display name of the given preset in the playlist. @param instance The projectM instance handle. @param index the playlist item index to change. @param name The new display name.

@brief Changes the rating or a playlist item and type. @param instance The projectM instance handle. @param index the playlist item to change the rating of. @param rating The new rating value. @param rating_type The type of the rating, either hard or soft cut.

@brief Sets a callback function that will be called when a preset rating changed.

@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 current preset search text. @param instance The projectM instance handle. @param search_text The search text used to search for presets in the current playlist.

@brief Sets a callback function that will be called when the shuffle setting changes.

@brief Enables or disables preset playlist shuffling. @param instance The projectM instance handle. @param shuffle_enabled True to randomly select the next preset, false to skip to the next item in line.

@brief Sets the time in seconds for a soft transition between two presets.

@brief Changes the size of the internal render texture. @note This will recreate the internal renderer. @param instance The projectM instance handle. @param size The new size of the render texture. Must be a power of 2.

@brief Sets the current title text and displays it. @param instance The projectM instance handle. @param title The title text to display.

@brief Displays a short message in the center of the rendering area for a few seconds.

@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 Saves the given settings struct into a file.

Type Definitions

For specifying audio data format.

Flags that influence projectM instance creation.

Placeholder values that can be used to address channel indices in PCM data arrays.

@brief Callback function that is executed if a preset rating has been changed.

Rating types supported by projectM. Used to control preset selection for different types of transitions (hard/soft).

@brief Callback function that is executed if a preset change failed.

@brief Callback function that is executed on each preset change.

@brief projectM instance settings.

@brief Callback function that is executed is the shuffle setting has changed. @param shuffle_enabled True if shuffle is enabled, false if it was disabled. @param user_data A user-defined data pointer that was provided when registering the callback, e.g. context information.

Waveform render types used in the touch start method.