Subject: [linux-audio-dev] non-destructive editing
From: Paul Barton-Davis (pbd_AT_Op.Net)
Date: pe helmi 11 2000 - 10:49:43 EST
thanks to eli brandt, i spent some time yesterday implementing a C++
version of the "piece table" approach described in Crowley's survey of
text editing methods. this is a true "edit list" approach, in which
the original data is never modified, and only a list of
pointers+lengths are used to describe the current state of the data.
it feels very exciting to be able to edit (insert/delete/replace) a
700MB file in arbitrary ways without a single copy of any part of it,
as well as have an "infinite" undo/redo list. all of this comes with
the cost of creating/deleting STL lists. not the cheapest list
implementation in town, but a tiny fraction of what would be involved
in a non-edit-list approach.
since the class is written as a template, it can be used for editing
almost anything that fits into the idea of a "sequence of
<some-type>". i have tried it so far with both sequences of unsigned
char *, and unsigned int.
although i am supposed to be working on quasimodo again, i will spend
some time this weekend working on finishing and improving the class
design/implementation and seeing what can be done with it in a
proto-app.
--p
This archive was generated by hypermail 2b28 : pe maalis 10 2000 - 07:23:27 EST