score Namespace Reference

Base toolkit upon which the software is built. More...

Detailed Description

Base toolkit upon which the software is built.

TODO. list in src/plugins/score-plugin-avnd/Crousti/Concepts.hpp#L139.

This namespace contains only non-domain specific classes and utilities : serialization, model-view, documents, etc.

It is split in two folders :

  • core is the internal mechanic to set-up the software : the actual widget classes, the plug-in loading code, etc.
  • score is the "public" part of the score API : this code can be used by plug-ins.

This file contains facilities to serialize an object into a QJsonObject.

This file contains base types for the events and transitions of the state machines in score.

See the documentation for explanation of the general pattern

Namespaces

 gfx
 Graphics rendering pipeline for ossia score.
 

Classes

class  InteractiveLabel
 
class  StartScreen
 
struct  StartScreenLink
 
class  ApplicationInterface
 The ApplicationInterface class. More...
 
class  GUIApplicationInterface
 
class  ApplicationRegistrar
 Registers the plug-in elements. More...
 
class  GUIApplicationRegistrar
 
struct  ApplicationSettings
 Load-time settings. More...
 
struct  CommandStackBackup
 Serialized command stack data for backup / restore. More...
 
class  CommandBackupFile
 Abstraction over the backup of commands. More...
 
class  MinimalApplication
 
class  MinimalGUIApplication
 
struct  OpenDocumentsFile
 File used for crash restore. More...
 
class  CommandStack
 
class  Document
 The Document class is the central part of the software. More...
 
class  DocumentBackupManager
 Handles document backup to allow restoring if there is a crash. More...
 
struct  RestorableDocument
 
struct  DocumentBackups
 Manages the list of documents that can be restored after a crash. More...
 
class  DocumentBuilder
 Methods to set-up documents. More...
 
struct  DocumentMetadata
 Document-wide metadata. More...
 
class  DocumentModel
 Model part of a document. More...
 
class  DocumentPresenter
 Interface between the DocumentModel and the DocumentView. More...
 
class  DocumentView
 The DocumentView class shows a document. More...
 
struct  LogMessage
 
class  LogMessagesItemModel
 
class  VisibilityNotifying
 
class  MessagesPanelDelegate
 
class  MessagesPanelDelegateFactory
 
class  AboutDialog
 
class  CoreApplicationPlugin
 Base actions for the score software. More...
 
struct  LoadedPluginVersions
 
struct  DocumentList
 
class  DocumentManager
 Owns the documents. More...
 
class  Presenter
 The Presenter class. More...
 
class  SettingsPresenter
 
class  SettingsView
 
class  Settings
 Application-wide user settings registering and handling. More...
 
class  ProjectSettings
 
class  SettingsDelegatePresenter
 
class  UndoPanelDelegate
 
class  UndoPanelDelegateFactory
 
class  UndoListWidget
 
class  UndoApplicationPlugin
 The UndoApplicationPlugin class. More...
 
struct  DragOverToolButton
 
class  FixedTabWidget
 
class  HelperPanelDelegate
 
class  RectSplitter
 
class  RectWidget
 
class  BottomToolbarWidget
 
class  TitleBar
 
class  View
 The main display of the application. More...
 
class  ActionGroup
 The ActionGroup class A semantic group of actions : for instance, all the actions related to audio recording, etc. This is to be used for documentation purposes, for instance on a potential keyboard shortcut widget. More...
 
class  Action
 The Action class. More...
 
struct  MetaAction
 
struct  ActionContainer
 The ActionContainer struct. More...
 
struct  ActionCondition
 The ActionCondition struct. More...
 
struct  DocumentActionCondition
 The DocumentActionCondition struct. More...
 
struct  EnableActionIfDocument
 The EnableActionIfDocument struct. More...
 
struct  FocusActionCondition
 The FocusActionCondition struct. More...
 
struct  SelectionActionCondition
 The SelectionActionCondition struct. More...
 
struct  CustomActionCondition
 The CustomActionCondition struct. More...
 
class  EnableWhenSelectionContains
 
class  EnableWhenFocusedObjectIs
 
class  EnableWhenDocumentIs
 
class  ActionManager
 The ActionManager class. More...
 
class  Menu
 Represents a menu in the software. More...
 
struct  Menus
 
class  MenuManager
 The MenuManager class. More...
 
class  Toolbar
 
class  ToolbarManager
 The ToolbarManager class. More...
 
struct  CommandKeyHash
 
struct  CommandStore
 
struct  ApplicationComponentsData
 
class  ApplicationComponents
 
struct  ApplicationContext
 Used to access all the application-wide state and structures. More...
 
struct  ApplicationServices
 
struct  GUIApplicationContext
 Specializes ApplicationContext with the QMainWindow. More...
 
class  AggregateCommand
 Allows for grouping of multiple commands in a single one. More...
 
class  Command
 The Command class. More...
 
struct  CommandData
 Utility class for the serialization and deserialization of commands. More...
 
class  CommandStackFacade
 A small abstraction layer over the score::CommandStack. More...
 
struct  Dispatcher
 
struct  Dispatcher_T
 
class  SettingsCommandDispatcher
 
class  PropertyCommand
 The PropertyCommand class. More...
 
class  PropertyCommand_T
 
struct  StaticPropertyCommand
 
class  SettingsCommandBase
 Base class for commands to be used with the Settings system. More...
 
class  SettingsCommand
 A Command class that modifies a parameter given its trait class. More...
 
class  ValidityChecker
 Implement validation checks on the document. More...
 
class  DocumentValidator
 Checks that a document is valid according to a list of checks to run. More...
 
class  ValidityCheckerList
 
struct  DocumentContext
 
struct  GLCapabilities
 
class  ArrowDialog
 
struct  DefaultControlImpl
 
struct  DefaultGraphicsKnobImpl
 
struct  RightClickImpl
 
struct  DefaultGraphicsSliderImpl
 
struct  DefaultGraphicsSpinboxImpl
 
class  GraphicsLayout
 
struct  InfiniteScroller
 
class  ItemBounder
 
class  GraphicsHBoxLayout
 
class  GraphicsVBoxLayout
 
class  GraphicsGridColumnsLayout
 
class  GraphicsGridRowsLayout
 
class  GraphicsDefaultLayout
 
class  GraphicsSplitLayout
 
class  GraphicsTabLayout
 
class  ResizeableItem
 
class  RectItem
 
class  EmptyRectItem
 
class  BackgroundItem
 
class  EmptyItem
 
class  TextItem
 
class  SimpleTextItem
 
struct  NumStringTables
 
class  QGraphicsButton
 
class  QGraphicsCheckBox
 
struct  DefaultComboImpl
 
class  QGraphicsCombo
 
class  QGraphicsEnum
 
class  QGraphicsHSVChooser
 
class  QGraphicsIntSlider
 
class  QGraphicsKnob
 
struct  QGraphicsLineEdit
 
class  QGraphicsLogKnob
 
class  QGraphicsLogSlider
 
struct  ValueAssigner
 
struct  ValueAssigner< float >
 
struct  ValueAssigner< int >
 
struct  ValueAssigner< ossia::value >
 
struct  SliderWrapper
 
struct  PaintVisitor
 
struct  SizeVisitor
 
struct  EventVisitor
 
class  QGraphicsMultiSlider
 
class  QGraphicsNoteChooser
 
class  QGraphicsPixmapButton
 
class  QGraphicsPixmapEnum
 
class  QGraphicsPixmapToggle
 
class  QGraphicsRangeSlider
 
class  QGraphicsSelectablePixmapToggle
 
class  QGraphicsDraggablePixmap
 
class  QGraphicsSlider
 
struct  QGraphicsSliderBase
 
class  QGraphicsSpinbox
 
class  QGraphicsIntSpinbox
 
class  QGraphicsTextButton
 
class  QGraphicsTimeChooser
 
class  QGraphicsToggle
 
class  QGraphicsXYChooser
 
class  QGraphicsXYSpinboxChooser
 
class  QGraphicsIntXYSpinboxChooser
 
class  QGraphicsXYZChooser
 
class  QGraphicsXYZSpinboxChooser
 
class  ZoomItem
 
class  ObjectLocker
 The ObjectLocker class. More...
 
class  LockHelper
 The LockHelper class. More...
 
class  ColorBang
 
struct  ColorRef
 A reference to a color. Used for skinning. More...
 
struct  lazy_init_t
 
class  Component
 A component adds custom data to an Entity. More...
 
struct  Components
 
class  GenericComponent
 A component that has a reference to a specific context object. More...
 
class  GenericComponentFactory
 
class  GenericComponentFactoryList
 
class  DefaultedGenericComponentFactoryList
 
class  ComponentHierarchyManager
 Manages simple hierarchies of components. More...
 
class  PolymorphicComponentHierarchyManager
 Manages polymorphic hierarchies of components. More...
 
class  EntityMapInserter< score::Entity< T >, Ordered >
 
class  Entity
 Base for complex model objects. More...
 
class  EntityList
 
class  EntityMap
 The EntityMap class. More...
 
class  EntityMapInserter
 
struct  HierarchicalMember
 
struct  HierarchicModel
 
struct  HierarchicModel< Model, Arg, Args... >
 
struct  HierarchicModel< Model, Arg >
 
class  ModelMetadata
 The ModelMetadata class. More...
 
struct  ObjectEditor
 
class  ObjectEditorList
 
struct  BrushSet
 
struct  Brush
 
class  Skin
 
struct  TreeViewExpandState
 
class  VariantBasedNode
 The VariantBasedNode class. More...
 
struct  Addon
 The Addon struct. More...
 
struct  GUIElements
 
class  ApplicationPlugin
 
class  GUIApplicationPlugin
 Used to extend the software with application-wide data. More...
 
class  DocumentDelegateFactory
 Used to provide custom document types. More...
 
class  DocumentDelegateList
 
class  DocumentDelegateModel
 
class  DocumentDelegatePresenter
 
class  DocumentDelegateView
 
class  DocumentPlugin
 Extend a document with custom data and systems. More...
 
class  DocumentPluginFactory
 Reimplement to instantiate document plug-ins. More...
 
class  DocumentPluginFactoryList
 
class  DocumentPluginFactory_T
 
class  SerializableDocumentPlugin
 Document plug-in with serializable data. More...
 
class  InterfaceBase
 Base class for plug-in interfaces. More...
 
class  InterfaceListBase
 InterfaceListBase Interface to access factories. More...
 
class  InterfaceList
 InterfaceList Default implementation of InterfaceListBase. More...
 
class  MatchingFactory
 Utility class for making a factory interface list. More...
 
class  GenericComponentFactoryImpl
 
struct  PanelStatus
 The PanelStatus struct. More...
 
class  PanelDelegate
 The PanelDelegate class. More...
 
class  PanelDelegateFactory
 Reimplement this interface to register new panels. More...
 
class  PanelDelegateFactoryList
 All the panels are registered in this interface list. More...
 
class  SettingsDelegateView
 
class  ProjectSettingsFactory
 The ProjectSettingsFactory class. More...
 
class  ProjectSettingsDelegateFactory_T
 
class  ProjectSettingsModel
 
class  CommandFactory_QtInterface
 
class  FactoryList_QtInterface
 
class  FactoryInterface_QtInterface
 
class  ApplicationPlugin_QtInterface
 
struct  Plugin
 
class  Plugin_QtInterface
 
class  SerializableInterface
 Generic serialization method for abstract classes. More...
 
class  SettingsDelegateFactory
 The SettingsDelegateFactory class. More...
 
class  SettingsDelegateFactory_T
 
class  SettingsDelegateModel
 
struct  SettingsParameterMetadata
 
struct  FocusManager
 
struct  FocusFacade
 
class  SelectionDispatcher
 The SelectionDispatcher class. More...
 
class  SelectionStack
 The SelectionStack class. More...
 
struct  any_serializer
 
struct  any_serializer_t
 
struct  StringConstants
 
struct  NumberedEvent
 
struct  NumberedWithPath_Event
 
struct  PositionedEvent
 
class  MatchedTransition
 
class  StateAwareTransition
 
struct  delete_later
 
class  MissingCommandException
 The MissingCommandException class. More...
 
struct  PathInfo
 
struct  FilePath
 
class  FileWatch
 
struct  IdGen
 
struct  random_id_generator
 Generates random identifiers for new objects. More...
 
struct  linear_id_generator
 Generates identifiers for new objects, starting from 1. More...
 
class  RecursiveWatch
 
class  dynarray_impl
 
class  dynvector_impl
 
struct  indirect_iterator
 
struct  indirect_ptr_iterator
 
struct  indirect_map_iterator
 
class  IndirectContainer
 
class  IndirectContainerWrapper
 
class  IndirectArray
 
class  IndirectMap
 
class  IndirectUnorderedMap
 
class  SubtypeVariant
 Tools to build a variant type from classes in a same hierarchy. More...
 
class  ThreadPool
 
class  TaskPool
 
class  Version
 Represents the version of a plug-in. More...
 
class  AddRemoveList
 
class  ArrowButton
 
class  ComboBox
 
struct  CommandSpinbox
 CommandSpinbox Will update a value of the model according to the spinbox. More...
 
struct  ToggleButton
 
struct  ValueSlider
 
struct  SpeedSlider
 
struct  VolumeSlider
 
struct  ValueDoubleSlider
 
struct  ValueLogDoubleSlider
 
struct  ComboSlider
 
class  DoubleSlider
 The DoubleSlider class. More...
 
struct  SpinboxWithEnter
 
struct  DoubleSpinboxWithEnter
 
class  FormWidget
 
class  IconProvider
 
class  IntSlider
 
class  FormLayout
 
class  MarginLess
 The MarginLess class. More...
 
class  PluginWindow
 
class  QuantificationWidget
 
class  TimeSignatureWidget
 
class  ReactiveLabel
 
class  SearchLineEdit
 
class  HSeparator
 
class  VSeparator
 
struct  BarSpinBox
 
struct  SecondSpinBox
 
struct  FlicksSpinBox
 
struct  TemplatedSpinBox
 The TemplatedSpinBox class. More...
 
struct  TemplatedSpinBox< int >
 
struct  TemplatedSpinBox< float >
 
struct  TemplatedSpinBox< double >
 
class  MaxRangeSpinBox
 The MaxRangeSpinBox class. More...
 
class  SpinBox
 The SpinBox class. More...
 
class  SpinBox< double >
 
class  SpinBox< float >
 
class  TimeSpinBox
 
struct  StaticPropertyCommand< Faust::FaustEffectModel::p_script >
 
struct  StaticPropertyCommand< Gfx::Filter::Model::p_program >
 
struct  StaticPropertyCommand< Gfx::GeometryFilter::Model::p_script >
 
struct  StaticPropertyCommand< Jit::BytebeatModel::p_script >
 
struct  StaticPropertyCommand< AvndJit::Model::p_script >
 
struct  StaticPropertyCommand< Jit::JitEffectModel::p_script >
 
struct  StaticPropertyCommand< JS::ProcessModel::p_script >
 
class  QGraphicsWaveformButton
 
class  FileDownloader
 
struct  PositionedEvent< Scenario::Point >
 

Typedefs

using JsonWriter = ossia::json_writer
 
using GlobalSettingsPresenter = SettingsDelegatePresenter< SettingsDelegateModel >
 
using ActionGroupKey = StringKey< ActionGroup >
 
using ActionKey = StringKey< Action >
 
using ActionConditionKey = StringKey< score::ActionCondition >
 
template<typename T1 , typename T2 >
using enable_if_base_of = std::enable_if< std::is_base_of< T1, T2 >::value, void * >
 
using FindCommandKey = std::pair< CommandGroupKey, CommandKey >
 
using MaybeDocument = const score::DocumentContext *
 
template<typename Component >
using ComponentHierarchy = ComponentHierarchyManager< Component, typename Component::model_t, typename Component::component_t >
 
template<typename Component , bool HasOwnership = true>
using PolymorphicComponentHierarchy = PolymorphicComponentHierarchyManager< Component, typename Component::model_t, typename Component::component_t, typename Component::component_factory_list_t, HasOwnership >
 
template<typename Model >
using HierarchicalComponents = HierarchicalMember< Model, score::Components, &Model::components >
 
using InterfaceKey = UuidKey< InterfaceBase >
 
using ProjectSettingsPresenter = SettingsDelegatePresenter< ProjectSettingsModel >
 
using ProjectSettingsView = SettingsDelegateView< ProjectSettingsModel >
 
using PluginKey = UuidKey< Plugin >
 
using SettingsDelegateFactoryList = InterfaceList< score::SettingsDelegateFactory >
 
template<typename T >
using sp = SettingsParameterMetadata< T >
 
using GlobalSettingsView = SettingsDelegateView< SettingsDelegateModel >
 
using uuid_t = uuids::uuid
 
using any_map = ossia::any_map
 
using any_serializer_map = score::hash_map< std::string, std::unique_ptr< any_serializer > >
 
using Press_Event = NumberedEvent< 1 >
 
using Move_Event = NumberedEvent< 2 >
 
using Release_Event = NumberedEvent< 3 >
 
using Cancel_Event = NumberedEvent< 4 >
 
using Shift_Event = NumberedEvent< 5 >
 
using Press_Transition = MatchedTransition< Press_Event >
 
using Move_Transition = MatchedTransition< Move_Event >
 
using Release_Transition = MatchedTransition< Release_Event >
 
using Cancel_Transition = MatchedTransition< Cancel_Event >
 
using ShiftTransition = MatchedTransition< Shift_Event >
 
using comparable_function = std::shared_ptr< std::function< void()> >
 
using id_generator = score::linear_id_generator
 
template<class Key , class T , class Hash = std::hash<Key>, class KeyEqual = std::equal_to<Key>, class AllocatorOrContainer = std::allocator<std::pair<Key, T>>>
using hash_map = ossia::hash_map< Key, T, Hash, KeyEqual, AllocatorOrContainer >
 

Enumerations

enum  Modifier_tagme { Click = 100 , Move = 200 , Release = 300 }
 
enum  TimeMode { Bars , Seconds , Flicks }
 

Functions

const ApplicationContextAppContext ()
 
const GUIApplicationContextGUIAppContext ()
 
const ApplicationComponentsAppComponents ()
 
void setQApplicationMetadata ()
 
template<typename RedoFun >
void loadCommandStack (const score::ApplicationComponents &components, DataStreamWriter &writer, score::CommandStack &stack, RedoFun redo_fun)
 
QString newProcessedFilePath (const QString &sourceFile, const QDir &destination)
 Obtains a new file name in the project folder to save a processed file. More...
 
Id< score::DocumentModelgetStrongId (const std::vector< score::Document * > &v)
 
ApplicationServicesAppServices () noexcept
 
QString toNumber (double v) noexcept
 
QString toNumber (int v) noexcept
 
template<typename T >
double operator* (double lhs, const ValueAssigner< T > &rhs) noexcept
 
template<typename T >
T & component (const score::Components &c)
 component Fetch a Component from Components by type More...
 
template<typename T >
T * findComponent (const score::Components &c) noexcept
 findComponent Tryies to fetch a Component from Components by type. More...
 
template<typename T >
auto id (const Path< T > &path)
 
SCORE_LIB_BASE_EXPORT QString addonArchitecture ()
 addonArchitecture More...
 
template<typename DocPlugin >
auto & addDocumentPlugin (score::Document &doc)
 
void debug_types (const InterfaceBase *orig, const InterfaceBase *repl) noexcept
 
std::vector< Plugin_QtInterface * > & staticPlugins ()
 
template<typename T , typename Model >
void setupDefaultSettings (QSettings &set, const T &tuple, Model &model)
 
score::hash_map< std::string, std::unique_ptr< any_serializer > > & anySerializers ()
 The serializers for types that go in ossia::any should fit in here.
 
template<typename Object >
auto unmarshall (const JSONReader &obj)
 
const StringConstantsStringConstant ()
 
template<typename T >
void serialize_dyn_impl (DataStream::Serializer &v, const T &t)
 
template<typename T >
void serialize_dyn_impl (JSONObject::Serializer &v, const T &t)
 
template<typename TheClass >
void serialize_dyn (const VisitorVariant &vis, const TheClass &s)
 
template<typename TheClass >
TheClass & deserialize_dyn (const VisitorVariant &vis, TheClass &s)
 
template<typename TheClass >
TheClass deserialize_dyn (const VisitorVariant &vis)
 
template<typename Functor >
auto deserialize_dyn (const VisitorVariant &vis, Functor &&fun)
 
template<typename Type , typename Object >
auto marshall (const Object &obj)
 marshall Serializes a single object More...
 
template<typename Object >
auto unmarshall (const rapidjson::Value &obj)
 
template<typename Object >
auto unmarshall (const QByteArray &arr)
 
template<typename Transition , typename SourceState , typename TargetState , typename... Args>
Transition * make_transition (SourceState source, TargetState dest, Args &&... args)
 
void setCursorPos (QPointF pos) noexcept
 
void moveCursorPos (QPointF pos) noexcept
 
QPoint globalPos (QMouseEvent *event)
 
QPointF globalPos (QWidget *viewport, QGraphicsSceneMouseEvent *event)
 
void hideCursor (bool hasCursor)
 
void showCursor ()
 
template<typename T >
void clearAndDeleteLater (T &container, delete_later< T > &storage) noexcept
 
template<typename T >
auto clearAndDeleteLater (T &container) noexcept
 
QString addUniqueSuffix (const QString &fileName)
 
QString locateFilePath (const QString &filename, const score::DocumentContext &ctx) noexcept
 
QString relativizeFilePath (const QString &filename, const score::DocumentContext &ctx) noexcept
 
QByteArray mapAsByteArray (QFile &f) noexcept
 
std::string_view mapAsStringView (QFile &f) noexcept
 
QString readFileAsQString (QFile &f) noexcept
 
QStringList list_ipv4 () noexcept
 
void for_all_files (std::string_view root, std::function< void(std::string_view)> f)
 
template<typename Map >
void optimize_hash_map (Map &map)
 
template<typename T >
indirect_iterator< T > make_indirect_iterator (const T &it) noexcept
 
template<typename T >
indirect_ptr_iterator< T > make_indirect_ptr_iterator (const T &it)
 
template<typename T >
indirect_map_iterator< T > make_indirect_map_iterator (const T &it)
 
template<typename T >
auto wrap_indirect (T &container)
 
void setCursor (Qt::CursorShape c)
 setCursor sets the cursor safely.
 
SCORE_LIB_BASE_EXPORT const QPalette & transparentPalette ()
 
int question (QWidget *parent, const QString &title, const QString &text)
 
int information (QWidget *parent, const QString &title, const QString &text)
 
int warning (QWidget *parent, const QString &title, const QString &text)
 
QImage get_image (QString str)
 
QPixmap get_pixmap (QString str)
 
void setGlobalTimeMode (TimeMode mode)
 

Variables

std::array< QString, 5 > arrow_name
 
TimeMode globalTimeMode = TimeMode::Bars
 

Function Documentation

◆ addonArchitecture()

SCORE_LIB_BASE_EXPORT QString score::addonArchitecture ( )

addonArchitecture

Returns
Architecture for the system score is compiled for.

◆ component()

template<typename T >
T& score::component ( const score::Components c)

component Fetch a Component from Components by type

Returns
The component.

The component must have a member static const constexpr bool is_unique = true in order to use this function.

This guarantees that there will be a single component of a given type in the Components.

◆ findComponent()

template<typename T >
T* score::findComponent ( const score::Components c)
noexcept

findComponent Tryies to fetch a Component from Components by type.

This works similarly to components ; instead of aborting, it returns a null pointer if the component does not exist.

See also
components

◆ locateFilePath()

SCORE_LIB_BASE_EXPORT QString score::locateFilePath ( const QString &  filename,
const score::DocumentContext ctx 
)
noexcept

Will also look where the save file is located. TODO in the future also look in a "common" library folder.

◆ marshall()

template<typename Type , typename Object >
auto score::marshall ( const Object &  obj)

marshall Serializes a single object

Parameters
objThe object to serialize.

This will create the relevant serialization datatype for Type. For instance, a QByteArray if it is DataStream and a QJSonObject if it is JSONObject

◆ newProcessedFilePath()

QString score::newProcessedFilePath ( const QString &  sourceFile,
const QDir &  destination 
)

Obtains a new file name in the project folder to save a processed file.

e.g. if the source file is /tmp/foo.wav, the output may be

/home/myself/Documents/My score project/Processed/foo-0003.wav

◆ relativizeFilePath()

SCORE_LIB_BASE_EXPORT QString score::relativizeFilePath ( const QString &  filename,
const score::DocumentContext ctx 
)
noexcept

Will try to convert an absolute path in a relative path from the document's point of view

Variable Documentation

◆ arrow_name

std::array<QString, 5> score::arrow_name
Initial value:
= {
"",
"up",
"down",
"left",
"right"
}