Both sides previous revision
Previous revision
Next revision
|
Previous revision
Next revision
Both sides next revision
|
dev:creating_events.txt [2013/09/04 19:49] tehom Massive update & restructuring |
dev:creating_events.txt [2013/09/04 19:55] tehom Moved to its own page |
===== Saving and restoring properties ===== | ===== Saving and restoring properties ===== |
| |
This part is easy. You don't have to do anything special when you use a new property type. Rosegarden automatically writes all of an event's properties to the savefile, and automatically reads all of them when you restore. | This part is easy. You don't have to do anything special when you use a new property type. Rosegarden automatically writes all of an event's properties to the savefile, and automatically reads all of them when you restore. See [[XML_format]] |
| |
===== Adapters ===== | ===== Adapters ===== |
* One constructor that constructs it just from a reference to Event. | * One constructor that constructs it just from a reference to Event. |
* A method named getAsEvent that, given a time, returns a new Event (on the heap) corresponding to that adapter's data. | * A method named getAsEvent that, given a time, returns a new Event (on the heap) corresponding to that adapter's data. |
| |
===== XML format ===== | |
| |
Rosegarden's file format is a gzipped XML file with | |
a .rg extension. (We use zlib to read and write files.) | |
| |
The most basic XML elements are event and property. | |
Event has a type, subordering (sorry, forgot to describe | |
that, it's not terribly important, it just indicates the | |
ordering of events in a segment where the absolute times | |
are equal -- so we can display clef before key before any | |
notes at that time, etc) and duration, and then the event | |
element contains a series of property elements each of | |
which specifies a single property by name and type. Events | |
are assumed to start at the time at which the previous | |
event ended, except when overridden by a chord element | |
(within which all events start at once) or a resync | |
element (which specifies the starting time of the | |
following event, after which events continue to count from | |
there -- this is too verbose, we should change it to an | |
optional absolute time property on the event element). | |
| |
| |