[Scummvm-cvs-logs] SF.net SVN: scummvm:[41344] scummvm/trunk/engines/sci/sfx

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Sun Jun 7 19:07:08 CEST 2009


Revision: 41344
          http://scummvm.svn.sourceforge.net/scummvm/?rev=41344&view=rev
Author:   fingolfin
Date:     2009-06-07 17:07:07 +0000 (Sun, 07 Jun 2009)

Log Message:
-----------
SCI: Objectified Song struct 'a bit'

Modified Paths:
--------------
    scummvm/trunk/engines/sci/sfx/core.cpp
    scummvm/trunk/engines/sci/sfx/songlib.cpp
    scummvm/trunk/engines/sci/sfx/songlib.h

Modified: scummvm/trunk/engines/sci/sfx/core.cpp
===================================================================
--- scummvm/trunk/engines/sci/sfx/core.cpp	2009-06-07 17:06:51 UTC (rev 41343)
+++ scummvm/trunk/engines/sci/sfx/core.cpp	2009-06-07 17:07:07 UTC (rev 41344)
@@ -824,7 +824,7 @@
 
 	}
 
-	song = song_new(handle, it, priority);
+	song = new Song(handle, it, priority);
 	song->_resourceNum = number;
 	song->_hold = 0;
 	song->_loops = 0;

Modified: scummvm/trunk/engines/sci/sfx/songlib.cpp
===================================================================
--- scummvm/trunk/engines/sci/sfx/songlib.cpp	2009-06-07 17:06:51 UTC (rev 41343)
+++ scummvm/trunk/engines/sci/sfx/songlib.cpp	2009-06-07 17:07:07 UTC (rev 41344)
@@ -31,29 +31,44 @@
 
 #define debug_stream stderr
 
-Song *song_new(SongHandle handle, SongIterator *it, int priority) {
-	Song *retval;
-	retval = (Song *)malloc(sizeof(Song));
+Song::Song() {
+	_handle = 0;
+	_priority = 0;
+	_status = SOUND_STATUS_STOPPED;
 
-#ifdef SATISFY_PURIFY
-	memset(retval, 0, sizeof(Song));
-#endif
+	_restoreBehavior = RESTORE_BEHAVIOR_CONTINUE;
+	_restoreTime = 0;
 
-	retval->_handle = handle;
-	retval->_priority = priority;
-	retval->_next = NULL;
-	retval->_delay = 0;
-	retval->_wakeupTime = Audio::Timestamp();
-	retval->_it = it;
-	retval->_status = SOUND_STATUS_STOPPED;
-	retval->_nextPlaying = NULL;
-	retval->_nextStopping = NULL;
-	retval->_restoreBehavior = RESTORE_BEHAVIOR_CONTINUE;
-	retval->_restoreTime = 0;
+	_loops = 0;
+	_hold = 0;
 
-	return retval;
+	_it = 0;
+	_delay = 0;
+
+	_next = NULL;
+	_nextPlaying = NULL;
+	_nextStopping = NULL;
 }
 
+Song::Song(SongHandle handle, SongIterator *it, int priority) {
+	_handle = handle;
+	_priority = priority;
+	_status = SOUND_STATUS_STOPPED;
+
+	_restoreBehavior = RESTORE_BEHAVIOR_CONTINUE;
+	_restoreTime = 0;
+
+	_loops = 0;
+	_hold = 0;
+
+	_it = it;
+	_delay = 0;
+
+	_next = NULL;
+	_nextPlaying = NULL;
+	_nextStopping = NULL;
+}
+
 void SongLibrary::addSong(Song *song) {
 	Song **seeker = NULL;
 	int pri	= song->_priority;
@@ -90,7 +105,7 @@
 		delete song->_it;
 		song->_it = NULL;
 		next = song->_next;
-		free(song);
+		delete song;
 	}
 	*_lib = NULL;
 }
@@ -154,7 +169,7 @@
 	retval = goner->_status;
 
 	delete goner->_it;
-	free(goner);
+	delete goner;
 
 	return retval;
 }

Modified: scummvm/trunk/engines/sci/sfx/songlib.h
===================================================================
--- scummvm/trunk/engines/sci/sfx/songlib.h	2009-06-07 17:06:51 UTC (rev 41343)
+++ scummvm/trunk/engines/sci/sfx/songlib.h	2009-06-07 17:07:07 UTC (rev 41344)
@@ -50,7 +50,8 @@
 	RESTORE_BEHAVIOR_RESTART /* continue it from where it was */
 };
 
-struct Song {
+class Song {
+public:
 	SongHandle _handle;
 	int _resourceNum; /**<! Resource number */
 	int _priority; /**!< Song priority (more important if priority is higher) */
@@ -80,26 +81,26 @@
 	 * _update_multi_song()
 	 */
 	Song *_nextStopping;
-};
 
+public:
 
-/**************************/
-/* Song library commands: */
-/**************************/
+	Song();
 
-/* Initializes a new song
-** Parameters: (SongHandle) handle: The sound handle
-**             (SongIterator *) it: The song
-**             (int) priority: The song's priority
-** Returns   : (Song *) A freshly allocated song
-** Other values are set to predefined defaults.
-*/
-Song *song_new(SongHandle handle, SongIterator *it, int priority);
+	/**
+	 * Initializes a new song.
+	 * @param handle	the sound handle
+	 * @param it		the song
+	 * @param priority	the song's priority
+	 * @return a freshly allocated song
+	 */
+	Song(SongHandle handle, SongIterator *it, int priority);
+};
 
 
 class SongLibrary {
 public:
 	Song **_lib;
+protected:
 	Song *_s;
 
 public:


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list