void MpvHandler::Seek(int pos, bool relative, bool osd) { if(playState > 0) { if(relative) { const QByteArray tmp = (((pos >= 0) ? "+" : QString())+QString::number(pos)).toUtf8(); if(osd) { const char *args[] = {"osd-msg", "seek", tmp.constData(), NULL}; AsyncCommand(args); } else { const char *args[] = {"seek", tmp.constData(), NULL}; AsyncCommand(args); } } else { const QByteArray tmp = QString::number(pos).toUtf8(); if(osd) { const char *args[] = {"osd-msg", "seek", tmp.constData(), "absolute", NULL}; AsyncCommand(args); } else { const char *args[] = {"seek", tmp.constData(), "absolute", NULL}; AsyncCommand(args); } } } }
void MpvHandler::Mute(bool m) { if(playState > 0) { const char *args[] = {"set", "mute", m ? "yes" : "no", NULL}; AsyncCommand(args); } else setMute(m); }
void MpvHandler::PlayPause(QString fileIfStopped) { if(playState < 0) // not playing, play plays the selected playlist file PlayFile(fileIfStopped); else { const char *args[] = {"cycle", "pause", NULL}; AsyncCommand(args); } }
void MpvHandler::Command(const QStringList &strlist) { // convert input string into char array int len = strlist.length(); char **data = new char*[len+1]; for(int i = 0; i < len; ++i) { data[i] = new char[strlist[i].length()+1]; memcpy(data[i], QByteArray(strlist[i].toUtf8()).begin(), strlist[i].length()+1); } data[len] = NULL; AsyncCommand(const_cast<const char**>(data)); for(int i = 0; i < len; ++i) delete [] data[i]; delete [] data; // const QByteArray tmp = str.toUtf8(); // mpv_command_string(mpv, tmp.constData()); }
void MpvHandler::Volume(int level, bool osd) { if(level > 100) level = 100; else if(level < 0) level = 0; if(playState > 0) { if(osd) { QString levelStr = QString::number(level); const QByteArray tmp = levelStr.toUtf8(); const char *args[] = {"set", "volume", tmp.constData(), NULL}; AsyncCommand(args); ShowText(tr("Volume: %0%").arg(levelStr)); } else { double v = level; mpv_set_property_async(mpv, 0, "volume", MPV_FORMAT_DOUBLE, &v); } } else setVolume(level); }
void MpvHandler::SubtitleScale(double scale, bool relative) { const QByteArray tmp = QString::number(scale).toUtf8(); const char *args[] = {relative?"add":"set", "sub-scale", tmp.constData(), NULL}; AsyncCommand(args); }
void MpvHandler::ShowSubtitles(bool b) { const char *args[] = {"set", "sub-visibility", b ? "yes" : "no", NULL}; AsyncCommand(args); }
void MpvHandler::Screenshot(bool withSubs) { const char *args[] = {"screenshot", (withSubs ? "subtitles" : "video"), NULL}; AsyncCommand(args); }
void MpvHandler::Sid(int sid) { const QByteArray tmp = QString::number(sid).toUtf8(); const char *args[] = {"set", "sid", tmp.constData(), NULL}; AsyncCommand(args); }
void MpvHandler::Aspect(QString aspect) { const QByteArray tmp = aspect.toUtf8(); const char *args[] = {"set", "video-aspect", tmp.constData(), NULL}; AsyncCommand(args); }
void MpvHandler::PreviousChapter() { const char *args[] = {"add", "chapter", "-1", NULL}; AsyncCommand(args); }
void MpvHandler::NextChapter() { const char *args[] = {"add", "chapter", "1", NULL}; AsyncCommand(args); }
void MpvHandler::FrameBackStep() { const char *args[] = {"frame_back_step", NULL}; AsyncCommand(args); }
void MpvHandler::RemoveOverlay(int id) { QByteArray tmp = QString::number(id).toUtf8(); const char *args[] = {"overlay_remove", tmp.constData(), NULL}; AsyncCommand(args); }