mikmod: remove ancient unported plugin

This hasn't been touched in 11 years, and
clearly no one's been missing it.
This commit is contained in:
Tim-Philipp Müller 2015-06-25 10:06:07 +01:00
parent 0dcd76447a
commit 8b759eb460
13 changed files with 0 additions and 1701 deletions

View file

@ -52,12 +52,6 @@ else
LIBPNG_DIR =
endif
# if USE_MIKMOD
# MIKMOD_DIR = mikmod
# else
MIKMOD_DIR =
# endif
if USE_DV1394
DV1394_DIR = raw1394
else
@ -119,7 +113,6 @@ SUBDIRS = \
$(LIBDV_DIR) \
$(LIBMNG_DIR) \
$(LIBPNG_DIR) \
$(MIKMOD_DIR) \
$(PULSE_DIR) \
$(SHOUT2_DIR) \
$(SOUP_DIR) \

View file

@ -1,11 +0,0 @@
plugin_LTLIBRARIES = libgstmikmod.la
libgstmikmod_la_SOURCES = gstmikmod.c drv_gst.c mikmod_reader.c
libgstmikmod_la_CFLAGS = $(GST_CFLAGS) $(MIKMOD_CFLAGS)
libgstmikmod_la_LIBADD = $(GST_LIBS) $(MIKMOD_LIBS)
libgstmikmod_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
libgstmikmod_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
noinst_HEADERS = gstmikmod.h
EXTRA_DIST = README

View file

@ -1,86 +0,0 @@
Hi,
This is the gstreamer MikMod plugin. It is able to play the IT, XM, S3M,
MTM, 669, STM, ULT, FAR, MED, AMF, DSM, IMF, GDM, STX, OKT and of course MOD
module formats.
Take a look to : http://mikmod.raphnet.net/
Usage : gstreamer-launch filesrc location=foo.mod ! mikmod ! osssink
or gst-player foo.mod
Properties :
musicvolume :
Volume of the module. Allowed values range from 0 to 128. The default value is 128.
pansep :
Stereo channels separation. Allowed values range from 0 (no separation, thus mono sound)
to 128 (full channel separation). The default value is 128.
reverb :
Amount of sound reverberation. Allowed values range from 0 (no reverberation) to 15
(a rough estimate for chaos...). The default value is 6.
sndfxvolume :
Volume of the sound effects. Allowed values range from 0 to 128. The default value is 128.
volume :
Overall sound volume. Allowed values range from 0 to 128. The default value is 96
interp :
This flag, if set, enables the interpolated mixers. Interpolated mixing gives better
sound but takes a bit more time than standard mixing. If the library is built with the
high quality mixer, interpolated mixing is always enabled, regardless of this flag. The
default value is false.
reverse :
This flag, if set, exchanges the left and right stereo channels. The default value is false.
surround :
This flag, if set, enables the surround mixers. Since surround mixing works only for stereo
sound, this flag has no effect if the sound playback is in mono. The default value is true.
16bit :
This flag, if set, selects 16 bit sound mode. This mode yields better sound quality, but needs
twice more mixing time. The default value is true.
hqmixer :
This flag, if set, selects the high-quality software mixer. This mode yields better sound quality,
but needs more mixing time. Of course, this flag has no effect if no DMODE_SOFT_xx flag is set.
The default value is false.
soft_music :
This flag, if set, selects software mixing of the module. The default value is true.
soft_sndfx :
This flag, if set, selects software mixing of the sound effects. The default value is true.
stereo :
This flag, if set, selects stereo sound. The default value is true.
--
Apoc
/* MikMod sound library
(c) 1998, 1999, 2000 Miodrag Vallat and others - see file AUTHORS
for complete list.
This library is free software; you can redistribute it and/or modify
it under the terms of the GNU Library 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 Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
02110-1301, USA.
*/

View file

@ -1,105 +0,0 @@
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <stdlib.h>
#include "gstmikmod.h"
static int buffer_size;
static SBYTE *audiobuffer = NULL;
extern int need_sync;
static BOOL
mikmod_IsThere (void)
{
return 1;
}
static BOOL
mikmod_Init (void)
{
buffer_size = 32768;
if (!(audiobuffer = (SBYTE *) g_malloc (buffer_size)))
return 1;
return VC_Init ();
}
static void
mikmod_Exit (void)
{
VC_Exit ();
if (audiobuffer) {
g_free (audiobuffer);
audiobuffer = NULL;
}
}
static void
mikmod_Update (void)
{
gint length;
GstBuffer *outdata;
length = VC_WriteBytes ((SBYTE *) audiobuffer, buffer_size);
outdata = gst_buffer_new ();
GST_BUFFER_DATA (outdata) = g_memdup (audiobuffer, length);
GST_BUFFER_SIZE (outdata) = length;
GST_BUFFER_TIMESTAMP (outdata) = timestamp;
if (need_sync == 1) {
/* FIXME, send a flush event or something */
need_sync = 0;
}
gst_pad_push (srcpad, GST_DATA (outdata));
}
static BOOL
mikmod_Reset (void)
{
VC_Exit ();
return VC_Init ();
}
MDRIVER drv_gst = {
NULL,
"mikmod",
"mikmod output driver v1.0",
0, 255,
#if (LIBMIKMOD_VERSION > 0x030106)
"mikmod",
NULL,
#endif
mikmod_IsThere,
VC_SampleLoad,
VC_SampleUnload,
VC_SampleSpace,
VC_SampleLength,
mikmod_Init,
mikmod_Exit,
mikmod_Reset,
VC_SetNumVoices,
VC_PlayStart,
VC_PlayStop,
mikmod_Update,
NULL,
VC_VoiceSetVolume,
VC_VoiceGetVolume,
VC_VoiceSetFrequency,
VC_VoiceGetFrequency,
VC_VoiceSetPanning,
VC_VoiceGetPanning,
VC_VoicePlay,
VC_VoiceStop,
VC_VoiceStopped,
VC_VoiceGetPosition,
VC_VoiceRealVolume
};

View file

@ -1,549 +0,0 @@
/* GStreamer
* Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library 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
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "gstmikmod.h"
#include <stdlib.h>
/* Filter signals and args */
enum
{
/* FILL ME */
LAST_SIGNAL
};
enum
{
ARG_0,
ARG_SONGNAME,
ARG_MODTYPE,
ARG_MUSICVOLUME,
ARG_PANSEP,
ARG_REVERB,
ARG_SNDFXVOLUME,
ARG_VOLUME,
ARG_INTERP,
ARG_REVERSE,
ARG_SURROUND,
ARG_HQMIXER,
ARG_SOFT_MUSIC,
ARG_SOFT_SNDFX
};
MODULE *module;
MREADER *reader;
GstPad *srcpad;
GstClockTime timestamp;
int need_sync;
static GstStaticPadTemplate mikmod_src_factory = GST_STATIC_PAD_TEMPLATE ("src",
GST_PAD_SRC,
GST_PAD_ALWAYS,
GST_STATIC_CAPS ("audio/x-raw-int, "
"endianness = (int) BYTE_ORDER, "
"signed = (boolean) TRUE, "
"width = (int) 16, "
"depth = (int) 16, "
"rate = (int) { 8000, 11025, 22050, 44100 }, "
"channels = (int) [ 1, 2 ]; "
"audio/x-raw-int, "
"endianness = (int) BYTE_ORDER, "
"signed = (boolean) FALSE, "
"width = (int) 8, "
"depth = (int) 8, "
"rate = (int) { 8000, 11025, 22050, 44100 }, "
"channels = (int) [ 1, 2 ]")
);
static GstStaticPadTemplate mikmod_sink_factory =
GST_STATIC_PAD_TEMPLATE ("sink",
GST_PAD_SINK,
GST_PAD_ALWAYS,
GST_STATIC_CAPS ("audio/x-mod")
);
static void gst_mikmod_base_init (gpointer g_class);
static void gst_mikmod_class_init (GstMikModClass * klass);
static void gst_mikmod_init (GstMikMod * filter);
static void gst_mikmod_set_property (GObject * object, guint id,
const GValue * value, GParamSpec * pspec);
static void gst_mikmod_get_property (GObject * object, guint id, GValue * value,
GParamSpec * pspec);
static GstPadLinkReturn gst_mikmod_srclink (GstPad * pad, const GstCaps * caps);
static GstCaps *gst_mikmod_srcfixate (GstPad * pad, const GstCaps * caps);
static void gst_mikmod_loop (GstElement * element);
static gboolean gst_mikmod_setup (GstMikMod * mikmod);
static GstStateChangeReturn gst_mikmod_change_state (GstElement * element,
GstStateChange transition);
static GstElementClass *parent_class = NULL;
GType
gst_mikmod_get_type (void)
{
static GType mikmod_type = 0;
if (!mikmod_type) {
static const GTypeInfo mikmod_info = {
sizeof (GstMikModClass),
gst_mikmod_base_init,
NULL,
(GClassInitFunc) gst_mikmod_class_init,
NULL,
NULL,
sizeof (GstMikMod),
0,
(GInstanceInitFunc) gst_mikmod_init,
};
mikmod_type =
g_type_register_static (GST_TYPE_ELEMENT, "GstMikmod", &mikmod_info, 0);
}
return mikmod_type;
}
static void
gst_mikmod_base_init (gpointer g_class)
{
GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
gst_element_class_add_pad_template (element_class,
gst_static_pad_template_get (&mikmod_src_factory));
gst_element_class_add_pad_template (element_class,
gst_static_pad_template_get (&mikmod_sink_factory));
gst_element_class_set_static_metadata (element_class, "MikMod audio decoder",
"Codec/Decoder/Audio",
"Module decoder based on libmikmod", "Jeremy SIMON <jsimon13@yahoo.fr>");
}
static void
gst_mikmod_class_init (GstMikModClass * klass)
{
GObjectClass *gobject_class;
GstElementClass *gstelement_class;
gobject_class = (GObjectClass *) klass;
gstelement_class = (GstElementClass *) klass;
parent_class = g_type_class_peek_parent (klass);
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_SONGNAME,
g_param_spec_string ("songname", "songname", "songname",
NULL, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_MODTYPE,
g_param_spec_string ("modtype", "modtype", "modtype",
NULL, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_MUSICVOLUME,
g_param_spec_int ("musicvolume", "musivolume", "musicvolume",
0, 128, 128, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_PANSEP,
g_param_spec_int ("pansep", "pansep", "pansep",
0, 128, 128, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_REVERB,
g_param_spec_int ("reverb", "reverb", "reverb",
0, 15, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_SNDFXVOLUME,
g_param_spec_int ("sndfxvolume", "sndfxvolume", "sndfxvolume",
0, 128, 128, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_VOLUME,
g_param_spec_int ("volume", "volume", "volume",
0, 128, 96, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_INTERP,
g_param_spec_boolean ("interp", "interp", "interp",
FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_REVERSE,
g_param_spec_boolean ("reverse", "reverse", "reverse",
FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_SURROUND,
g_param_spec_boolean ("surround", "surround", "surround",
TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_HQMIXER,
g_param_spec_boolean ("hqmixer", "hqmixer", "hqmixer",
FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_SOFT_MUSIC,
g_param_spec_boolean ("soft-music", "soft music", "soft music",
TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_SOFT_SNDFX,
g_param_spec_boolean ("soft-sndfx", "soft sndfx", "soft sndfx",
TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
gobject_class->set_property = gst_mikmod_set_property;
gobject_class->get_property = gst_mikmod_get_property;
gstelement_class->change_state = gst_mikmod_change_state;
}
static void
gst_mikmod_init (GstMikMod * filter)
{
filter->sinkpad =
gst_pad_new_from_static_template (&mikmod_sink_factory, "sink");
filter->srcpad =
gst_pad_new_from_static_template (&mikmod_src_factory, "src");
gst_element_add_pad (GST_ELEMENT (filter), filter->sinkpad);
gst_element_add_pad (GST_ELEMENT (filter), filter->srcpad);
gst_pad_set_link_function (filter->srcpad, gst_mikmod_srclink);
gst_pad_set_fixate_function (filter->srcpad, gst_mikmod_srcfixate);
gst_element_set_loop_function (GST_ELEMENT (filter), gst_mikmod_loop);
filter->Buffer = NULL;
filter->stereo = TRUE;
filter->surround = TRUE;
filter->_16bit = TRUE;
filter->soft_music = TRUE;
filter->soft_sndfx = TRUE;
filter->mixfreq = 44100;
filter->reverb = 0;
filter->pansep = 128;
filter->musicvolume = 128;
filter->volume = 96;
filter->sndfxvolume = 128;
filter->songname = NULL;
filter->modtype = NULL;
filter->initialized = FALSE;
}
static GstCaps *
gst_mikmod_srcfixate (GstPad * pad, const GstCaps * caps)
{
GstCaps *ret;
GstStructure *structure;
/* FIXME: select est caps here */
if (gst_caps_get_size (caps) > 1)
return NULL;
ret = gst_caps_copy (caps);
structure = gst_caps_get_structure (ret, 0);
if (gst_structure_fixate_field_nearest_int (structure, "channels", 2))
return ret;
if (gst_structure_fixate_field_nearest_int (structure, "rate", 44100))
return ret;
gst_caps_free (ret);
return NULL;
}
static GstPadLinkReturn
gst_mikmod_srclink (GstPad * pad, const GstCaps * caps)
{
GstMikMod *filter;
GstStructure *structure;
gint depth;
gint channels;
gboolean result;
filter = GST_MIKMOD (gst_pad_get_parent (pad));
structure = gst_caps_get_structure (caps, 0);
gst_structure_get_int (structure, "depth", &depth);
filter->_16bit = (depth == 16);
gst_structure_get_int (structure, "channels", &channels);
filter->stereo = (channels == 2);
gst_structure_get_int (structure, "rate", &filter->mixfreq);
result = gst_mikmod_setup (filter);
gst_object_unref (filter);
if (result) {
return GST_PAD_LINK_OK;
} else {
return GST_PAD_LINK_REFUSED;
}
}
static void
gst_mikmod_loop (GstElement * element)
{
GstMikMod *mikmod;
GstBuffer *buffer_in;
g_return_if_fail (element != NULL);
g_return_if_fail (GST_IS_MIKMOD (element));
mikmod = GST_MIKMOD (element);
srcpad = mikmod->srcpad;
mikmod->Buffer = NULL;
if (!mikmod->initialized) {
while ((buffer_in = GST_BUFFER (gst_pad_pull (mikmod->sinkpad)))) {
if (GST_IS_EVENT (buffer_in)) {
GstEvent *event = GST_EVENT (buffer_in);
if (GST_EVENT_TYPE (event) == GST_EVENT_EOS)
break;
} else {
if (mikmod->Buffer) {
mikmod->Buffer = gst_buffer_append (mikmod->Buffer, buffer_in);
} else {
mikmod->Buffer = buffer_in;
}
}
}
if (!GST_PAD_CAPS (mikmod->srcpad)) {
if (GST_PAD_LINK_SUCCESSFUL (gst_pad_renegotiate (mikmod->srcpad))) {
GST_ELEMENT_ERROR (mikmod, CORE, NEGOTIATION, (NULL), (NULL));
return;
}
}
MikMod_RegisterDriver (&drv_gst);
MikMod_RegisterAllLoaders ();
MikMod_Init ("");
reader = GST_READER_new (mikmod);
module = Player_LoadGeneric (reader, 64, 0);
gst_buffer_unref (mikmod->Buffer);
if (!Player_Active ())
Player_Start (module);
mikmod->initialized = TRUE;
}
if (Player_Active ()) {
timestamp = (module->sngtime / 1024.0) * GST_SECOND;
drv_gst.Update ();
} else {
gst_element_set_eos (GST_ELEMENT (mikmod));
gst_pad_push (mikmod->srcpad, GST_DATA (gst_event_new (GST_EVENT_EOS)));
}
}
static gboolean
gst_mikmod_setup (GstMikMod * mikmod)
{
md_musicvolume = mikmod->musicvolume;
md_pansep = mikmod->pansep;
md_reverb = mikmod->reverb;
md_sndfxvolume = mikmod->sndfxvolume;
md_volume = mikmod->volume;
md_mixfreq = mikmod->mixfreq;
md_mode = 0;
if (mikmod->interp)
md_mode = md_mode | DMODE_INTERP;
if (mikmod->reverse)
md_mode = md_mode | DMODE_REVERSE;
if (mikmod->surround)
md_mode = md_mode | DMODE_SURROUND;
if (mikmod->_16bit)
md_mode = md_mode | DMODE_16BITS;
if (mikmod->hqmixer)
md_mode = md_mode | DMODE_HQMIXER;
if (mikmod->soft_music)
md_mode = md_mode | DMODE_SOFT_MUSIC;
if (mikmod->soft_sndfx)
md_mode = md_mode | DMODE_SOFT_SNDFX;
if (mikmod->stereo)
md_mode = md_mode | DMODE_STEREO;
return TRUE;
}
static GstStateChangeReturn
gst_mikmod_change_state (GstElement * element, GstStateChange transition)
{
GstMikMod *mikmod;
g_return_val_if_fail (GST_IS_MIKMOD (element), GST_STATE_CHANGE_FAILURE);
mikmod = GST_MIKMOD (element);
GST_DEBUG ("state pending %d", GST_STATE_PENDING (element));
if (GST_STATE_PENDING (element) == GST_STATE_READY) {
gst_mikmod_setup (mikmod);
if (Player_Active ()) {
Player_TogglePause ();
Player_SetPosition (0);
}
mikmod->initialized = FALSE;
}
if (GST_STATE_PENDING (element) == GST_STATE_PLAYING) {
if (Player_Active () && Player_Paused ())
Player_TogglePause ();
else if (!Player_Active ())
Player_Start (module);
}
if (GST_STATE_PENDING (element) == GST_STATE_PAUSED)
if (Player_Active () && !Player_Paused ())
Player_TogglePause ();
if (GST_STATE_PENDING (element) == GST_STATE_NULL)
MikMod_Exit ();
if (GST_ELEMENT_CLASS (parent_class)->change_state)
return GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
return GST_STATE_CHANGE_SUCCESS;
}
static void
gst_mikmod_set_property (GObject * object, guint id, const GValue * value,
GParamSpec * pspec)
{
GstMikMod *filter;
g_return_if_fail (GST_IS_MIKMOD (object));
filter = GST_MIKMOD (object);
switch (id) {
case ARG_SONGNAME:
g_free (filter->songname);
filter->songname = g_strdup (g_value_get_string (value));
break;
case ARG_MODTYPE:
g_free (filter->modtype);
filter->modtype = g_strdup (g_value_get_string (value));
break;
case ARG_MUSICVOLUME:
filter->musicvolume = g_value_get_int (value);
break;
case ARG_PANSEP:
filter->pansep = g_value_get_int (value);
break;
case ARG_REVERB:
filter->reverb = g_value_get_int (value);
break;
case ARG_SNDFXVOLUME:
filter->sndfxvolume = g_value_get_int (value);
break;
case ARG_VOLUME:
filter->volume = g_value_get_int (value);
break;
case ARG_INTERP:
filter->interp = g_value_get_boolean (value);
break;
case ARG_REVERSE:
filter->reverse = g_value_get_boolean (value);
break;
case ARG_SURROUND:
filter->surround = g_value_get_boolean (value);
break;
case ARG_HQMIXER:
filter->hqmixer = g_value_get_boolean (value);
break;
case ARG_SOFT_MUSIC:
filter->soft_music = g_value_get_boolean (value);
break;
case ARG_SOFT_SNDFX:
filter->soft_sndfx = g_value_get_boolean (value);
break;
default:
break;
}
}
static void
gst_mikmod_get_property (GObject * object, guint id, GValue * value,
GParamSpec * pspec)
{
GstMikMod *filter;
g_return_if_fail (GST_IS_MIKMOD (object));
filter = GST_MIKMOD (object);
switch (id) {
case ARG_MUSICVOLUME:
g_value_set_int (value, filter->musicvolume);
break;
case ARG_PANSEP:
g_value_set_int (value, filter->pansep);
break;
case ARG_REVERB:
g_value_set_int (value, filter->reverb);
break;
case ARG_SNDFXVOLUME:
g_value_set_int (value, filter->sndfxvolume);
break;
case ARG_VOLUME:
g_value_set_int (value, filter->volume);
break;
case ARG_INTERP:
g_value_set_boolean (value, filter->interp);
break;
case ARG_REVERSE:
g_value_set_boolean (value, filter->reverse);
break;
case ARG_SURROUND:
g_value_set_boolean (value, filter->surround);
break;
case ARG_HQMIXER:
g_value_set_boolean (value, filter->hqmixer);
break;
case ARG_SOFT_MUSIC:
g_value_set_boolean (value, filter->soft_music);
break;
case ARG_SOFT_SNDFX:
g_value_set_boolean (value, filter->soft_sndfx);
break;
default:
break;
}
}
static gboolean
plugin_init (GstPlugin * plugin)
{
if (!gst_element_register (plugin, "mikmod", GST_RANK_SECONDARY,
GST_TYPE_MIKMOD))
return FALSE;
return TRUE;
}
GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
GST_VERSION_MINOR,
mikmod,
"Mikmod plugin library",
plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN)

View file

@ -1,109 +0,0 @@
/* GStreamer
* Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library 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
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
#ifndef __GST_MIKMOD_H__
#define __GST_MIKMOD_H__
#include <mikmod.h>
#include <gst/gst.h>
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#define GST_TYPE_MIKMOD \
(gst_mikmod_get_type())
#define GST_MIKMOD(obj) \
(G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_MIKMOD,GstMikMod))
#define GST_MIKMOD_CLASS(klass) \
(G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_MIKMOD,GstMikModClass))
#define GST_MIKMOD_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS((obj),GST_TYPE_MIKMOD,GstMikModClass))
#define GST_IS_MIKMOD(obj) \
(G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_MIKMOD))
#define GST_IS_MIKMOD_CLASS(klass) \
(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_MIKMOD))
struct _GstMikMod {
GstElement element;
GstPad *sinkpad, *srcpad;
GstBuffer *Buffer;
gchar *songname;
gchar *modtype;
gint musicvolume;
gint pansep;
gint reverb;
gint sndfxvolume;
gint volume;
gint mixfreq;
gint mode;
gboolean interp;
gboolean reverse;
gboolean surround;
gboolean _16bit;
gboolean hqmixer;
gboolean soft_music;
gboolean soft_sndfx;
gboolean stereo;
gboolean initialized;
};
struct _GstMikModClass {
GstElementClass parent_class;
};
typedef struct _GstMikMod GstMikMod;
typedef struct _GstMikModClass GstMikModClass;
extern MODULE *module;
extern MREADER *reader;
extern GstPad *srcpad;
extern GstClockTime timestamp;
extern int need_sync;
GType gst_mikmod_get_type(void);
/* symbols for mikmod_reader.h */
struct _GST_READER
{
MREADER core;
GstMikMod *mik;
guint64 offset;
gshort eof;
};
typedef struct _GST_READER GST_READER;
MREADER *GST_READER_new( GstMikMod *mik );
/* symbols for drv_gst.c */
extern MDRIVER drv_gst;
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __GST_MIKMOD_H__ */

View file

@ -1,115 +0,0 @@
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <unistd.h>
#include <string.h>
#include "gstmikmod.h"
extern int need_sync;
static BOOL GST_READER_Eof (MREADER * reader);
static BOOL GST_READER_Read (MREADER * reader, void *ptr, size_t size);
static int GST_READER_Get (MREADER * reader);
static BOOL GST_READER_Seek (MREADER * reader, long offset, int whence);
static long GST_READER_Tell (MREADER * reader);
static BOOL
GST_READER_Eof (MREADER * reader)
{
GST_READER *gst_reader;
gst_reader = (GST_READER *) reader;
return gst_reader->eof;
}
static BOOL
GST_READER_Read (MREADER * reader, void *ptr, size_t size)
{
GST_READER *gst_reader;
gst_reader = (GST_READER *) reader;
memcpy (ptr, GST_BUFFER_DATA (gst_reader->mik->Buffer) + gst_reader->offset,
size);
gst_reader->offset = gst_reader->offset + size;
return 1;
}
static int
GST_READER_Get (MREADER * reader)
{
GST_READER *gst_reader;
int res;
gst_reader = (GST_READER *) reader;
res = *(GST_BUFFER_DATA (gst_reader->mik->Buffer) + gst_reader->offset);
gst_reader->offset += 1;
return res;
}
static BOOL
GST_READER_Seek (MREADER * reader, long offset, int whence)
{
GST_READER *gst_reader;
gst_reader = (GST_READER *) reader;
if (whence == SEEK_SET)
gst_reader->offset = offset;
else
gst_reader->offset += offset;
return 1;
}
static long
GST_READER_Tell (MREADER * reader)
{
GST_READER *gst_reader;
gst_reader = (GST_READER *) reader;
return gst_reader->offset;
}
MREADER *
GST_READER_new (GstMikMod * mik)
{
GST_READER *gst_reader;
gst_reader = (GST_READER *) g_malloc (sizeof (GST_READER));
if (gst_reader) {
gst_reader->offset = 0;
gst_reader->eof = 0;
gst_reader->mik = mik;
gst_reader->core.Eof = &GST_READER_Eof;
gst_reader->core.Read = &GST_READER_Read;
gst_reader->core.Get = &GST_READER_Get;
gst_reader->core.Seek = &GST_READER_Seek;
gst_reader->core.Tell = &GST_READER_Tell;
}
return (MREADER *) gst_reader;
}
void
GST_READER_free (MREADER * reader)
{
if (reader)
g_free (reader);
}

View file

@ -1,239 +0,0 @@
/* GStreamer
* Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library 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
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <gst/gst.h>
#include "mikmod_types.h"
#include <string.h> /* memcmp */
#include <ctype.h> /* isdigit */
#define MODULEHEADERSIZE 0x438
gboolean
MOD_CheckType (GstBuffer * buf)
{
gchar *data;
data = GST_BUFFER_DATA (buf) + MODULEHEADERSIZE;
/* Protracker and variants */
if ((!memcmp (data, "M.K.", 4)) || (!memcmp (data, "M!K!", 4)))
return TRUE;
/* Star Tracker */
if (((!memcmp (data, "FLT", 3)) || (!memcmp (data, "EXO", 3)))
&& (isdigit (data[3])))
return TRUE;
/* Oktalyzer (Amiga) */
if (!memcmp (data, "OKTA", 4))
return TRUE;
/* Oktalyser (Atari) */
if (!memcmp (data, "CD81", 4))
return TRUE;
/* Fasttracker */
if ((!memcmp (data + 1, "CHN", 3)) && (isdigit (data[0])))
return TRUE;
/* Fasttracker or Taketracker */
if (((!memcmp (data + 2, "CH", 2)) || (!memcmp (data + 2, "CN", 2)))
&& (isdigit (data[0])) && (isdigit (data[1])))
return TRUE;
return FALSE;
}
gboolean
Mod_669_CheckType (GstBuffer * buf)
{
gchar *data;
data = GST_BUFFER_DATA (buf);
if (!memcmp (data, "if", 2) || !memcmp (data, "JN", 2))
return TRUE;
return FALSE;
}
gboolean
Amf_CheckType (GstBuffer * buf)
{
gchar *data;
data = GST_BUFFER_DATA (buf);
if (memcmp (data, "AMF", 3))
return FALSE;
data = GST_BUFFER_DATA (buf) + 3;
if (((gint) * data >= 10) && ((gint) * data <= 14))
return TRUE;
return FALSE;
}
gboolean
Dsm_CheckType (GstBuffer * buf)
{
gchar *data;
data = GST_BUFFER_DATA (buf);
if (!memcmp (data, "RIFF", 4) && !memcmp (data + 8, "DSMF", 4))
return TRUE;
return FALSE;
}
gboolean
Fam_CheckType (GstBuffer * buf)
{
gchar *data;
static const unsigned char FARSIG[4 + 3] =
{ 'F', 'A', 'R', 0xfe, 13, 10, 26 };
data = GST_BUFFER_DATA (buf);
if ((memcmp (data, FARSIG, 4)) || (memcmp (data + 44, FARSIG + 4, 3)))
return FALSE;
return 1;
}
gboolean
Gdm_CheckType (GstBuffer * buf)
{
gchar *data;
data = GST_BUFFER_DATA (buf);
if (!memcmp (data, "GDM\xfe", 4) && !memcmp (data + 71, "GMFS", 4))
return TRUE;
return FALSE;
}
gboolean
Imf_CheckType (GstBuffer * buf)
{
gchar *data;
data = GST_BUFFER_DATA (buf) + 0x3c;
if (!memcmp (data, "IM10", 4))
return TRUE;
return FALSE;
}
gboolean
It_CheckType (GstBuffer * buf)
{
gchar *data;
data = GST_BUFFER_DATA (buf);
if (!memcmp (data, "IMPM", 4))
return TRUE;
return FALSE;
}
gboolean
M15_CheckType (GstBuffer * buf)
{
/* FIXME: M15 CheckType to do */
return FALSE;
}
gboolean
Med_CheckType (GstBuffer * buf)
{
gchar *data;
data = GST_BUFFER_DATA (buf);
if ((!memcmp (data, "MMD0", 4)) || (memcmp (data, "MMD1", 4)))
return TRUE;
return FALSE;
}
gboolean
Mtm_CheckType (GstBuffer * buf)
{
gchar *data;
data = GST_BUFFER_DATA (buf);
if (!memcmp (data, "MTM", 3))
return TRUE;
return FALSE;
}
gboolean
Okt_CheckType (GstBuffer * buf)
{
gchar *data;
data = GST_BUFFER_DATA (buf);
if (!memcmp (data, "OKTSONG", 8))
return TRUE;
return FALSE;
}
gboolean
S3m_CheckType (GstBuffer * buf)
{
gchar *data;
data = GST_BUFFER_DATA (buf) + 0x2c;
if (!memcmp (data, "SCRM", 4))
return TRUE;
return FALSE;
}
gboolean
Xm_CheckType (GstBuffer * buf)
{
gchar *data;
data = GST_BUFFER_DATA (buf);
if (memcmp (data, "Extended Module: ", 17))
return FALSE;
if (data[37] == 0x1a)
return TRUE;
return FALSE;
}

View file

@ -1,44 +0,0 @@
/* GStreamer
* Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library 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
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
#ifndef __MIKMOD_TYPES_H__
#define __MIKMOD_TYPES_H__
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
gboolean MOD_CheckType (GstBuffer *buf);
gboolean Mod_669_CheckType (GstBuffer *buf);
gboolean Amf_CheckType (GstBuffer *buf);
gboolean Dsm_CheckType (GstBuffer *buf);
gboolean Fam_CheckType (GstBuffer *buf);
gboolean Gdm_CheckType (GstBuffer *buf);
gboolean Imf_CheckType (GstBuffer *buf);
gboolean It_CheckType (GstBuffer *buf);
gboolean M15_CheckType (GstBuffer *buf);
gboolean Mtm_CheckType (GstBuffer *buf);
gboolean Okt_CheckType (GstBuffer *buf);
gboolean S3m_CheckType (GstBuffer *buf);
gboolean Xm_CheckType (GstBuffer *buf);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __MIKMOD_TYPES_H__ */

View file

@ -27,7 +27,6 @@ EXTRA_DIST = \
libfame.m4 \
lib-ld.m4 \
lib-link.m4 \
libmikmod.m4 \
lib-prefix.m4 \
ogg.m4 \
progtest.m4 \

View file

@ -1,216 +0,0 @@
# Configure paths for libmikmod
#
# Derived from glib.m4 (Owen Taylor 97-11-3)
# Improved by Chris Butler
#
dnl AM_PATH_LIBMIKMOD([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
dnl Test for libmikmod, and define LIBMIKMOD_CFLAGS, LIBMIKMOD_LIBS and
dnl LIBMIKMOD_LDADD
dnl
AC_DEFUN([AM_PATH_LIBMIKMOD],
[dnl
dnl Get the cflags and libraries from the libmikmod-config script
dnl
AC_ARG_WITH(libmikmod-prefix,
AC_HELP_STRING([--with-libmikmod-prefix=PFX],
[prefix where libmikmod is installed (optional)]),
libmikmod_config_prefix="$withval", libmikmod_config_prefix="")
AC_ARG_WITH(libmikmod-exec-prefix,
AC_HELP_STRING([--with-libmikmod-exec-prefix=PFX],
[exec prefix where libmikmod is installed (optional)]),
libmikmod_config_exec_prefix="$withval", libmikmod_config_exec_prefix="")
AC_ARG_ENABLE(libmikmodtest,
AC_HELP_STRING([--disable-libmikmodtest],
[Do not try to compile and run a test libmikmod program]),
, enable_libmikmodtest=yes)
if test x$libmikmod_config_exec_prefix != x ; then
libmikmod_config_args="$libmikmod_config_args --exec-prefix=$libmikmod_config_exec_prefix"
if test x${LIBMIKMOD_CONFIG+set} != xset ; then
LIBMIKMOD_CONFIG=$libmikmod_config_exec_prefix/bin/libmikmod-config
fi
fi
if test x$libmikmod_config_prefix != x ; then
libmikmod_config_args="$libmikmod_config_args --prefix=$libmikmod_config_prefix"
if test x${LIBMIKMOD_CONFIG+set} != xset ; then
LIBMIKMOD_CONFIG=$libmikmod_config_prefix/bin/libmikmod-config
fi
fi
AC_PATH_PROG(LIBMIKMOD_CONFIG, libmikmod-config, no)
min_libmikmod_version=ifelse([$1], ,3.1.5,$1)
AC_MSG_CHECKING(for libmikmod - version >= $min_libmikmod_version)
no_libmikmod=""
if test "$LIBMIKMOD_CONFIG" = "no" ; then
no_libmikmod=yes
else
LIBMIKMOD_CFLAGS=`$LIBMIKMOD_CONFIG $libmikmod_config_args --cflags`
LIBMIKMOD_LIBS=`$LIBMIKMOD_CONFIG $libmikmod_config_args --libs`
LIBMIKMOD_LDADD=`$LIBMIKMOD_CONFIG $libmikmod_config_args --ldadd`
libmikmod_config_major_version=`$LIBMIKMOD_CONFIG $libmikmod_config_args --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\).*/\1/'`
libmikmod_config_minor_version=`$LIBMIKMOD_CONFIG $libmikmod_config_args --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\).*/\2/'`
libmikmod_config_micro_version=`$LIBMIKMOD_CONFIG $libmikmod_config_args --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\).*/\3/'`
if test "x$enable_libmikmodtest" = "xyes" ; then
ac_save_CFLAGS="$CFLAGS"
ac_save_LIBS="$LIBS"
AC_LANG_SAVE
AC_LANG_C
CFLAGS="$CFLAGS $LIBMIKMOD_CFLAGS $LIBMIKMOD_LDADD"
LIBS="$LIBMIKMOD_LIBS $LIBS"
dnl
dnl Now check if the installed libmikmod is sufficiently new. (Also sanity
dnl checks the results of libmikmod-config to some extent
dnl
rm -f conf.mikmodtest
AC_TRY_RUN([
#include <mikmod.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* my_strdup (char *str)
{
char *new_str;
if (str) {
new_str = malloc ((strlen (str) + 1) * sizeof(char));
strcpy (new_str, str);
} else
new_str = NULL;
return new_str;
}
int main()
{
int major,minor,micro;
int libmikmod_major_version,libmikmod_minor_version,libmikmod_micro_version;
char *tmp_version;
system("touch conf.mikmodtest");
/* HP/UX 9 (%@#!) writes to sscanf strings */
tmp_version = my_strdup("$min_libmikmod_version");
if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
printf("%s, bad version string\n", "$min_libmikmod_version");
exit(1);
}
libmikmod_major_version=(MikMod_GetVersion() >> 16) & 255;
libmikmod_minor_version=(MikMod_GetVersion() >> 8) & 255;
libmikmod_micro_version=(MikMod_GetVersion() ) & 255;
if ((libmikmod_major_version != $libmikmod_config_major_version) ||
(libmikmod_minor_version != $libmikmod_config_minor_version) ||
(libmikmod_micro_version != $libmikmod_config_micro_version))
{
printf("\n*** 'libmikmod-config --version' returned %d.%d.%d, but libmikmod (%d.%d.%d)\n",
$libmikmod_config_major_version, $libmikmod_config_minor_version, $libmikmod_config_micro_version,
libmikmod_major_version, libmikmod_minor_version, libmikmod_micro_version);
printf ("*** was found! If libmikmod-config was correct, then it is best\n");
printf ("*** to remove the old version of libmikmod. You may also be able to fix the error\n");
printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
printf("*** required on your system.\n");
printf("*** If libmikmod-config was wrong, set the environment variable LIBMIKMOD_CONFIG\n");
printf("*** to point to the correct copy of libmikmod-config, and remove the file config.cache\n");
printf("*** before re-running configure\n");
}
else if ((libmikmod_major_version != LIBMIKMOD_VERSION_MAJOR) ||
(libmikmod_minor_version != LIBMIKMOD_VERSION_MINOR) ||
(libmikmod_micro_version != LIBMIKMOD_REVISION))
{
printf("*** libmikmod header files (version %ld.%ld.%ld) do not match\n",
LIBMIKMOD_VERSION_MAJOR, LIBMIKMOD_VERSION_MINOR, LIBMIKMOD_REVISION);
printf("*** library (version %d.%d.%d)\n",
libmikmod_major_version, libmikmod_minor_version, libmikmod_micro_version);
}
else
{
if ((libmikmod_major_version > major) ||
((libmikmod_major_version == major) && (libmikmod_minor_version > minor)) ||
((libmikmod_major_version == major) && (libmikmod_minor_version == minor) && (libmikmod_micro_version >= micro)))
{
return 0;
}
else
{
printf("\n*** An old version of libmikmod (%d.%d.%d) was found.\n",
libmikmod_major_version, libmikmod_minor_version, libmikmod_micro_version);
printf("*** You need a version of libmikmod newer than %d.%d.%d.\n",
major, minor, micro);
printf("***\n");
printf("*** If you have already installed a sufficiently new version, this error\n");
printf("*** probably means that the wrong copy of the libmikmod-config shell script is\n");
printf("*** being found. The easiest way to fix this is to remove the old version\n");
printf("*** of libmikmod, but you can also set the LIBMIKMOD_CONFIG environment to point to the\n");
printf("*** correct copy of libmikmod-config. (In this case, you will have to\n");
printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
printf("*** so that the correct libraries are found at run-time))\n");
}
}
return 1;
}
],, no_libmikmod=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
AC_LANG_RESTORE
fi
fi
if test "x$no_libmikmod" = x ; then
AC_MSG_RESULT([yes, `$LIBMIKMOD_CONFIG --version`])
ifelse([$2], , :, [$2])
else
AC_MSG_RESULT(no)
if test "$LIBMIKMOD_CONFIG" = "no" ; then
echo "*** The libmikmod-config script installed by libmikmod could not be found"
echo "*** If libmikmod was installed in PREFIX, make sure PREFIX/bin is in"
echo "*** your path, or set the LIBMIKMOD_CONFIG environment variable to the"
echo "*** full path to libmikmod-config."
else
if test -f conf.mikmodtest ; then
:
else
echo "*** Could not run libmikmod test program, checking why..."
CFLAGS="$CFLAGS $LIBMIKMOD_CFLAGS"
LIBS="$LIBS $LIBMIKMOD_LIBS"
AC_LANG_SAVE
AC_LANG_C
AC_TRY_LINK([
#include <mikmod.h>
#include <stdio.h>
], [ return (MikMod_GetVersion()!=0); ],
[ echo "*** The test program compiled, but did not run. This usually means"
echo "*** that the run-time linker is not finding libmikmod or finding the wrong"
echo "*** version of libmikmod. If it is not finding libmikmod, you'll need to set your"
echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
echo "*** to the installed location. Also, make sure you have run ldconfig if that"
echo "*** is required on your system."
echo "***"
echo "*** If you have an old version installed, it is best to remove it, although"
echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
[ echo "*** The test program failed to compile or link. See the file config.log for the"
echo "*** exact error that occured. This usually means libmikmod was incorrectly installed"
echo "*** or that you have moved libmikmod since it was installed. In the latter case, you"
echo "*** may want to edit the libmikmod-config script: $LIBMIKMOD_CONFIG" ])
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
AC_LANG_RESTORE
fi
fi
LIBMIKMOD_CFLAGS=""
LIBMIKMOD_LIBS=""
LIBMIKMOD_LDADD=""
ifelse([$3], , :, [$3])
fi
AC_SUBST(LIBMIKMOD_CFLAGS)
AC_SUBST(LIBMIKMOD_LIBS)
AC_SUBST(LIBMIKMOD_LDADD)
rm -f conf.mikmodtest
])

View file

@ -68,7 +68,6 @@ win32/vs8/libgstjpeg.vcproj
win32/vs8/libgstladspa.vcproj
win32/vs8/libgstlevel.vcproj
win32/vs8/libgstmatroska.vcproj
win32/vs8/libgstmikmod.vcproj
win32/vs8/libgstmng.vcproj
win32/vs8/libgstmonoscope.vcproj
win32/vs8/libgstmulaw.vcproj

View file

@ -1,218 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="libgstmikmod"
ProjectGUID="{A97137F2-7036-11DB-9E40-0D7555D89593}"
RootNamespace="libgstmikmod"
Keyword="Win32Proj"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="../../../gstreamer,../../../gstreamer/libs,../../../gst-plugins-base/gst-libs,../../../gstreamer/win32/common"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;HAVE_CONFIG_H"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="libgstbase-0.10.lib libgstreamer-0.10.lib glib-2.0.lib gobject-2.0.lib"
OutputFile="$(OutDir)\$(InputName).dll"
LinkIncremental="2"
AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName);../../../gst-plugins-base/win32/vs8/$(ConfigurationName);"
GenerateDebugInformation="true"
SubSystem="2"
ImportLibrary="$(OutDir)\$(InputName).lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\debug\lib\gstreamer-0.10"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="../../../gstreamer,../../../gstreamer/libs,../../../gst-plugins-base/gst-libs,../../../gstreamer/win32/common"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;HAVE_CONFIG_H"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="libgstbase-0.10.lib libgstreamer-0.10.lib glib-2.0.lib gobject-2.0.lib"
OutputFile="$(OutDir)\$(InputName).dll"
LinkIncremental="1"
AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName);../../../gst-plugins-base/win32/vs8/$(ConfigurationName);"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ImportLibrary="$(OutDir)\$(InputName).lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\lib\gstreamer-0.10"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath="..\..\ext\mikmod\gstmikmod.c"
>
</File>
<File
RelativePath="..\..\ext\mikmod\drv_gst.c"
>
</File>
<File
RelativePath="..\..\ext\mikmod\mikmod_reader.c"
>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>