Hi all,

First post, so firstly I should say thanks for portmidi, it seems very nice
:) I'm hoping to use portmidi along with wxwidgets in order to build
cross-platform emulations of / controllers for, an embedded project I'm
working on. This message has three parts, I guess...


Because it's cross-platform/open source, I needed it to build with GCC on
all three platforms, ie not require MSVC on windows. I've got a makefile
here that works with MinGW's GCC (including it's own libmm, no need for any
2GB downloads from microsoft), if anyone's interested? I see that it's been
requested a few times. I also fixed an error in the source (in Pm_Init()
with a rogue #else), and commented out references to the cleanup DLL. Is it
possible to gain write permissions to SVN? Or is there some other way I can
contribute these fixes?

Anyway, once that was sorted, I built a very basic wxwidgets app, linked
against the .a files from the makefile run, with a slider to send a midi
note. Works well. Stoked!



Then, I tried to take that project over to my linux box(Ubuntu Hardy,
running realtime kernel on AMD64). The app does work, and sends midi notes.
Great... But when I exit the app, it calls Pt_Stop(), which then calls
pthread_join() to stop the timer thread, and I receive SIGSEGV. From what
I've read, this should happen when the thread referred to is not a joinable
thread. I've checked the code out, and everything seemed OK, so I made a
debug build and tried out the test app (latency is the one I use as a
tester, generally). It works fine. No segfault.

I'm stumped. I'm kinda new to this, so please be gentle if there's some
obvious mistake I've made. I'd very much like to find out what the value in
pt_thread_pid is, when the GUI app is running... but I'm unsure if it's
possible to do that? ... but if you know why it segfaults in the GUI app but
not the console app, I'd be very interested to know!



On a sideline note, While I was doing some research into this, I also
noticed that in the pthread_create() call, it's possible to set the thread
to have realtime priority. Naturally that would be a good thing to have on a
midi app on linux, perhaps there is some interest in implementing that,
perhaps through a #define so that it can be enabled/disabled easily?


Sorry for such a big first post! I though this should maybe be three
messages (MinGW fixes and makefile, pthread_join segfault, and realtime on
linux) but I didn't want to seem spammy. Sorry if I've followed the wrong
rules. I'm happy to share code, I'm just not sure of the right way to do
that... It' a bit of a mess right now, but if you'd like to see it please
let me know.


Thanks in advance for any help!

stryd_one


_______________________________________________
media_api mailing list
media_api@create.ucsb.edu
http://lists.create.ucsb.edu/mailman/listinfo/media_api

Reply via email to