mapleman's ramblings

Tue, 16 Aug 2005
Free Microsoft SQL Server 2005 Express Edition

Get your free Microsoft SQL Server while its hot!. Another alternative for small websites.

SQL Server Express is an ideal choice for independent software vendors (ISVs), server users, non-professional developers, Web application developers, Web site hosters, and hobbyists building client applications."

URL: Microsoft SQL Server Express 2005

posted at: 00:38 | path: /windows

Sat, 13 Aug 2005
Audio Player DLL

Well this project involves a lot of things that definitely are entertaining. It started as a Audio Playing DLL. Vague? You bet. Anyway, this DLL is nothing more than an MP3 player or was. I started writing and got more excited everytime and eventually I decided to make it compatible with XPCOM, and use it to play audio through mozilla. I actually wrote that piece of code and its stashed somewhere!

Anyway, it was becoming more like a kludge than a library. So I decided to rewrite it entirely. I separated the code a lot in order for it to become sort of modular. Now you can actually play OGG's aswell. Can add any other type of sound aslong as you rewrite the 5 routines required.
Here is how it currently works:

#include "AudioDecoderEngine.h"
#include "MP3Library.h"
#include <windows.h>
#include <stdio.h>
#include <time.h> /* This callback only works on MP3s */ void callback(void * data, status ourStatus, void * user_data) { pfData ourData = (pfData)data; pmp3data innerData = (pmp3data)ourData->extraFileData; static int calls = 0; if (calls++ < 1 && ourStatus != STATUS_CLOSING) fprintf(stdout, "Layer[%s] Mode[%s] Emphasis[%s]\n\r", MP3Layer[innerData->layer], MP3Mode[innerData->mode], MP3Emphasis[innerData->emphasis]); switch(ourStatus) { case STATUS_CLOSING: break; case STATUS_OPENING: break; case STATUS_PLAYING: fprintf(stdout,"%d%%\r", (ourData->currentFrame*100) / ourData->totalFrames ); break; case STATUS_DONE: fprintf(stdout, "done playing\n\r"); calls = 0; break; } } int main(int argc, char **argv) { PAudioLib audio =
     AUDIO_INIT("D:\\Dream Theater - Another Day.mp3", NULL, callback) int i; AUDIO_LOAD(audio) AUDIO_PLAY(audio, 0) while(audio->playing) { Sleep(2000); } AUDIO_STOP(audio) AUDIO_CLOSE(audio) return 0; }

I am still working on it. I assume its thread safe but I really haven't checked that thoroughly. Feel free to download and try it out.

IUnknown

posted at: 03:17 | path: /windows