Mercurial > hg > dmlib
view editor/edtlobj.cpp @ 1896:f80b2dc77c30
Work begins on IFF ILBM/PBM image writer. It is pretty broken, some things
will not work and some things are hardcoded. The ByteRun1 compression
implementation is somewhat inefficient. Interleaved files do not work yet.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 26 Jun 2018 03:13:38 +0300 |
parents | b4992d9f72fe |
children |
line wrap: on
line source
// // Demo Editor -- Timeline state object // Wrapper class for DMTimeline data // (C) Copyright 2012 Matti 'ccr' Hämäläinen <ccr@tnsp.org> // #include "edtlobj.h" #include "dmres.h" EDTimelineObject::EDTimelineObject() { dmTimelineNew(&tl, "Demo"); scrub(); } EDTimelineObject::EDTimelineObject(EDTimelineObject *obj) { scrub(); filename = obj->filename; dmCopyTimeline(obj->tl, &tl); } EDTimelineObject::~EDTimelineObject() { dmFreeTimeline(tl); } int EDTimelineObject::load(QString mfilename) { DMResource *res; DMTimeline *tmp; int err; if ((err = dmf_open_stdio(mfilename.toUtf8().constData(), "rb", &res)) != DMERR_OK) return err; err = dmLoadTimeline(res, &tmp); dmf_close(res); if (err == DMERR_OK) { dmFreeTimeline(tl); tl = tmp; scrub(); if (tl->name != NULL) filename = QString(tl->name); else filename = mfilename; } else { dmFreeTimeline(tmp); } return err; } int EDTimelineObject::save(QString mfilename) { DMResource *res; int err; if ((err = dmf_open_stdio(mfilename.toUtf8().constData(), "wb", &res)) != DMERR_OK) return err; err = dmSaveTimeline(res, tl); scrub(); dmf_close(res); return err; } void EDTimelineObject::touch() { ntouches++; } void EDTimelineObject::scrub() { ntouches = 0; } bool EDTimelineObject::touched() { return ntouches; } void EDTimelineObject::setState(const QString &mstate) { cstate = mstate; } QString EDTimelineObject::state() const { return cstate; }