Mercurial > hg > dmlib
view editor/edtlobj.cpp @ 1707:a0986cfd6f9d
More consistently use DMGrowBuf in the lib64gfx APIs, and implement
"backwards" RLE decoding and encoding (optionally regards input/output).
Not tested very much yet, there may be bugs.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 05 Jun 2018 21:58:10 +0300 |
parents | 93d1050eac99 |
children | b4992d9f72fe |
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) { QByteArray fnba = mfilename.toUtf8(); DMResource *res; DMTimeline *tmp; if ((res = dmf_open_stdio(fnba.data(), "rb")) == NULL) return DMERR_FOPEN; int 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) { QByteArray fnba = mfilename.toUtf8(); DMResource *res; if ((res = dmf_open_stdio(fnba.data(), "wb")) == NULL) return DMERR_FOPEN; int 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; }