Mike-Solar
c0dcd33de0
R8 phase 1: extract app/engine shared utilities into shared/include/oakutil
...
Move the pure-header utilities shared by app/ and engine/ out of
engine/common/ into a new shared/include/oakutil/ layer (define, lerp,
decibel, digit, range, crashpadutils, autoscroll, qtutils, filefunctions
declarations, and a trimmed xmlutils exposing a CancelAtom-free void*
overload). engine/common/ keeps forwarding headers so internal include
paths are unchanged; app/ now includes oakutil/* directly.
engine/node/project.h gains an explicit NodeGroup forward declaration
previously obtained transitively through the old xmlutils.h.
2026-07-27 17:14:56 +08:00
Mike-Solar
0aa5879f35
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.
2026-07-26 22:43:21 +08:00
Mike-Solar
62f18125cb
export: dialog execution path now goes through the facade
...
- oakengine_export_render_ex covers the dialog's entire option surface
(formats, codecs, pix fmts, audio params, ranges incl. still frame,
subtitles, scaling, threads, custom OCIO color transform names,
per-codec key/value options) - zero feature reduction
- the dialog's Start now creates a FacadeExportTask that drives
oakengine_export_render_ex instead of constructing ExportTask in the
UI; progress flows through the facade callback and cancel through
oakengine_export_cancel (OAKENGINE_E_CANCELLED preserves the
keep-dialog-open semantics)
- two real fixes: audio sample format 0 no longer means an
AAC-unsupported u8_p (default is f32_p), and image-sequence exports
use the engine's real [#####] placeholder instead of a made-up -%04d
2026-07-20 11:06:46 +08:00
Mike-Solar
69cd8d3a75
refactor: move msg_box out of engine qtutils into the dialog layer
...
The engine-side QtUtils no longer references QMessageBox; the two
dialog call sites use the identical olive::msg_box() inline helper.
2026-07-20 01:01:18 +08:00
Mike-Solar
bb40b4923e
style: unify identifier naming per updated conventions
...
Automated with clang-tidy readability-identifier-naming (config added to
.clang-tidy) plus scripted passes, per the updated rules now documented
in CONTRIBUTING.md:
- types (class/struct/enum/alias/template params): PascalCase
- functions, variables, members: snake_case (incl. rational -> Rational)
- private/protected members: trailing underscore; static member
variables likewise (instance_, available_themes_)
- constants and enum values: snake_case (kLinear -> k_linear,
F32P -> f32p); ALL_CAPS reserved for macros
- macros: OAK_ prefix (OLIVE_ADD_TEST/OLIVE_ASSERT/OLIVE_CONFIG ->
OAK_ADD_TEST/OAK_ASSERT/OAK_CONFIG, GL_PREAMBLE -> OAK_GL_PREAMBLE,
include guards -> OAK_*)
- file names: all lowercase (Current/Plugin/OliveHost/OliveClip/
OlivePluginInstance -> current/plugin/olivehost/oliveclip/
oliveplugininstance)
- getters share the member name sans underscore, setters set_foo()
- Qt and third-party (OpenFX) virtual overrides and framework callbacks
keep their original names (exempt in .clang-tidy)
Manual follow-ups required where automation could not reach:
- string-based QMetaObject/SIGNAL/SLOT references updated to renamed
methods (AddTask, CreatedFile, DeleteSpecificFile, moveSelectionUp, ...)
- macro bodies referencing renamed methods (OLIVE_CONFIG,
NODE_DEFAULT_DESTRUCTOR, MANAGEDDISPLAYWIDGET_*)
- self-shadowing locals renamed where signals/methods became same-named
(size_changed, worker_count, selected_items, import param, filters)
- third_party OFX member/namespace usages restored (OFX::Host::*,
_created, _clipPrefsDirty, createInstance, clearPersistentMessage)
- STL protocol aliases restored (const_iterator) with .clang-tidy
ignore rules; qHash overloads restored
Full build and test suite pass: ctest 4/4, ~1960 gtest cases green.
2026-07-19 16:10:54 +08:00
Mike-Solar
bfb1b2fce4
update copyright back
2026-01-16 21:22:05 +08:00
Mike-Solar
b8669f6a11
Change project name;
2026-01-05 16:22:26 +08:00
Mike Solar
6fdfd03ffd
update: update copyright
2025-08-05 17:12:49 +08:00
Mike Solar
74f73ab3be
change: change code style to Linux style except indent.
2025-08-03 03:09:40 +08:00
Mike Solar
e18cf095f5
试图解决编译错误
2025-06-19 21:01:45 +08:00
Mike Solar
c04fceef9b
试图解决编译错误
2025-06-18 20:42:45 +08:00
itsmattkc
9745b536f6
nodes: remove graph and merge into project
2023-02-17 14:13:03 -08:00
itsmattkc
c322bb6463
exportdialog: fixed UI issue that allowed "sidecar" files on direct subtitle exports
2023-02-06 17:27:27 -08:00
itsmattkc
dd9c52ab59
start moving core frameworks to external libraries
2023-01-19 09:51:47 -08:00
itsmattkc
451de7030b
Merge branch 'move-time-to-viewer'
2022-11-01 18:20:22 -07:00
itsmattkc
4d80044d6d
upgrade to qt 6 compliance
2022-10-28 19:42:14 -07:00
itsmattkc
d1545745d8
various: moved time from viewer UI to viewer node
2022-10-23 20:56:04 -07:00
itsmattkc
70b4292627
exportdialog: fix bug where files would always be imported after export
...
Fixes #2069
2022-10-23 09:36:38 -07:00
itsmattkc
5420ceaa6f
exportdialog: don't double-set data
2022-10-06 09:47:04 -07:00
itsmattkc
0eadea8607
exportdialog: if using last used, set combobox to reflect that
2022-10-06 09:43:24 -07:00
itsmattkc
2076d0b2c5
exportdialog: ignore preset combobox change when loading presets
2022-10-06 00:46:32 -07:00
itsmattkc
4ea1870098
exportdialog: fixed bug where format change signal didn't fire when loading preset
2022-10-05 16:04:42 -07:00
itsmattkc
6e0c6cdc52
exportdialog: add option to reimport result
2022-09-16 12:35:40 -07:00
itsmattkc
d017d2c143
viewer: add shortcut to save frame as image
2022-09-16 12:19:47 -07:00
itsmattkc
f091ad5a47
exportdialog: remove unnecessary member
2022-08-15 16:24:34 -07:00
itsmattkc
c1dd45bb57
exportdialog: ignore scroll events on widgets
...
Fixes usability issue where scrolling tabs on the export dialog could inadvertently change parameters
2022-08-15 12:51:12 -07:00
itsmattkc
5853c114c2
exportdialog: implemented basic preset saving/loading
...
This may not work perfectly yet, but we can build upon it
2022-08-12 09:16:59 -07:00
itsmattkc
3cee10dfcf
exportdialog: remove debug line
2022-08-10 11:56:14 -07:00
itsmattkc
409f24be39
exportdialog: allow restoring parameters
2022-08-10 11:49:21 -07:00
itsmattkc
1ac205413c
footage: allow overriding YCbCr range
...
Fixes #1354
2022-08-08 12:49:50 -07:00
itsmattkc
12f9b1acfc
export: allow exporting subtitles to sidecar files
2022-07-23 15:22:57 -07:00
itsmattkc
0e6ebee827
exportdialog/timeruler: disable marker and workarea editing
...
Fixes #1979
2022-07-23 09:59:18 -07:00
itsmattkc
21d6aef0ca
qtutils: rename QMessageBox wrapper to avoid conflicts on win32
2022-07-23 09:40:03 -07:00
itsmattkc
187568324a
render: ensure correct yuv range handling
2022-07-20 23:16:08 -07:00
itsmattkc
079d6beff2
timeline: separate markers and workarea
2022-06-27 23:39:31 -07:00
itsmattkc
bbf6f8f9f9
export: fixed stills
2022-05-29 10:15:32 -07:00
itsmattkc
4b366a9b73
update copyright year to 2022
2022-05-10 10:38:56 -07:00
itsmattkc
91b761693b
code: use config macro
...
Macro is much easier to use and more readable
2022-05-04 09:50:34 -07:00
itsmattkc
b290c4d007
audio: extended support for planar/packed formats
2022-05-03 13:41:27 -07:00
itsmattkc
ef515579df
completed audio recording implementation
2022-05-02 17:05:11 -07:00
itsmattkc
9101f5dc49
implemented core audio recording support
2022-05-02 14:00:03 -07:00
itsmattkc
e6d4fe43de
reworked and vastly improved snapping subsystem
2022-05-02 00:01:49 -07:00
itsmattkc
48adb159b8
various: consolidated dir exists+mkpath into one function
2022-04-07 17:11:50 -07:00
itsmattkc
20f74919a3
export: check if exists and if can mkpath
2022-04-07 16:49:18 -07:00
itsmattkc
e0c8a2e569
export: allow running task in background
...
Realized the "Task" infrastructure completely permits this essentially as-is.
Fixes #542
2022-01-10 10:05:05 -08:00
itsmattkc
438cce1ce5
widget: use rational for internal playhead value
...
Fixes #1688
2021-08-02 10:55:01 -07:00
itsmattkc
b7916b8ae0
removed subtitle encoding functions
2021-05-21 10:51:51 +10:00
itsmattkc
cc21ed37a7
implemented core subtitle support
2021-05-18 12:42:47 +10:00
itsmattkc
4942970c02
export: fixed many export formats including still image and image sequence export
...
Still incomplete, but does a lot towards #1345
2021-05-05 19:03:03 +10:00
itsmattkc
77d4b18a60
updated copyright year for 2021 [skip ci]
2021-04-17 18:56:50 +10:00