From e9d9569271ee962c09ab66c6babed1ca5655a6c6 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Mon, 12 Mar 2012 02:28:21 +0000 Subject: Unify event response mechanism and make it more appropriate for wire transmission. The downside being more cryptic error messages until the client side error reporting stuff gets more fancy, but the important part is that belongs client side. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4053 a436a847-0d15-0410-975c-d299462d15a1 --- include/ingen/Status.hpp | 81 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 include/ingen/Status.hpp (limited to 'include/ingen/Status.hpp') diff --git a/include/ingen/Status.hpp b/include/ingen/Status.hpp new file mode 100644 index 00000000..0e19435a --- /dev/null +++ b/include/ingen/Status.hpp @@ -0,0 +1,81 @@ +/* This file is part of Ingen. + * Copyright 2012 David Robillard + * + * Ingen 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. + * + * Ingen 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 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 St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef INGEN_STATUS_HPP +#define INGEN_STATUS_HPP + +namespace Ingen { + +enum Status { + SUCCESS, + FAILURE, + + BAD_INDEX, + BAD_OBJECT_TYPE, + BAD_VALUE_TYPE, + CLIENT_NOT_FOUND, + CREATION_FAILED, + DIRECTION_MISMATCH, + EXISTS, + INTERNAL_ERROR, + INVALID_PARENT_PATH, + INVALID_POLY, + NOT_FOUND, + NOT_MOVABLE, + NO_SPACE, + PARENT_DIFFERS, + PARENT_NOT_FOUND, + PLUGIN_NOT_FOUND, + PORT_NOT_FOUND, + TYPE_MISMATCH, + UNKNOWN_TYPE +}; + +static inline const char* +ingen_status_string(Status st) +{ + switch (st) { + case SUCCESS: return "Success"; + case FAILURE: return "Failure"; + + case BAD_INDEX: return "Invalid index"; + case BAD_OBJECT_TYPE: return "Invalid object type"; + case BAD_VALUE_TYPE: return "Invalid value type"; + case CLIENT_NOT_FOUND: return "Client not found"; + case CREATION_FAILED: return "Creation failed"; + case DIRECTION_MISMATCH: return "Direction mismatch"; + case EXISTS: return "Object exists"; + case INTERNAL_ERROR: return "Internal error" ; + case INVALID_PARENT_PATH: return "Invalid parent path"; + case INVALID_POLY: return "Invalid polyphony"; + case NOT_FOUND: return "Object not found"; + case NOT_MOVABLE: return "Object not movable"; + case NO_SPACE: return "Insufficient space"; + case PARENT_DIFFERS: return "Parent differs"; + case PARENT_NOT_FOUND: return "Parent not found"; + case PORT_NOT_FOUND: return "Port not found"; + case PLUGIN_NOT_FOUND: return "Plugin not found"; + case TYPE_MISMATCH: return "Type mismatch"; + case UNKNOWN_TYPE: return "Unknown type"; + } + + return "Unknown error"; +} + +} // namespace Ingen + +#endif // INGEN_STATUS_HPP -- cgit v1.2.1