2007-04-26 16:54:31 -04:00
|
|
|
/*
|
2019-08-02 17:26:43 -04:00
|
|
|
* Copyright (C) 2005 Karsten Wiese <fzuuzf@googlemail.com>
|
|
|
|
* Copyright (C) 2006-2017 Paul Davis <paul@linuxaudiosystems.com>
|
|
|
|
* Copyright (C) 2007-2009 David Robillard <d@drobilla.net>
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU General Public License as published by
|
|
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
|
|
* (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License along
|
|
|
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
|
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
|
|
*/
|
2007-04-26 16:54:31 -04:00
|
|
|
|
2005-09-25 14:42:24 -04:00
|
|
|
#ifndef __gtk_ardour_editing_h__
|
|
|
|
#define __gtk_ardour_editing_h__
|
|
|
|
|
|
|
|
#include <string>
|
|
|
|
#include <map>
|
2009-02-25 13:26:51 -05:00
|
|
|
#include "ardour/types.h"
|
2005-09-25 14:42:24 -04:00
|
|
|
|
|
|
|
// This involves some cpp magic. --taybin
|
|
|
|
|
2018-02-09 10:59:39 -05:00
|
|
|
#define GRIDTYPE(a) /*empty*/
|
2005-09-25 14:42:24 -04:00
|
|
|
#define SNAPMODE(a) /*empty*/
|
|
|
|
#define REGIONLISTSORTTYPE(a) /*empty*/
|
|
|
|
#define MOUSEMODE(a) /*empty*/
|
2007-08-08 15:13:36 -04:00
|
|
|
#define MIDIEDITMODE(a) /*empty*/
|
2005-09-25 14:42:24 -04:00
|
|
|
#define ZOOMFOCUS(a) /*empty*/
|
|
|
|
#define DISPLAYCONTROL(a) /*empty*/
|
2006-03-22 12:03:00 -05:00
|
|
|
#define IMPORTMODE(a) /*empty*/
|
2007-10-11 18:07:47 -04:00
|
|
|
#define IMPORTPOSITION(a)
|
|
|
|
#define IMPORTDISPOSITION(a)
|
2007-11-07 20:40:25 -05:00
|
|
|
#define EDITPOINT(a) /*empty*/
|
2008-03-17 16:54:03 -04:00
|
|
|
#define WAVEFORMSCALE(a) /*empty*/
|
|
|
|
#define WAVEFORMSHAPE(a) /*empty*/
|
2008-04-11 10:06:50 -04:00
|
|
|
#define INSERTTIMEOPT(a) /*empty*/
|
2023-04-07 17:59:55 -04:00
|
|
|
#define TEMPOEDITBEHAVIOR(a) /*empty*/
|
2023-08-18 12:37:36 -04:00
|
|
|
#define NOTENAMEDISPLAY(a) /*empty*/
|
2023-09-12 21:16:24 -04:00
|
|
|
#define MARKERCLICKBEHAVIOR(a) /*empty*/
|
2005-09-25 14:42:24 -04:00
|
|
|
|
|
|
|
namespace Editing {
|
|
|
|
|
2018-02-09 10:59:39 -05:00
|
|
|
// GRIDTYPE
|
|
|
|
#undef GRIDTYPE
|
|
|
|
#define GRIDTYPE(a) a,
|
|
|
|
enum GridType {
|
2005-09-25 14:42:24 -04:00
|
|
|
#include "editing_syms.h"
|
|
|
|
};
|
|
|
|
|
2021-11-16 13:06:13 -05:00
|
|
|
static const int DRAW_VEL_AUTO = -1;
|
|
|
|
static const int DRAW_CHAN_AUTO = -1;
|
|
|
|
static const GridType DRAW_LEN_AUTO = GridTypeNone; //special case: use the Grid's value instead of the note-length selection
|
|
|
|
|
2018-02-09 10:59:39 -05:00
|
|
|
extern const char *gridtypestrs[];
|
|
|
|
inline const char* enum2str(GridType m) {return gridtypestrs[m];}
|
|
|
|
GridType str2gridtype(const std::string &);
|
2005-09-25 14:42:24 -04:00
|
|
|
|
2018-02-09 10:59:39 -05:00
|
|
|
#undef GRIDTYPE
|
|
|
|
#define GRIDTYPE(a) /*empty*/
|
2005-09-25 14:42:24 -04:00
|
|
|
|
|
|
|
// SNAPMODE
|
|
|
|
#undef SNAPMODE
|
|
|
|
#define SNAPMODE(a) a,
|
|
|
|
enum SnapMode {
|
|
|
|
#include "editing_syms.h"
|
|
|
|
};
|
|
|
|
|
2006-11-01 12:41:28 -05:00
|
|
|
extern const char *snapmodestrs[];
|
2005-09-25 14:42:24 -04:00
|
|
|
inline const char* enum2str(SnapMode m) {return snapmodestrs[m];}
|
2005-12-22 07:23:54 -05:00
|
|
|
SnapMode str2snapmode(const std::string &);
|
2005-09-25 14:42:24 -04:00
|
|
|
|
|
|
|
#undef SNAPMODE
|
|
|
|
#define SNAPMODE(a) /*empty*/
|
|
|
|
|
|
|
|
// REGIONLISTSORTTYPE
|
|
|
|
#undef REGIONLISTSORTTYPE
|
|
|
|
#define REGIONLISTSORTTYPE(a) a,
|
|
|
|
enum RegionListSortType {
|
|
|
|
#include "editing_syms.h"
|
|
|
|
};
|
|
|
|
|
2006-11-01 12:41:28 -05:00
|
|
|
extern const char *regionlistsorttypestrs[];
|
2005-09-25 14:42:24 -04:00
|
|
|
inline const char* enum2str(RegionListSortType m) {return regionlistsorttypestrs[m];}
|
2005-12-22 07:23:54 -05:00
|
|
|
RegionListSortType str2regionlistsorttype(const std::string &);
|
2005-09-25 14:42:24 -04:00
|
|
|
|
|
|
|
#undef REGIONLISTSORTTYPE
|
|
|
|
#define REGIONLISTSORTTYPE(a) /*empty*/
|
|
|
|
|
|
|
|
// MOUSEMODE
|
|
|
|
#undef MOUSEMODE
|
|
|
|
#define MOUSEMODE(a) a,
|
|
|
|
enum MouseMode {
|
|
|
|
#include "editing_syms.h"
|
|
|
|
};
|
|
|
|
|
2006-11-01 12:41:28 -05:00
|
|
|
extern const char *mousemodestrs[];
|
2005-09-25 14:42:24 -04:00
|
|
|
inline const char* enum2str(MouseMode m) {return mousemodestrs[m];}
|
2005-12-22 07:23:54 -05:00
|
|
|
MouseMode str2mousemode(const std::string &);
|
2005-09-25 14:42:24 -04:00
|
|
|
|
|
|
|
#undef MOUSEMODE
|
|
|
|
#define MOUSEMODE(a) /*empty*/
|
|
|
|
|
2007-08-08 15:13:36 -04:00
|
|
|
// MIDIEDITMODE
|
|
|
|
#undef MIDIEDITMODE
|
|
|
|
#define MIDIEDITMODE(a) a,
|
|
|
|
enum MidiEditMode {
|
|
|
|
#include "editing_syms.h"
|
|
|
|
};
|
|
|
|
|
|
|
|
extern const char *midieditmodestrs[];
|
|
|
|
inline const char* enum2str(MidiEditMode m) {return midieditmodestrs[m];}
|
|
|
|
MidiEditMode str2midieditmode(const std::string &);
|
|
|
|
|
|
|
|
#undef MIDIEDITMODE
|
|
|
|
#define MIDIEDITMODE(a) /*empty*/
|
|
|
|
|
2005-09-25 14:42:24 -04:00
|
|
|
// ZOOMFOCUS
|
|
|
|
#undef ZOOMFOCUS
|
|
|
|
#define ZOOMFOCUS(a) a,
|
|
|
|
enum ZoomFocus {
|
|
|
|
#include "editing_syms.h"
|
|
|
|
};
|
|
|
|
|
2006-11-01 12:41:28 -05:00
|
|
|
extern const char *zoomfocusstrs[];
|
2005-09-25 14:42:24 -04:00
|
|
|
inline const char* enum2str(ZoomFocus m) {return zoomfocusstrs[m];}
|
2005-12-22 07:23:54 -05:00
|
|
|
ZoomFocus str2zoomfocus(const std::string &);
|
2005-09-25 14:42:24 -04:00
|
|
|
|
|
|
|
#undef ZOOMFOCUS
|
|
|
|
#define ZOOMFOCUS(a) /*empty*/
|
|
|
|
|
|
|
|
// DISPLAYCONTROL
|
|
|
|
#undef DISPLAYCONTROL
|
|
|
|
#define DISPLAYCONTROL(a) a,
|
|
|
|
enum DisplayControl {
|
|
|
|
#include "editing_syms.h"
|
|
|
|
};
|
|
|
|
|
2006-11-01 12:41:28 -05:00
|
|
|
extern const char *displaycontrolstrs[];
|
2005-09-25 14:42:24 -04:00
|
|
|
inline const char* enum2str(DisplayControl m) {return displaycontrolstrs[m];}
|
2005-12-22 07:23:54 -05:00
|
|
|
DisplayControl str2displaycontrol (const std::string &);
|
2005-09-25 14:42:24 -04:00
|
|
|
|
|
|
|
#undef DISPLAYCONTROL
|
|
|
|
#define DISPLAYCONTROL(a) /*empty*/
|
|
|
|
|
2007-10-11 18:07:47 -04:00
|
|
|
|
2006-03-22 12:03:00 -05:00
|
|
|
// IMPORTMODE
|
|
|
|
#undef IMPORTMODE
|
|
|
|
#define IMPORTMODE(a) a,
|
|
|
|
enum ImportMode {
|
|
|
|
#include "editing_syms.h"
|
|
|
|
};
|
|
|
|
|
|
|
|
#undef IMPORTMODE
|
|
|
|
#define IMPORTMODE(a) /*empty*/
|
|
|
|
|
2007-10-11 18:07:47 -04:00
|
|
|
// IMPORTPOSITION
|
|
|
|
#undef IMPORTPOSITION
|
|
|
|
#define IMPORTPOSITION(a) a,
|
|
|
|
enum ImportPosition {
|
|
|
|
#include "editing_syms.h"
|
|
|
|
};
|
|
|
|
|
|
|
|
#undef IMPORTPOSITION
|
|
|
|
#define IMPORTPOSITION(a) /*empty*/
|
|
|
|
|
|
|
|
// IMPORTDISPOSITION
|
|
|
|
#undef IMPORTDISPOSITION
|
|
|
|
#define IMPORTDISPOSITION(a) a,
|
|
|
|
enum ImportDisposition {
|
|
|
|
#include "editing_syms.h"
|
|
|
|
};
|
|
|
|
|
|
|
|
#undef IMPORTDISPOSITION
|
|
|
|
#define IMPORTDISPOSITION(a) /*empty*/
|
|
|
|
|
2007-11-07 20:40:25 -05:00
|
|
|
// EDITPOINT
|
|
|
|
#undef EDITPOINT
|
|
|
|
#define EDITPOINT(a) a,
|
|
|
|
enum EditPoint {
|
|
|
|
#include "editing_syms.h"
|
|
|
|
};
|
|
|
|
|
|
|
|
#undef EDITPOINT
|
|
|
|
#define EDITPOINT(a) /*empty*/
|
|
|
|
|
2008-04-11 10:06:50 -04:00
|
|
|
// INSERTTIMEOPT
|
|
|
|
#undef INSERTTIMEOPT
|
|
|
|
#define INSERTTIMEOPT(a) a,
|
|
|
|
enum InsertTimeOption {
|
|
|
|
#include "editing_syms.h"
|
|
|
|
};
|
|
|
|
|
|
|
|
#undef INSERTTIMEOPT
|
|
|
|
#define INSERTTIMEOPT(a) /*empty*/
|
|
|
|
|
2023-09-06 21:36:26 -04:00
|
|
|
#undef NOTENAMEDISPLAY
|
|
|
|
#define NOTENAMEDISPLAY(a) a,
|
|
|
|
enum NoteNameDisplay {
|
|
|
|
#include "editing_syms.h"
|
|
|
|
};
|
|
|
|
|
|
|
|
extern const char *notenamedisplaystrs[];
|
|
|
|
inline const char* enum2str(NoteNameDisplay m) {return notenamedisplaystrs[m];}
|
|
|
|
|
|
|
|
#undef NOTENAMEDISPLAY
|
|
|
|
#define NOTENAMEDISPLAY(a) /*empty*/
|
|
|
|
|
2023-09-12 21:16:24 -04:00
|
|
|
#undef MARKERCLICKBEHAVIOR
|
|
|
|
#define MARKERCLICKBEHAVIOR(a) a,
|
|
|
|
enum MarkerClickBehavior {
|
|
|
|
#include "editing_syms.h"
|
|
|
|
};
|
|
|
|
#undef MARKERCLICKBEHAVIOR
|
|
|
|
#define MARKERCLICKBEHAVIOR(a) /*empty*/
|
|
|
|
|
|
|
|
extern const char *markerclickbehaviorstrs[];
|
|
|
|
inline const char* enum2str(MarkerClickBehavior m) {return markerclickbehaviorstrs[m];}
|
|
|
|
MarkerClickBehavior str2markerclickbehavior(const std::string &);
|
|
|
|
|
2005-09-25 14:42:24 -04:00
|
|
|
/////////////////////
|
|
|
|
// These don't need their state saved. yet...
|
|
|
|
enum CutCopyOp {
|
2011-06-12 11:50:47 -04:00
|
|
|
Delete,
|
2005-09-25 14:42:24 -04:00
|
|
|
Cut,
|
|
|
|
Copy,
|
|
|
|
Clear
|
|
|
|
};
|
|
|
|
|
|
|
|
enum XFadeType {
|
|
|
|
Pre,
|
|
|
|
Post,
|
|
|
|
At
|
|
|
|
};
|
|
|
|
|
2013-10-20 17:02:56 -04:00
|
|
|
enum EditIgnoreOption {
|
|
|
|
EDIT_IGNORE_NONE,
|
|
|
|
EDIT_IGNORE_PHEAD,
|
|
|
|
EDIT_IGNORE_MOUSE,
|
|
|
|
EDIT_IGNORE_MARKER
|
|
|
|
};
|
|
|
|
|
2016-12-12 18:20:44 -05:00
|
|
|
enum ZoomAxis {
|
|
|
|
Vertical,
|
|
|
|
Horizontal,
|
|
|
|
Both
|
|
|
|
};
|
|
|
|
|
2017-02-14 10:09:32 -05:00
|
|
|
enum RegionActionTarget {
|
|
|
|
SelectedRegions = 0x1,
|
|
|
|
EnteredRegions = 0x2,
|
|
|
|
EditPointRegions = 0x4,
|
|
|
|
ListSelection = 0x8
|
|
|
|
};
|
|
|
|
|
2005-09-25 14:42:24 -04:00
|
|
|
} // namespace Editing
|
|
|
|
|
|
|
|
#endif // __gtk_ardour_editing_h__
|