Skip to content
Extraits de code Groupes Projets

Draft: Fix mpv deadlock on quit main window

Fermé Kubat a demandé de fusionner fix-mpv vers master

Fichiers

#include "PreCompiledHeaders.hh"
#include "Lib/Script/CRTPLuaScriptObject.hh"
#include "Lib/Script/LuaContext.hh"
#include "Lib/Document/CRTPSubDocument.hh"
#include "Lib/Document/VivyDocument.hh"
#include "Lib/Audio.hh"
#include "Lib/Video.hh"
#include "VivyApplication.hh"
using namespace Vivy::Script;
FreeFunctions::FreeFunctions(lua_State *const L) noexcept
{
const auto *const context = LuaContext::getContext(L);
out(context) << "Creating the FreeFunctions lua object!";
std::shared_ptr<VivyDocument> vivyDoc = context->getAttachedVivyDocument();
if (vivyDoc) {
if (!(vivyDoc->checkDocumentCapabilities(VivyDocument::AudioAble) &&
vivyDoc->checkDocumentCapabilities(VivyDocument::AssAble) &&
vivyDoc->checkDocumentCapabilities(VivyDocument::AudioAble))) {
err(context) << "The VivyDocument is not a complete document, "
<< "can't load it for scripting";
luaGlobalError(L, "Attached VivyDocument is not complete");
}
out(context) << "Initializing the FreeFunctions lua object with the VivyDocument";
std::shared_ptr<VideoStream> video = vivyDoc->getVideoSubDocument()->getDefaultStream();
[[maybe_unused]] std::shared_ptr<AudioStream> audio =
vivyDoc->getAudioSubDocument()->getDefaultStream();
videoWidth = video->getWidth();
videoHeight = video->getWidth();
TODO(Set getters values for audio)
}
else {
out(context) << "No attached Vivy document in the Lua context";
}
}
int
FreeFunctions::print(lua_State *const L) noexcept
{
const std::string_view arg = CHECK_STRING_VIEW(L, 1);
out(LuaContext::getContext(L)) << "OUT: " << arg;
LUA_RETURN_NOTHING(L);
}
int
FreeFunctions::getModule(lua_State *const L) noexcept
{
const auto *const context = LuaContext::getContext(L);
const std::string_view modName = CHECK_STRING_VIEW(L, 1);
[[maybe_unused]] const ModuleDeclaration *const mod = context->getModule(modName);
return 1;
}
Chargement en cours