app: migrate all engine access to the C ABI facade (nm U _ZN5olive = 0)

Every app module now reaches liboakengine exclusively through
oakengine_* C calls, EngineEventBridge subscriptions and app-side
handle headers (cliphandle/keyframehandle/nodevaluehandle/oakvaluehelper).
Direct C++ command construction, engine signal connect()s, and engine
type usage in MOC-visible signatures are gone: 557 -> 0 undefined
olive:: symbols in oak-editor.
This commit is contained in:
2026-07-26 22:43:21 +08:00
parent f95590e924
commit 0aa5879f35
256 changed files with 12357 additions and 4044 deletions
+14 -5
View File
@@ -27,6 +27,8 @@
#include <QTimer>
#include "widget/timebased/timebasedwidget.h"
#include "oakengine/events.h"
#include "oakengine/viewer.h"
namespace olive
{
@@ -156,15 +158,20 @@ void TimeBasedView::set_y_scale(const double &y_scale)
void TimeBasedView::set_viewer_node(ViewerOutput *v)
{
if (viewer_) {
disconnect(viewer_, &ViewerOutput::playhead_changed, viewport(),
static_cast<void (QWidget::*)()>(&TimeBasedView::update));
oakengine_event_unsubscribe(viewer_sub_);
viewer_sub_ = 0;
}
viewer_ = v;
if (viewer_) {
connect(viewer_, &ViewerOutput::playhead_changed, viewport(),
static_cast<void (QWidget::*)()>(&TimeBasedView::update));
viewer_sub_ = oakengine_event_subscribe(
reinterpret_cast<OakEngineNode *>(viewer_),
OAKENGINE_EVENT_VIEWER_PLAYHEAD_CHANGED,
[](const oakengine_event *, void *userdata) {
static_cast<TimeBasedView *>(userdata)->viewport()->update();
},
this);
}
}
@@ -247,7 +254,9 @@ bool TimeBasedView::playhead_move(QMouseEvent *event)
mouse_time += movement;
}
viewer_->set_playhead(mouse_time);
oakengine_viewer_set_playhead(
reinterpret_cast<OakEngineNode *>(viewer_),
mouse_time.numerator(), mouse_time.denominator());
}
return true;