Chris@1643: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ Chris@1643: Chris@1643: /* Chris@1643: Sonic Visualiser Chris@1643: An audio file viewer and annotation editor. Chris@1643: Centre for Digital Music, Queen Mary, University of London. Chris@1643: Chris@1643: This program is free software; you can redistribute it and/or Chris@1643: modify it under the terms of the GNU General Public License as Chris@1643: published by the Free Software Foundation; either version 2 of the Chris@1643: License, or (at your option) any later version. See the file Chris@1643: COPYING included with this distribution for more information. Chris@1643: */ Chris@1643: Chris@1643: #ifndef SV_NOTE_EXPORTABLE_H Chris@1643: #define SV_NOTE_EXPORTABLE_H Chris@1643: Chris@1643: #include "NoteData.h" Chris@1643: Chris@1643: class NoteExportable Chris@1643: { Chris@1643: public: Chris@1643: /** Chris@1643: * Get all notes in the exportable object. Chris@1643: */ Chris@1643: virtual NoteList getNotes() const = 0; Chris@1643: Chris@1643: /** Chris@1643: * Get notes that are active at the given frame, i.e. that start Chris@1643: * before or at this frame and have not ended by it. Chris@1643: */ Chris@1643: virtual NoteList getNotesActiveAt(sv_frame_t frame) const = 0; Chris@1643: Chris@1643: /** Chris@1643: * Get notes that start within the range in frames defined by the Chris@1643: * given start frame and duration. Chris@1643: */ Chris@1643: virtual NoteList getNotesStartingWithin(sv_frame_t startFrame, Chris@1643: sv_frame_t duration) const = 0; Chris@1643: }; Chris@1643: Chris@1643: #endif