Lumiera  0.pre.03
»edit your freedom«
query-focus.hpp File Reference

Go to the source code of this file.

Description

Representation of the current scope when navigating the session model.

Session contents may be discovered by query, and a current location plays a crucial role to fill in any missing details for resolving such a query. Thus, any code in need to query contents or otherwise discover settings currently in effect within a given scope, need to manage the position, where the query resolution is assumed to happen. The query focus acts as an abstracted representation of such a location, and provides means for relative navigation. The implementation involves a hidden service to record a movement trail, which allows to consider the way how a some deeply nested scope was accessed. This information might be of relevance, due to the ability to use virtual clips recursively as part of the edit. Effectively, such means to refer to some edit defined elsewhere in the session, and thus this feature turns the tree of nested scopes into a DAG (directed acyclic graph). Such a structure can still be handled as if it was a tree, but we need to take the access path into consideration: placing a given edit as virtual clip into another scope will cause some properties not defined locally to be resolved in a different way, depending on the context in which we encounter this virtual clip. To give an example, the edited media might contain "sound", which needs to be panned and routed differently, depending on the context the clip is placed into.

Todo:

WIP implementation of session core from 2010

as of 2016, this effort is considered stalled but basically valid

Definition in file query-focus.hpp.

#include "steam/mobject/session/scope-path.hpp"
#include "steam/mobject/session/scope-query.hpp"
#include "steam/mobject/session/scope-locator.hpp"
#include "steam/mobject/placement-ref.hpp"
#include <boost/intrusive_ptr.hpp>
#include <string>

Classes

class  QueryFocus
 Current focus location to use as point-of reference for contents and location discovery queries. More...
 

Namespaces

 steam
 Steam-Layer implementation namespace root.
 
 steam::mobject
 Media-Objects, edit operations and high-level session.
 
 steam::mobject::session
 Namespace of Session and user visible high-level objects.