Renderer

PluginEnv

When plugins are loaded in Cider the constructor() in the plugin class is passed a PluginEnv object, this object contains:

  • app - The Electron app
  • store - Electron Store
  • utils - Cider utils
  • win - The renderer window
  • dir - Path to the plugin directory
  • dirName - Plugin directory name
Loading frontend plugin(s)

To load a front end plugin (typically named index.frontend.js) from index.js PluginEnv.utils.loadJSFrontend(path: string) is used.

Example: PluginEnv.utils.loadJSFrontend(path.join(PluginEnv.dir, "index.frontend.js"))

utils
  • getPath(path: string) - Returns path used by Cider by name.
    • srcPath - src/ folder
    • rendererPath - renderer/ folder
    • mainPath - main/ path
    • resourcePath - resources/ path
    • i18nPath - i18n/ path
    • ciderCache - Cider cache path
    • themes - Themes
    • plugins - Plugins
  • getLocale(language: string, key: string)
    • Fetches the i18n locale for the given language.
  • getStoreValue(key: string)
    • Gets a store value
  • getStore()
    • Returns store
  • setStoreValue(key: string, value: any)
    • Sets a store value
  • getWindow()
    • Gets the renderer window
  • loadJSFrontend(path: string)
    • Loads a JavaScript file into the renderer, this is the main method of loading front end plugins.
  • playback. - Controls playback
    • .play() - Play
    • .pause() - Pause
    • .playPause() - Toggles playback
    • .next() - Next track in queue
    • .previous() - Previous track in queue
Built in events

Cider plugins support these methods by default, however more can be made with the use of ipcMain and ipcRenderer

  • onReady(win) - (Required) Executes when the back end is ready
  • onRendererReady() - Executes when the renderer has finished loading (app.init())
  • onPlaybackStateDidChange(attributes) - Executes when playback state changes, passes song attributes
  • onNowPlayingItemDidChange(attributes) - Executes when song changes, passes song attributes
  • onBeforeQuit - Executes before Cider quits

Cider Frontend API (CiderFrontAPI)

Function/MethodUsageDetails
StyleSheets.Add
AddMenuEntry
Objects.MenuEntry

App Functions/Methods (app.*)

Function/MethodUsageDetails

Cider Audio (CiderAudio)

Function/MethodUsageDetails