[Scummvm-cvs-logs] CVS: scummvm/sound mididrv.cpp,1.22,1.23

Max Horn fingolfin at users.sourceforge.net
Tue Nov 12 17:04:17 CET 2002


Update of /cvsroot/scummvm/scummvm/sound
In directory usw-pr-cvs1:/tmp/cvs-serv29109/sound

Modified Files:
	mididrv.cpp 
Log Message:
removed my non functional attempt at streaming in the CoreAudio driver, now that we a have a streaming wrapper

Index: mididrv.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sound/mididrv.cpp,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -d -r1.22 -r1.23
--- mididrv.cpp	12 Nov 2002 15:08:53 -0000	1.22
+++ mididrv.cpp	13 Nov 2002 01:03:24 -0000	1.23
@@ -815,7 +815,8 @@
 			break;
 
 		default:
-			error("Unknown MIDI effect: %08x\n", (int)b);
+			// Error: Unknown MIDI effect: 007f76b3
+			warning("Unknown MIDI effect: %08x", (int)b);
 			break;
 		}
 		break;
@@ -839,7 +840,7 @@
 		break;
 
 	default:
-		error("Unknown Command: %08x\n", (int)b);
+		error("Unknown Command: %08x", (int)b);
 		NASendMIDI(qtNoteAllocator, qtNoteChannel[chanID], &midPacket);
 		break;
 	}
@@ -875,48 +876,32 @@
 	MidiDriver_CORE():au_MusicDevice(NULL), au_output(NULL) {
 	} int open(int mode);
 	void close();
-	void send(uint32 b) { MidiEvent e = {0, b}; send(e); }
+	void send(uint32 b);
 	void pause(bool p);
 	void set_stream_callback(void *param, StreamCallback *sc);
 	void setPitchBendRange (byte channel, uint range) { }
 
-	static OSStatus inputCallback(void *inRefCon, AudioUnitRenderActionFlags inActionFlags, const AudioTimeStamp *inTimeStamp, UInt32 inBusNumber, AudioBuffer *ioData);
 private:
 	AudioUnit au_MusicDevice;
 	AudioUnit au_output;
 
-	StreamCallback *_stream_proc;
-	void *_stream_param;
 	int _mode;
-
-	void send(MidiEvent e);
 };
 
 
 void MidiDriver_CORE::set_stream_callback(void *param, StreamCallback *sc)
 {
-	_stream_param = param;
-	_stream_proc = sc;
 }
 
-OSStatus MidiDriver_CORE::inputCallback(void *inRefCon, AudioUnitRenderActionFlags inActionFlags, const AudioTimeStamp *inTimeStamp, UInt32 inBusNumber, AudioBuffer *ioData)
-{
-	MidiDriver_CORE *md  = (MidiDriver_CORE *)inRefCon;
-	MidiEvent event[32];
-	
-	if (md && md->_stream_proc) {
-		int num = (md->_stream_proc)(md->_stream_param, event, 32);
-		for (int i = 0; i < num; i++)
-			md->send(event[i]);
-	}
-	return 0;
-}
 
 int MidiDriver_CORE::open(int mode)
 {
 	if (au_output != NULL)
 		return MERR_ALREADY_OPEN;
 
+	if (mode == MO_STREAMING)
+		return MERR_STREAMING_NOT_AVAILABLE;
+
 	_mode = mode;
 
 	int err;
@@ -944,16 +929,6 @@
 		AudioUnitSetProperty(au_output, kAudioUnitProperty_MakeConnection, kAudioUnitScope_Input, 0,
 												 (void *)&auconnect, sizeof(AudioUnitConnection));
 
-	// set streaming callback
-	if (_mode == MO_STREAMING) {
-		AudioUnitInputCallback auCallback;
-		auCallback.inputProc = inputCallback;
-		auCallback.inputProcRefCon = this;
-		err = AudioUnitSetProperty(au_output, kAudioUnitProperty_SetInputCallback, kAudioUnitScope_Input, 0,
-													 (void *)&auCallback, sizeof(AudioUnitInputCallback));
-	
-	}
-
 	// initialize the units
 	AudioUnitInitialize(au_MusicDevice);
 	AudioUnitInitialize(au_output);
@@ -966,7 +941,6 @@
 
 void MidiDriver_CORE::close()
 {
-
 	// Stop the output
 	AudioOutputUnitStop(au_output);
 
@@ -977,19 +951,19 @@
 	_mode = 0;
 }
 
-void MidiDriver_CORE::send(MidiEvent e)
+void MidiDriver_CORE::send(uint32 b)
 {
 	unsigned char first_byte, seccond_byte, status_byte;
-	status_byte = (e.event & 0x000000FF);
-	first_byte = (e.event & 0x0000FF00) >> 8;
-	seccond_byte = (e.event & 0x00FF0000) >> 16;
+	status_byte = (b & 0x000000FF);
+	first_byte = (b & 0x0000FF00) >> 8;
+	seccond_byte = (b & 0x00FF0000) >> 16;
 
 #ifdef COREAUDIO_REVERB_HACK
 	if ((status_byte&0xF0) == 0xB0 && first_byte == 0x5b)
 		return;
 #endif
 
-	MusicDeviceMIDIEvent(au_MusicDevice, status_byte, first_byte, seccond_byte, e.delta);
+	MusicDeviceMIDIEvent(au_MusicDevice, status_byte, first_byte, seccond_byte, 0);
 }
 
 void MidiDriver_CORE::pause(bool)





More information about the Scummvm-git-logs mailing list