Lumiera 0.pre.04
»edit your freedom«
Loading...
Searching...
No Matches
stypemanager.cpp
Go to the documentation of this file.
1/*
2 STypeManager - entry point for dealing with media stream types
3
4 Copyright (C)
5 2008, Hermann Vosseler <Ichthyostega@web.de>
6
7  **Lumiera** is free software; you can redistribute it and/or modify it
8  under the terms of the GNU General Public License as published by the
9  Free Software Foundation; either version 2 of the License, or (at your
10  option) any later version. See the file COPYING for further details.
11
12* *****************************************************************/
13
14
20#include "steam/common.hpp"
23#include "include/lifecycle.h"
24
25
26namespace steam {
27namespace control {
28
29 using lib::Symbol;
30
31 /* ======= stream type manager lifecycle ==========*/
32
33
35 : reg_{}
36 {
37 reset();
38 }
39
42
46
47
48 void
54
62 CStr ON_STREAMTYPES_RESET ("ON_STREAMTYPES_RESET");
63
64
65
66
67
68 /* ======= implementation of the public interface ========= */
69
71 StreamType const&
73 {
74 UNIMPLEMENTED ("get type just by symbolic ID (query defaults manager)");
75 }
76
77
79 StreamType const&
81 {
82 UNIMPLEMENTED ("get type just by symbolic ID (query defaults manager)");
83 }
84
85
86 StreamType const&
88 {
89 UNIMPLEMENTED ("build complete StreamType based on prototype; may include querying defaults manager");
90 }
91
92
93 StreamType const&
95 {
96 UNIMPLEMENTED ("build complete StreamType round the given implementation type");
97 }
98
99
102 {
103 UNIMPLEMENTED ("wire up implementation in compliance to a prototype and using a specific MediaImplLib. really tricky.... ");
104 }
105
106
109 {
110 UNIMPLEMENTED ("STypeManager basic functionality: wire up implementation facade (impl type) from given raw type of the library");
111 }
112
113}} // namespace steam::control
114
115
116// ==== C interface for registering setup of basic stream type configuration =======
117
118void
Access point to singletons and other kinds of dependencies designated by type.
Definition depend.hpp:281
Token or Atom with distinct identity.
Definition symbol.hpp:120
define and register a callback for a specific lifecycle event.
Definition lifecycle.h:69
static void trigger(Symbol eventLabel)
trigger lifecycle callbacks registered under the given label
Definition lifecycle.cpp:72
opaque placeholder (type erasure) for implementation specific type info.
A (more or less) concrete implementation type, wired up as a facade providing the basic set of operat...
ImplFacade const & fetchImpl(StreamType::ImplFacade::TypeTag)
static lib::Depend< STypeManager > instance
access the system-wide stream type manager instance.
std::unique_ptr< Registry > reg_
ImplFacade const & getImpl(Symbol libID, StreamType::Prototype const &protoType)
build or retrieve an implementation (facade) utilizing a specific MediaImplLib and implementing the g...
void reset()
Lifecycle: reset all type registration information to the generic pristine default state.
StreamType const & getType(Symbol sTypeID)
(re)-access a media stream type using just a symbolic ID.
const char * CStr
Definition error.hpp:42
Installing and invoking of application lifecycle event callbacks.
enable_if_c< Cond::value, T >::type enable_if
SFINAE helper to control the visibility of specialisations and overloads.
Definition meta/util.hpp:87
CStr ON_STREAMTYPES_RESET
triggered to load the generic pristine default
Steam-Layer implementation namespace root.
Basic set of definitions and includes commonly used together.
void lumiera_StreamType_registerInitFunction(void setupFun(void))
any stream type implementation, which needs to be present on the pristine default level (without any ...
Interface to the stream type system.
This is part of the implementation of the stream type manager (include).