Mercurial > audlegacy-plugins
view src/amidi-plug/amidi-plug.h @ 3100:62adf7fe5a6f
vfstrace: add to build
author | William Pitcock <nenolod@atheme.org> |
---|---|
date | Thu, 30 Apr 2009 09:10:41 -0500 |
parents | 3134a0987162 |
children |
line wrap: on
line source
/* * * 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_AMIDIPLUG_H #define _I_AMIDIPLUG_H 1 #define AMIDIPLUG_STOP 0 #define AMIDIPLUG_PLAY 1 #define AMIDIPLUG_PAUSE 2 #define AMIDIPLUG_SEEK 3 #define AMIDIPLUG_ERR 4 #include "i_common.h" #include <audlegacy/plugin.h> #include <audlegacy/output.h> #include <audlegacy/auddrct.h> #include <pthread.h> #include "i_vfslayer.h" #include "i_backend.h" #include "i_configure.h" #include "i_midi.h" #include "i_fileinfo.h" #include "i_utils.h" static GThread * amidiplug_play_thread = NULL; static GThread * amidiplug_audio_thread = NULL; static GMutex * amidiplug_gettime_mutex = NULL; static GMutex * amidiplug_playing_mutex = NULL; static GCond * amidiplug_pause_cond = NULL; static GCond * amidiplug_seekonpause_cond = NULL; gint amidiplug_playing_status = AMIDIPLUG_STOP; midifile_t midifile; amidiplug_sequencer_backend_t backend; amidiplug_cfg_ap_t amidiplug_cfg_ap = { NULL, /* ap_seq_backend */ 0, /* ap_opts_transpose_value */ 0, /* ap_opts_drumshift_value */ 0, /* ap_opts_length_precalc */ 0, /* ap_opts_comments_extract */ 0 /* ap_opts_lyrics_extract */ }; gchar *amidiplug_vfs_extensions[] = { "mid" , "midi" , "rmi" , "rmid" , NULL }; gpointer amidiplug_play_loop( gpointer ); gpointer amidiplug_audio_loop( gpointer ); void amidiplug_skipto( gint ); static void amidiplug_init( void ); static void amidiplug_cleanup( void ); static void amidiplug_aboutbox( void ); static void amidiplug_configure( void ); static gint amidiplug_is_our_file( gchar * ); static gint amidiplug_is_our_file_from_vfs( gchar * , VFSFile * ); static void amidiplug_play( InputPlayback * ); static void amidiplug_stop( InputPlayback * ); static void amidiplug_pause( InputPlayback *, gshort ); static void amidiplug_seek( InputPlayback *, gint ); static gint amidiplug_get_time( InputPlayback * ); static gint amidiplug_get_volume( gint * , gint * ); static gint amidiplug_set_volume( gint , gint ); static void amidiplug_get_song_info( gchar * , gchar ** , gint * ); static void amidiplug_file_info_box( gchar * ); InputPlugin amidiplug_ip = { .description = "AMIDI-Plug " AMIDIPLUG_VERSION " (MIDI Player)", /* description */ .init = amidiplug_init, /* init */ .about = amidiplug_aboutbox, /* aboutbox */ .configure = amidiplug_configure, /* configure */ .is_our_file = amidiplug_is_our_file, /* is_our_file */ .play_file = amidiplug_play, /* play_file */ .stop = amidiplug_stop, /* stop */ .pause = amidiplug_pause, /* pause */ .seek = amidiplug_seek, /* seek */ .get_time = amidiplug_get_time, /* get_time */ .get_volume = amidiplug_get_volume, /* get_volume */ .set_volume = amidiplug_set_volume, /* set_volume */ .cleanup = amidiplug_cleanup, /* cleanup */ .get_song_info = amidiplug_get_song_info, /* get_song_info */ .file_info_box = amidiplug_file_info_box, /* file_info_box */ .is_our_file_from_vfs = amidiplug_is_our_file_from_vfs, /* is_our_file_from_vfs */ .vfs_extensions = amidiplug_vfs_extensions /* aud_vfs_extensions */ }; #endif /* !_I_AMIDIPLUG_H */