soundboard/include/soundbutton.h

57 lines
1.1 KiB
C++

#pragma once
#include <string>
#include <cstdint>
#include <QPushButton>
#include "qxtglobalshortcut.h"
class SoundButton : public QPushButton
{
Q_OBJECT
public:
explicit SoundButton(const std::string& filename, const std::string& name_ = "", const std::string& keycombo = "", QWidget* parent = nullptr);
~SoundButton();
const std::string& getName() const;
const std::string& getFile() const;
const std::string& getKeyCombo() const;
uint64_t getStartMS() const;
uint64_t getLengthMS() const;
float getVolume() const;
void setStartMS(uint64_t startms);
void setLengthMS(uint64_t lengthms);
void setVolume(float v);
void setHighlighted(bool highlighted);
void paintEvent(QPaintEvent *) override;
public slots:
void play();
private:
void setDisabled();
QString getInfo() const;
static uint64_t nextid;
uint64_t id;
std::string name;
std::string file;
std::string keycombo;
uint64_t startms = 0;
uint64_t lengthms = 0; // ignored when length = 0
float volume = 1.f;
bool highlighted = false;
bool disabled = false;
const static uint8_t HIGHLIGHTBORDEROFFSET = 5;
QxtGlobalShortcut* globalShortcut = nullptr;
};