[proaudio] Failed to emerge media-sound/dino-0.2.2

[ Thread Index | Date Index | More lists.tuxfamily.org/proaudio Archives ]


Hello.

As reported here previously,  emerge dino-0.2.2 failed because of a
conflict with latest JACK API.

I wrote to the author of Dino, who kindly explained that this was due
to a recent change in JACK API (see explanation below).

Now, we have two solutions to get dino-0.2.2 working :
- replace dependency jack-audio-connection-kit-9999 with =
jack-audio-connection-kit-0.103.0
(not too useful, as dino cannot be connected to jack graph)
- integrate provided patch
(I have not been able to test, due to superficial knowledge of epatch).

Could this ebuild be modified so as to get a working Dino ?

Thanks for attention.


---------- Forwarded message ----------
From: Lars Luthman <lars.luthman@xxxxxxxxx>
Date: Jul 4, 2007 12:22 PM
Subject: Re: [Dino-list] Failed to compile Dino 0.2.2
To: dino-list@xxxxxxxxxx


On Wed, 2007-06-20 at 08:41 +0200, Jean-Baptiste Mestelan wrote:
Hello.

I have been trying to install Dino version 0.2.2 on this Gentoo box,
using portage.

Compiling Dino sequencer fails with following error message :
midibuffer.cpp: In member function `unsigned char*
Dino::MIDIBuffer::reserve(double, size_t)':
/usr/include/jack/midiport.h:112: error: too many arguments to
function `jack_midi_data_t* jack_midi_event_reserve(void*,
jack_nframes_t, size_t)'

Dino is compiled against JACK svn (revision 1050)  which
indeed has in /usr/include/jack/midiport.h :
jack_midi_event_get(jack_midi_event_t *event,
                   void              *port_buffer,
                   jack_nframes_t     event_index);


How could this conflit be solved ?
Thanks for attention.

Sorry about the late reply.

Dino 0.2.2 is written for the latest JACK release, which is 0.103.0. The
JACK API has changed in the recent SVN versions so Dino 0.2.2 will not
work with that. If there is a new JACK release before Dino 0.4 is done I
will release a 0.2.3 version adapted to the new JACK release. Until then
the attached patch might work (I have not tested it, I am using JACK
0.103.0).


--ll
? Makefile
? Makefile.in
? aclocal.m4
? autom4te.cache
? config.log
? config.status
? configure
? dino-0.2.2
? dino-0.2.2.tar.gz
? dino-0.2.2.tar.gz.sig
? jack_midi_api_fix.diff
? libtool
? pixmaps/Makefile
? pixmaps/Makefile.in
? src/Makefile
? src/Makefile.in
? src/config.hpp
? src/stamp-h1
? src/gui/.deps
? src/gui/.libs
? src/gui/Makefile
? src/gui/Makefile.in
? src/gui/dino
? src/libdinoseq/.deps
? src/libdinoseq/.libs
? src/libdinoseq/Makefile
? src/libdinoseq/Makefile.in
? src/libdinoseq/controller.lo
? src/libdinoseq/debug.lo
? src/libdinoseq/interpolatedevent.lo
? src/libdinoseq/libdinoseq.la
? src/libdinoseq/midibuffer.lo
? src/libdinoseq/note.lo
? src/libdinoseq/notecollection.lo
? src/libdinoseq/noteevent.lo
? src/libdinoseq/pattern.lo
? src/libdinoseq/patternselection.lo
? src/libdinoseq/sequencer.lo
? src/libdinoseq/song.lo
? src/libdinoseq/tempomap.lo
? src/libdinoseq/track.lo
Index: src/libdinoseq/midibuffer.cpp
===================================================================
RCS file: /sources/dino/dino/src/libdinoseq/midibuffer.cpp,v
retrieving revision 1.4.2.1
diff -u -r1.4.2.1 midibuffer.cpp
--- src/libdinoseq/midibuffer.cpp	16 May 2006 23:08:10 -0000	1.4.2.1
+++ src/libdinoseq/midibuffer.cpp	4 Jul 2007 12:20:14 -0000
@@ -55,7 +55,7 @@
     // XXX optimise this
     jack_nframes_t timestamp = jack_nframes_t((beat - m_start_beat) * 
 					      60 / (m_bpm * m_samplerate));
-    return jack_midi_event_reserve(m_buffer, timestamp, data_size, m_nframes);
+    return jack_midi_event_reserve(m_buffer, timestamp, data_size);
   }
     
   
@@ -65,7 +65,7 @@
     jack_nframes_t timestamp = jack_nframes_t((beat - m_start_beat) * 
 					      60 / (m_bpm * m_samplerate));
     return jack_midi_event_write(m_buffer, timestamp, (jack_midi_data_t*)data, 
-				 data_size, m_nframes);
+				 data_size);
   }
 
 
Index: src/libdinoseq/sequencer.cpp
===================================================================
RCS file: /sources/dino/dino/src/libdinoseq/sequencer.cpp,v
retrieving revision 1.58.2.1
diff -u -r1.58.2.1 sequencer.cpp
--- src/libdinoseq/sequencer.cpp	16 May 2006 23:08:10 -0000	1.58.2.1
+++ src/libdinoseq/sequencer.cpp	4 Jul 2007 12:20:14 -0000
@@ -334,10 +334,10 @@
 	jack_port_t* port = m_output_ports[iter->get_id()];
 	if (port) {
 	  void* port_buf = jack_port_get_buffer(port, nframes);
-	  jack_midi_clear_buffer(port_buf, nframes);
+	  jack_midi_clear_buffer(port_buf);
 	  unsigned char all_notes_off[] = { 0xB0, 123, 0 };
 	  if (!m_sent_all_off)
-	    jack_midi_event_write(port_buf, 0, all_notes_off, 3, nframes);
+	    jack_midi_event_write(port_buf, 0, all_notes_off, 3);
 	}
 	m_sent_all_off = true;
       }
@@ -361,7 +361,7 @@
       jack_port_t* port = m_output_ports[iter->get_id()];
       if (port) {
 	void* port_buf = jack_port_get_buffer(port, nframes);
-	jack_midi_clear_buffer(port_buf, nframes);
+	jack_midi_clear_buffer(port_buf);
 	MIDIBuffer buffer(port_buf, start, pos.beats_per_minute,pos.frame_rate);
 	buffer.set_period_size(nframes);
 	buffer.set_cc_resolution(m_cc_resolution * pos.beats_per_minute / 60);


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/