diff --git a/.gitignore b/.gitignore index 8ba9734d1..c5b3efe27 100644 --- a/.gitignore +++ b/.gitignore @@ -20,4 +20,5 @@ autom4te.cache semantic.cache tests/,* wiki/backups/* +doc/devel/uml/fig128309.png m4/* diff --git a/doc/devel/uml/fig142725.png b/doc/devel/uml/fig142725.png index e69ceab0e..08a0e46ef 100644 Binary files a/doc/devel/uml/fig142725.png and b/doc/devel/uml/fig142725.png differ diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am index a00b4bdc2..8374eab38 100644 --- a/src/lib/Makefile.am +++ b/src/lib/Makefile.am @@ -62,6 +62,7 @@ liblumiera_la_SOURCES = \ $(liblumiera_la_srcdir)/time.c \ $(liblumiera_la_srcdir)/time/lumitime.cpp \ $(liblumiera_la_srcdir)/time/quantiser.cpp \ + $(liblumiera_la_srcdir)/time/timecode.cpp \ $(liblumiera_la_srcdir)/tmpbuf.c \ $(liblumiera_la_srcdir)/util.cpp diff --git a/src/lib/time/formats.hpp b/src/lib/time/formats.hpp new file mode 100644 index 000000000..5136dcf64 --- /dev/null +++ b/src/lib/time/formats.hpp @@ -0,0 +1,124 @@ +/* + FORMATS.hpp - formats for displaying and specifying time + + Copyright (C) Lumiera.org + 2010, Hermann Vosseler + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + + +#ifndef LIB_TIME_FORMATS_H +#define LIB_TIME_FORMATS_H + +#include "lib/time/timevalue.hpp" + +//#include +#include + + +namespace lib { +namespace time { + + + /** + * descriptor for a time representation format (ABC). + * A time format describes how to specify time; it allows + * to format a time value and to parse a textual representation. + * @note while Format is an generic descriptor, the actual + * TCode (timecode) values are time values, which \em + * use a specific format, given as template parameter + * + * @todo WIP-WIP-WIP + */ + class Format + { + + public: + virtual ~Format(); + }; + + namespace format { + + /** + * Frame count as timecode format. + * An integral number used to count frames + * can be used as a simple from of time code. + * Indeed the Lumiera backend mostly relies on + * these frame counts. As with any timecode, the + * underlying framerate/quantisation remains implicit. + */ + class Frames + : public Format + { + + }; + + + /** + * Widely used standard media timecode format. + * A SMPTE timestamp addresses individual frames, + * by specifying time as hour-minute-second plus the + * frame number within the actual second. + */ + class Smpte + : public Format + { + + }; + + + /** + * The informal hours-minutes-seconds-millisecond timecode. + * As such, this timecode is quantisation agnostic, but usually + * it is used to address some frame or block or otherwise quantised + * entity in time. HMS-Timecode is similar to SMPTE, but uses a + * floating point milliseconds value instead of the frame count + */ + class Hms + : public Format + { + + }; + + + /** + * Simple timecode specification as fractional seconds. + * Similar to HMS, a specification of seconds is quantisation agnostic, + * but usually some implicit quantisation is used anyway, be it on actual + * data frames, audio frames, or just on some smaller time interval, e.g. + * full milliseconds. + * @note Seconds is implemented as rational number and thus uses + * decimal format, not the usual sexagesimal time format + */ + class Seconds + : public Format + { + TimeFract secs_; + }; + + + + /* ==== predefined constants for specifying the format to use ==== */ + + static const Seconds SECONDS; + static const Frames FRAMES; + static const Smpte SMPTE; + static const Hms HMS; + + +}}} // lib::time::format +#endif diff --git a/src/lib/time/lumitime.cpp b/src/lib/time/lumitime.cpp index 072165aa5..0aeacf9fb 100644 --- a/src/lib/time/lumitime.cpp +++ b/src/lib/time/lumitime.cpp @@ -56,7 +56,7 @@ namespace time { /** convenience constructor to build an * internal Lumiera Time value from the usual parts - * of an hexagesimal time specification. Arbitrary integral + * of an sexagesimal time specification. Arbitrary integral * values are acceptable and will be summed up accordingly. * The minute and hour part can be omitted. * @warning internal Lumiera time values refer to an diff --git a/src/lib/time/quantiser.hpp b/src/lib/time/quantiser.hpp index 9db7d88c2..29ab6d9b8 100644 --- a/src/lib/time/quantiser.hpp +++ b/src/lib/time/quantiser.hpp @@ -25,6 +25,7 @@ #define LIB_TIME_QUANTISER_H #include "lib/time/timevalue.hpp" +#include "lib/time/formats.hpp" //#include #include @@ -47,5 +48,24 @@ namespace time { + /** + * Simple stand-alone Quantiser implementation for debugging and test. + * This is a self-contained quantiser implementation without any implicit + * referral to the Lumiera session. It is mainly intended for simplified unit testing. + * @warning real GUI and Proc-Layer code should always prefer to build a real quantiser, + * which referres some TimeGrid definition within the session. Basically, the overall + * purpose of the time-quantisation framework is to enforce such a link to a specific + * time and quantisation scale and to prevent "wild and uncoordinated" rounding attempts. + */ + class FixedFrameQuantiser + : public Quantiser + { + + public: + FixedFrameQuantiser (TimeFract frames_per_second); + }; + + + }} // lib::time #endif diff --git a/src/lib/time/timecode.cpp b/src/lib/time/timecode.cpp new file mode 100644 index 000000000..b739f411f --- /dev/null +++ b/src/lib/time/timecode.cpp @@ -0,0 +1,44 @@ +/* + Timecode - implementation of fixed grid aligned time specifications + + Copyright (C) Lumiera.org + 2010, Hermann Vosseler + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +* *****************************************************/ + + +#include "lib/lumitime.hpp" +#include "lib/time/timecode.hpp" +#include "lib/time/timequant.hpp" +#include "lib/time/formats.hpp" + +using std::string; + + +namespace lib { +namespace time { + + + Format::~Format() { } // emit VTable here.... + + + /** */ + + + +}} // lib::time + diff --git a/src/lib/time/timecode.hpp b/src/lib/time/timecode.hpp index d4aebf8c1..54866dd7f 100644 --- a/src/lib/time/timecode.hpp +++ b/src/lib/time/timecode.hpp @@ -25,6 +25,7 @@ #define LIB_TIME_TIMECODE_H #include "lib/time/timevalue.hpp" +#include "lib/time/formats.hpp" //#include #include @@ -36,9 +37,11 @@ namespace time { /** * fixed format time specification. - * + * @param FMT the actual timecode format to use + * @see time::Format * @todo WIP-WIP-WIP */ + template class TCode { @@ -46,6 +49,26 @@ namespace time { }; + class QuTime; + + /** + * A frame counting timecode value. + * This is an hard-coded representation of + * TCode, with additional convenience + * constructors and conversions, which basically make + * FrameNr values interchangeable with integral numbers. + */ + class FrameNr + : public TCode + { + + public: + FrameNr (QuTime const& quantisedTime); + + operator long() const; + }; + + }} // lib::time #endif diff --git a/src/lib/time/timequant.hpp b/src/lib/time/timequant.hpp new file mode 100644 index 000000000..dff03e8ac --- /dev/null +++ b/src/lib/time/timequant.hpp @@ -0,0 +1,58 @@ +/* + TIMEQUANT.hpp - quantised (grid aligned) time values + + Copyright (C) Lumiera.org + 2010, Hermann Vosseler + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + + +#ifndef LIB_TIME_TIMEQUQNT_H +#define LIB_TIME_TIMEQUQNT_H + +#include "lib/time/timevalue.hpp" +#include "lib/time/quantiser.hpp" +#include "lib/time/timecode.hpp" +#include "lib/symbol.hpp" + +//#include +#include + + +namespace lib { +namespace time { + + using lib::Symbol; + + + /** + * fixed format time specification. + * + * @todo WIP-WIP-WIP + */ + class QuTime + { + + public: + QuTime (TimeValue raw, Symbol gridID); + QuTime (TimeValue raw, Quantiser const& quantisation_to_use); + }; + + + +}} // lib::time +#endif diff --git a/src/proc/asset/meta/time-grid.cpp b/src/proc/asset/meta/time-grid.cpp index f7e1e6d5e..15745ec0c 100644 --- a/src/proc/asset/meta/time-grid.cpp +++ b/src/proc/asset/meta/time-grid.cpp @@ -113,4 +113,21 @@ namespace meta { return AssetManager::instance().wrap (newGrid); } + + /* === TimeGrid shortcut builder functions === */ + + PGrid + TimeGrid::build (Symbol gridID, TimeFract frames_per_second) + { + return build (gridID,frames_per_second, Time(0)); + } + + + PGrid + TimeGrid::build (Symbol gridID, TimeFract frames_per_second, Time origin) + { + UNIMPLEMENTED ("build a trivial time grid"); + } + + }} // namespace asset::meta diff --git a/src/proc/asset/meta/time-grid.hpp b/src/proc/asset/meta/time-grid.hpp index 9c0b9ee3b..cc28e8806 100644 --- a/src/proc/asset/meta/time-grid.hpp +++ b/src/proc/asset/meta/time-grid.hpp @@ -49,12 +49,22 @@ #include "proc/asset/meta.hpp" #include "lib/time/timevalue.hpp" +#include "lib/symbol.hpp" namespace asset { namespace meta { + using lib::Symbol; + using lib::time::Time; + using lib::time::TimeValue; + using lib::time::TimeFract; + + + class TimeGrid; + typedef lumiera::P PGrid; + /** * Interface: a grid and scale for time quantisation. @@ -69,19 +79,16 @@ namespace meta { // TODO define the TimeGrid API here + /* === shortcut builder functions === */ + static PGrid build (Symbol gridID, TimeFract frames_per_second); + static PGrid build (Symbol gridID, TimeFract frames_per_second, Time origin); protected: TimeGrid (EntryID const&); }; - - typedef lumiera::P PGrid; - - using lib::time::Time; - using lib::time::TimeValue; - using lib::time::TimeFract; template<> diff --git a/tests/lib/time/time-quantisation-test.cpp b/tests/lib/time/time-quantisation-test.cpp index a770d2f78..1513ab8fa 100644 --- a/tests/lib/time/time-quantisation-test.cpp +++ b/tests/lib/time/time-quantisation-test.cpp @@ -23,7 +23,8 @@ #include "lib/test/run.hpp" #include "lib/test/test-helper.hpp" -#include "lib/time/quantiser.hpp" +#include "lib/time/timequant.hpp" +#include "proc/asset/meta/time-grid.hpp" #include "lib/util.hpp" #include @@ -33,6 +34,7 @@ using boost::lexical_cast; using util::isnil; +using util::contains; //using std::rand; using std::cout; using std::endl; @@ -44,6 +46,8 @@ namespace lib { namespace time{ namespace test{ + using asset::meta::TimeGrid; + /******************************************************** * @test verify handling of quantised time values. @@ -61,14 +65,14 @@ namespace test{ TimeValue ref (refval); CHECK (Time(0) < ref); - checkUsage (ref); + checkSimpleUsage (ref); check_theFullStory (ref); checkMultipleGrids (ref); } void - checkUsage (TimeValue org) + checkSimpleUsage (TimeValue org) { TimeGrid::build("my_simple_grid", 25); // "someone" has defined a time grid @@ -88,8 +92,8 @@ namespace test{ FixedFrameQuantiser fixQ(25); QuTime qVal (org, fixQ); - CHECK (contains (qVal.supportedFormats, format::FRAMES)); - CHECK (contains (qVal.supportedFormats, format::SMPTE)); + CHECK (contains (qVal.supportedFormats(), format::FRAMES)); + CHECK (contains (qVal.supportedFormats(), format::SMPTE)); TCode smpteTCode = qVal.formatAs(); showTimeCode (smpteTCode); diff --git a/uml/lumiera/128517 b/uml/lumiera/128517 index eef0810c5..dcd28563e 100644 --- a/uml/lumiera/128517 +++ b/uml/lumiera/128517 @@ -1,6 +1,6 @@ format 58 "CommonLib" // CommonLib - revision 22 + revision 23 modified_by 5 "hiv" // class settings //class diagram settings @@ -870,21 +870,21 @@ ${inlines} idl_decl "" explicit_switch_type "" - classrelation 206341 // - relation 195461 ---|> + classrelation 210693 // + relation 199813 ---|> a public cpp default "${type}" - classrelation_ref 206341 // - b parent class_ref 168837 // Duration + classrelation_ref 210693 // + b parent class_ref 134917 // Time end - classrelation 206469 // start () - relation 195589 ---> - a role_name "start" protected + classrelation 210821 // dur_ () + relation 199941 ---> + a role_name "dur_" multiplicity "1" protected cpp default " ${comment}${static}${mutable}${volatile}${const}${type}* ${name}${value}; " - classrelation_ref 206469 // start () - b parent class_ref 134917 // Time + classrelation_ref 210821 // dur_ () + b parent class_ref 168837 // Duration end end @@ -916,12 +916,12 @@ ${inlines} idl_decl "" explicit_switch_type "" - classrelation 206213 // - relation 195333 ---|> + classrelation 210437 // + relation 199557 ---|> a public cpp default "${type}" - classrelation_ref 206213 // - b parent class_ref 168709 // TimeValue + classrelation_ref 210437 // + b parent class_ref 172165 // Offset end end @@ -1034,6 +1034,14 @@ ${inlines} python_decl "" idl_decl "" end + + classrelation 210949 // + relation 200069 ---|> + a public + cpp default "${type}" + classrelation_ref 210949 // + b parent class_ref 137093 // Meta + end end class 170373 "TimeVar" @@ -1183,6 +1191,119 @@ ${inlines} b parent class_ref 169221 // TimeGrid end end + + class 172165 "Offset" + visibility package + cpp_decl "${comment}${template}class ${name}${inherit} + { +${members} }; +${inlines} +" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + + classrelation 210565 // + relation 199685 ---|> + a public + cpp default "${type}" + classrelation_ref 210565 // + b parent class_ref 168709 // TimeValue + end + end + + class 172293 "Frames" + visibility package + cpp_decl "${comment}${template}class ${name}${inherit} + { +${members} }; +${inlines} +" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + + classrelation 211077 // + relation 200197 ---|> + a public + cpp default "${type}" + classrelation_ref 211077 // + b parent class_ref 170757 // Format + end + end + + class 172421 "Smpte" + visibility package + cpp_decl "${comment}${template}class ${name}${inherit} + { +${members} }; +${inlines} +" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + + classrelation 211205 // + relation 200325 ---|> + a public + cpp default "${type}" + classrelation_ref 211205 // + b parent class_ref 170757 // Format + end + end + + class 172549 "Hms" + visibility package + cpp_decl "${comment}${template}class ${name}${inherit} + { +${members} }; +${inlines} +" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + + classrelation 211333 // + relation 200453 ---|> + a public + cpp default "${type}" + classrelation_ref 211333 // + b parent class_ref 170757 // Format + end + end + + class 172677 "SmpteTC" + visibility package + nactuals 1 + actual class class_ref 170629 // TCode + rank 0 explicit_value "" + cpp_decl "${comment}${template}class ${name}${inherit} + { +${members} }; +${inlines} +" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + + classrelation 211461 // + relation 200581 ---|> + a public + cpp default "${type}" + classrelation_ref 211461 // + b parent class_ref 170629 // TCode + end + end end package_ref 131077 // ConfigQuery diff --git a/uml/lumiera/142725.diagram b/uml/lumiera/142725.diagram index c38a9266c..70a003dcd 100644 --- a/uml/lumiera/142725.diagram +++ b/uml/lumiera/142725.diagram @@ -6,7 +6,7 @@ classcanvas 128005 class_ref 134917 // Time end classcanvas 128133 class_ref 168581 // TimeSpan draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default show_stereotype_properties default - xyz 38 218 2000 + xyz 110 267 2000 end classcanvas 128261 class_ref 168709 // TimeValue draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default show_stereotype_properties default @@ -14,19 +14,19 @@ classcanvas 128261 class_ref 168709 // TimeValue end classcanvas 128389 class_ref 168837 // Duration draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default show_stereotype_properties default - xyz 42 118 2000 + xyz 42 182 2000 end classcanvas 129669 class_ref 168965 // QuTime draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default show_stereotype_properties default - xyz 245 324 2000 + xyz 245 361 2000 end classcanvas 130181 class_ref 169093 // Quantiser draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default show_stereotype_properties default - xyz 393 324 2000 + xyz 393 361 2000 end classcanvas 130565 class_ref 169221 // TimeGrid draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default show_stereotype_properties default - xyz 508 324 2000 + xyz 508 361 2000 end classcanvas 130949 class_ref 170373 // TimeVar draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default show_stereotype_properties default @@ -34,23 +34,49 @@ classcanvas 130949 class_ref 170373 // TimeVar end classcanvas 131589 class_ref 170501 // QuTimeSpan draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default show_stereotype_properties default - xyz 103 324 2000 + xyz 103 361 2000 end classcanvas 131973 class_ref 170629 // TCode draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default show_stereotype_properties default - xyz 248 413 2000 + xyz 248 450 2000 end classcanvas 132101 class_ref 170757 // Format draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default show_stereotype_properties default - xyz 393 397 2000 + xyz 393 434 2000 end classcanvas 132997 class_ref 170885 // FrameNr draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default show_stereotype_properties default - xyz 238 496 2000 + xyz 243 545 2000 end classcanvas 133253 class_ref 171013 // CompoundGrid draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default show_stereotype_properties default - xyz 480 439 2000 + xyz 480 476 2000 +end +classcanvas 133509 class_ref 172165 // Offset + draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default show_stereotype_properties default + xyz 46 118 2000 +end +classcanvas 135045 class_ref 137093 // Meta + draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default show_stereotype_properties default + xyz 514 237 2000 +end +note 135429 "Asset System" + xyzwh 504 197 2000 66 47 +classcanvas 135557 class_ref 172293 // Frames + draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default show_stereotype_properties default + xyz 392 507 1995 +end +classcanvas 135685 class_ref 172421 // Smpte + draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default show_stereotype_properties default + xyz 446 533 2010 +end +classcanvas 136069 class_ref 172549 // Hms + draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default show_stereotype_properties default + xyz 421 523 2005 +end +classcanvas 136325 class_ref 172677 // SmpteTC + draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default show_stereotype_properties default + xyz 308 546 2000 end relationcanvas 128517 relation_ref 195205 // geometry VHV unfixed @@ -60,31 +86,16 @@ relationcanvas 128517 relation_ref 195205 // no_role_a no_role_b no_multiplicity_a no_multiplicity_b end -relationcanvas 128901 relation_ref 195333 // - from ref 128389 z 1999 to ref 128261 - no_role_a no_role_b - no_multiplicity_a no_multiplicity_b -end -relationcanvas 129285 relation_ref 195461 // - from ref 128133 z 1999 to ref 128389 - no_role_a no_role_b - no_multiplicity_a no_multiplicity_b -end -relationcanvas 129413 relation_ref 195589 // - from ref 128133 z 1999 to ref 128005 - role_a_pos 111 214 3000 no_role_b - no_multiplicity_a no_multiplicity_b -end relationcanvas 130437 relation_ref 195973 // - from ref 129669 z 1999 stereotype "<>" xyz 309 330 3000 to ref 130181 + from ref 129669 z 1999 stereotype "<>" xyz 309 367 3000 to ref 130181 no_role_a no_role_b - multiplicity_a_pos 376 349 3000 multiplicity_b_pos 305 349 3000 + multiplicity_a_pos 376 386 3000 multiplicity_b_pos 305 386 3000 end relationcanvas 130693 relation_ref 196101 // decenter_end 353 - from ref 130181 z 1999 stereotype "<>" xyz 457 333 3000 to ref 130565 + from ref 130181 z 1999 stereotype "<>" xyz 457 370 3000 to ref 130565 no_role_a no_role_b - multiplicity_a_pos 491 352 3000 no_multiplicity_b + multiplicity_a_pos 491 389 3000 no_multiplicity_b end relationcanvas 130821 relation_ref 197253 // from ref 129669 z 1999 to ref 128005 @@ -101,34 +112,32 @@ relationcanvas 131077 relation_ref 197381 // end relationcanvas 131461 relation_ref 197509 // from ref 130949 z 1999 to ref 128005 - role_a_pos 175 124 3000 no_role_b - multiplicity_a_pos 230 140 3000 multiplicity_b_pos 176 143 3000 + role_a_pos 225 120 3000 no_role_b + multiplicity_a_pos 232 143 3000 multiplicity_b_pos 176 143 3000 end relationcanvas 131717 relation_ref 197637 // - from ref 131589 z 1999 to point 65 290 - line 131845 z 1999 to ref 128133 + from ref 131589 z 1999 to ref 128133 no_role_a no_role_b no_multiplicity_a no_multiplicity_b end relationcanvas 132485 relation_ref 197893 // - from ref 131973 z 1999 to point 290 413 + from ref 131973 z 1999 to point 290 450 line 132869 z 1999 to ref 132101 no_role_a no_role_b no_multiplicity_a no_multiplicity_b end relationcanvas 132613 relation_ref 198021 // - from ref 129669 z 1999 stereotype "<>" xyz 275 378 3000 to ref 131973 + from ref 129669 z 1999 stereotype "<>" xyz 275 415 3000 to ref 131973 no_role_a no_role_b no_multiplicity_a no_multiplicity_b end relationcanvas 132741 relation_ref 198149 // decenter_end 595 - from ref 130181 z 1999 stereotype "<>" xyz 360 377 3000 to ref 132101 + from ref 130181 z 1999 stereotype "<>" xyz 360 414 3000 to ref 132101 no_role_a no_role_b no_multiplicity_a no_multiplicity_b end relationcanvas 133125 relation_ref 198277 // - decenter_begin 581 from ref 132997 z 1999 to ref 131973 no_role_a no_role_b no_multiplicity_a no_multiplicity_b @@ -139,4 +148,56 @@ relationcanvas 133381 relation_ref 198405 // no_role_a no_role_b no_multiplicity_a no_multiplicity_b end +relationcanvas 133637 relation_ref 199557 // + from ref 128389 z 1999 to ref 133509 + no_role_a no_role_b + no_multiplicity_a no_multiplicity_b +end +relationcanvas 133765 relation_ref 199685 // + from ref 133509 z 1999 to ref 128261 + no_role_a no_role_b + no_multiplicity_a no_multiplicity_b +end +relationcanvas 134277 relation_ref 199813 // + from ref 128133 z 1999 to point 137 248 + line 134533 z 1999 to point 268 194 + line 134405 z 1999 to ref 128005 + no_role_a no_role_b + no_multiplicity_a no_multiplicity_b +end +relationcanvas 134661 relation_ref 199941 // + geometry VHr + from ref 128133 z 1999 to point 66 284 + line 134789 z 1999 to ref 128389 + role_a_pos 75 269 3000 no_role_b + multiplicity_a_pos 52 226 3000 no_multiplicity_b +end +relationcanvas 135301 relation_ref 200069 // + from ref 130565 z 1999 to ref 135045 + no_role_a no_role_b + no_multiplicity_a no_multiplicity_b +end +relationcanvas 135813 relation_ref 200197 // + from ref 135557 z 1994 to ref 132101 + no_role_a no_role_b + no_multiplicity_a no_multiplicity_b +end +relationcanvas 135941 relation_ref 200325 // + from ref 135685 z 1999 to ref 132101 + no_role_a no_role_b + no_multiplicity_a no_multiplicity_b +end +relationcanvas 136197 relation_ref 200453 // + from ref 136069 z 1999 to ref 132101 + no_role_a no_role_b + no_multiplicity_a no_multiplicity_b +end +relationcanvas 136453 relation_ref 200581 // + geometry VHV + from ref 136325 z 1999 to point 334 522 + line 136581 z 1999 to point 268 522 + line 136709 z 1999 to ref 131973 + no_role_a no_role_b + no_multiplicity_a no_multiplicity_b +end end diff --git a/uml/lumiera/lumiera.prj b/uml/lumiera/lumiera.prj index d6e97d779..1380666d0 100644 --- a/uml/lumiera/lumiera.prj +++ b/uml/lumiera/lumiera.prj @@ -1,6 +1,6 @@ format 58 "lumiera" - revision 66 + revision 67 modified_by 5 "hiv" cpp_root_dir "../../src/"