Olive
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
Namespaces | Enumerations | Variables
olive Namespace Reference

Namespaces

 cursor
 
 icon
 
 rendering
 
 styling
 
 timeline
 
 ui
 

Enumerations

enum  TimecodeType { kTimecodeDrop, kTimecodeNonDrop, kTimecodeFrames, kTimecodeMilliseconds }
 The TimecodeType enum. More...
 
enum  RecordingMode { RECORD_MODE_MONO, RECORD_MODE_STEREO }
 The RecordingMode enum. More...
 
enum  AutoScrollMode { AUTOSCROLL_NO_SCROLL, AUTOSCROLL_PAGE_SCROLL, AUTOSCROLL_SMOOTH_SCROLL }
 The AutoScrollMode enum. More...
 
enum  ProjectView { PROJECT_VIEW_TREE, PROJECT_VIEW_ICON, PROJECT_VIEW_LIST }
 The ProjectView enum. More...
 
enum  FrameQueueType { FRAME_QUEUE_TYPE_FRAMES, FRAME_QUEUE_TYPE_SECONDS }
 The FrameQueueType enum. More...
 

Variables

DebugDialogDebugDialog = nullptr
 Omnipresent instance of DebugDialog to be shown or hidden as the user wants. More...
 
const int kSaveVersion = 190219
 Version identifier for saved projects. More...
 
const int kMinimumSaveVersion = 190219
 Minimum project version that this version of Olive can open. More...
 
Config CurrentConfig
 
RuntimeConfig CurrentRuntimeConfig
 
std::unique_ptr< OliveGlobalGlobal
 Object resource for various global functions used throughout Olive. More...
 
QString ActiveProjectFilename
 Currently active project filename. More...
 
QString AppName
 Current application name. More...
 
ProjectModel project_model
 
ProxyGenerator proxy_generator
 
SequencePtr ActiveSequence = nullptr
 
FocusFilter FocusFilter
 
MainWindowMainWindow
 
std::unique_ptr< MediaIconServicemedia_icon_service
 
MenuHelper MenuHelper
 A global MenuHelper object to assist menu creation throughout Olive. More...
 
QVector< Panel * > panels
 
UpdateNotification update_notifier
 
QUndoStack UndoStack
 Global undo stack object. More...
 

Enumeration Type Documentation

The AutoScrollMode enum.

The Timeline in Olive can automatically scroll to follow the playhead when the sequence is playing. The Timeline will respond to Config::autoscroll set to a value from this enum.

Enumerator
AUTOSCROLL_NO_SCROLL 

Don't auto-scroll, scrolling will not follow the playhead

AUTOSCROLL_PAGE_SCROLL 

Page auto-scroll (default), if the playhead goes off-screen while playing, the scroll will jump ahead one "page" to follow it

AUTOSCROLL_SMOOTH_SCROLL 

Smooth auto-scroll, Olive will scroll to keep the playhead in the center of the screen at all times while playing

The FrameQueueType enum.

Olive keeps a "frame queue" in memory to allow smoother playback/seeking. In order to give users control over the amount of memory consumption vs. playback performance, they can control how many frames are cached into memory. For extra fidelity, they can choose this value as a metric of either frames or seconds.

The playback engine (playback/playback.h) responds to both Config::previous_queue_type and Config::upcoming_queue_type set to a value from this enum.

Enumerator
FRAME_QUEUE_TYPE_FRAMES 

Queue size value is in frames

FRAME_QUEUE_TYPE_SECONDS 

Queue size value is in seconds

The ProjectView enum.

The media in the Project panel can be displayed as a tree hierarchy or as an icon view. The Project panel responds to Config::project_view_type set to a value from this enum.

Enumerator
PROJECT_VIEW_TREE 

Display project media in tree hierarchy

PROJECT_VIEW_ICON 

Display project media in icon browser

PROJECT_VIEW_LIST 

Display project media in list browser

The RecordingMode enum.

Olive currently supports recording mono or stereo and gives users the option of which mode to use when recording audio in-app. Audio recording responds to Config::recording_mode to a value from this enum.

Enumerator
RECORD_MODE_MONO 

Record all audio in mono

RECORD_MODE_STEREO 

Record all audio in stereo

The TimecodeType enum.

Frame numbers can be displayed in various different ways. The timecode_to_frame() and frame_to_timecode() functions (which should be used for all frame <-> timecode conversions) respond to the timecode display type set in Config::timecode_view corresponding to a value from this enum.

Enumerator
kTimecodeDrop 

Show frame number as a drop-frame timecode

kTimecodeNonDrop 

Show frame number as a non-drop-frame timecode

kTimecodeFrames 

Show frame number as-is with no modifications

kTimecodeMilliseconds 

Show frame number as milliseconds

Variable Documentation

QString olive::ActiveProjectFilename

Currently active project filename.

Filename for the currently active project. Empty means the file has not been saved yet.

SequencePtr olive::ActiveSequence = nullptr
QString olive::AppName

Current application name.

Config olive::CurrentConfig
RuntimeConfig olive::CurrentRuntimeConfig
DebugDialog * olive::DebugDialog = nullptr

Omnipresent instance of DebugDialog to be shown or hidden as the user wants.

FocusFilter olive::FocusFilter
std::unique_ptr< OliveGlobal > olive::Global

Object resource for various global functions used throughout Olive.

const int olive::kMinimumSaveVersion = 190219

Minimum project version that this version of Olive can open.

When loading a project, the project's version number is actually checked whether it is somewhere between kSaveVersion and this value (inclusive). This is used if the current version of Olive contains backwards compatibility functionality for older project versions, and is bumped up if such backwards compatibility is ever removed.

As stated in kSaveVersion documentation, ideally in the future, a system would be in place to account for all project version differences and bring them up to date for the current loading algorithm. This means ideally, this constant stays the same forever, but in this early stage it's not strictly necessary.

const int olive::kSaveVersion = 190219

Version identifier for saved projects.

This constant is used to identify what version of Olive a project file was saved with. Every project file is saved with the current version number and the version is checked whenever an Olive project is loaded to determine how compatible it'll be with the current version.

Sometimes this version identifier is used to invoke backwards compatibility in order to keep older project files able to load, but in this early rapidly developing stage, often backwards compatibility is abandoned. Ideally in the future, a class should be made that's able to "convert" an older project into one that the current loading system understands (so that the loading system doesn't get too bloated with backwards compatibility functions).

MainWindow * olive::MainWindow
std::unique_ptr< MediaIconService > olive::media_icon_service
MenuHelper olive::MenuHelper

A global MenuHelper object to assist menu creation throughout Olive.

QVector< Panel * > olive::panels
ProjectModel olive::project_model
ProxyGenerator olive::proxy_generator
QUndoStack olive::UndoStack

Global undo stack object.

UpdateNotification olive::update_notifier