diff src/amidi-plug/i_backend.h @ 12:3da1b8942b8b trunk

[svn] - remove src/Input src/Output src/Effect src/General src/Visualization src/Container
author nenolod
date Mon, 18 Sep 2006 03:14:20 -0700
parents src/Input/amidi-plug/i_backend.h@13389e613d67
children e1c6b223431e
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/amidi-plug/i_backend.h	Mon Sep 18 03:14:20 2006 -0700
@@ -0,0 +1,82 @@
+/*
+*
+* Author: Giacomo Lozito <james@develia.org>, (C) 2005-2006
+*
+* 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
+*
+*/
+
+#ifndef _I_BACKEND_H
+#define _I_BACKEND_H 1
+
+#include <gmodule.h>
+#include "i_midievent.h"
+#include "i_common.h"
+
+
+typedef struct
+{
+  gchar * desc;
+  gchar * filename;
+  gchar * longname;
+  gchar * name;
+  gint ppos;
+}
+amidiplug_sequencer_backend_name_t;
+
+
+typedef struct
+{
+  gint id;
+  GModule * gmodule;
+  gchar * name;
+  gint (*init)( void );
+  gint (*cleanup)( void );
+  gint (*audio_info_get)( gint * , gint * , gint * );
+  gint (*audio_volume_get)( gint * , gint * );
+  gint (*audio_volume_set)( gint , gint );
+  gint (*seq_start)( gchar * );
+  gint (*seq_stop)( void );
+  gint (*seq_on)( void );
+  gint (*seq_off)( void );
+  gint (*seq_queue_tempo)( gint , gint );
+  gint (*seq_queue_start)( void );
+  gint (*seq_event_init)( void );
+  gint (*seq_event_noteon)( midievent_t * );
+  gint (*seq_event_noteoff)( midievent_t * );
+  gint (*seq_event_keypress)( midievent_t * );
+  gint (*seq_event_controller)( midievent_t * );
+  gint (*seq_event_pgmchange)( midievent_t * );
+  gint (*seq_event_chanpress)( midievent_t * );
+  gint (*seq_event_pitchbend)( midievent_t * );
+  gint (*seq_event_sysex)( midievent_t * );
+  gint (*seq_event_tempo)( midievent_t * );
+  gint (*seq_event_other)( midievent_t * );
+  gint (*seq_output)( gpointer * , gint * );
+  gint (*seq_output_shut)( guint , gint );
+  gint (*seq_get_port_count)( void );
+  gboolean autonomous_audio;
+}
+amidiplug_sequencer_backend_t;
+
+extern amidiplug_sequencer_backend_t backend;
+
+
+GSList * i_backend_list_lookup( void );
+void i_backend_list_free( GSList * );
+gint i_backend_load( gchar * );
+gint i_backend_unload( void );
+
+#endif /* !_I_BACKEND_H */