1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
/*
* Copyright (C) 2005-2018 Team Kodi
* This file is part of Kodi - https://kodi.tv
*
* SPDX-License-Identifier: GPL-2.0-or-later
* See LICENSES/README.md for more information.
*/
#pragma once
#include "addons/binary-addons/AddonInstanceHandler.h"
#include "addons/kodi-dev-kit/include/kodi/addon-instance/Visualization.h"
namespace KODI
{
namespace ADDONS
{
class CVisualization : public ADDON::IAddonInstanceHandler
{
public:
CVisualization(const ADDON::AddonInfoPtr& addonInfo, float x, float y, float w, float h);
~CVisualization() override;
bool Start(int channels, int samplesPerSec, int bitsPerSample, const std::string& songName);
void Stop();
void AudioData(const float* audioData, int audioDataLength);
bool IsDirty();
void Render();
int GetSyncDelay();
bool NextPreset();
bool PrevPreset();
bool LoadPreset(int select);
bool RandomPreset();
bool LockPreset();
bool RatePreset(bool plus_minus);
bool UpdateAlbumart(const char* albumart);
bool UpdateTrack(const KODI_ADDON_VISUALIZATION_TRACK* track);
bool HasPresets();
bool GetPresetList(std::vector<std::string>& vecpresets);
int GetActivePreset();
std::string GetActivePresetName();
bool IsLocked();
// Addon callback functions
void GetProperties(struct KODI_ADDON_VISUALIZATION_PROPS* props);
void TransferPreset(const std::string& preset);
void ClearPresets();
private:
const int m_x;
const int m_y;
const int m_width;
const int m_height;
std::vector<std::string> m_presets; /*!< cached preset list */
};
} // namespace ADDONS
} // namespace KODI
|