[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