[Scummvm-cvs-logs] CVS: residual/imuse imuse.h,1.7,1.8 imuse_script.cpp,1.7,1.8 imuse_sndmgr.cpp,1.9,1.10 imuse_sndmgr.h,1.6,1.7
Pawel Kolodziejski
aquadran at users.sourceforge.net
Sat Jan 1 13:09:02 CET 2005
- Previous message: [Scummvm-cvs-logs] CVS: scummvm TODO,1.210,1.211
- Next message: [Scummvm-cvs-logs] CVS: residual actor.cpp,1.36,1.37 actor.h,1.18,1.19 costume.cpp,1.22,1.23 lipsynch.cpp,1.5,1.6 lipsynch.h,1.5,1.6 lua.cpp,1.89,1.90 main.cpp,1.42,1.43 resource.cpp,1.20,1.21
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/scummvm/residual/imuse
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29605/imuse
Modified Files:
imuse.h imuse_script.cpp imuse_sndmgr.cpp imuse_sndmgr.h
Log Message:
handle sfx and voice by imuse
Index: imuse.h
===================================================================
RCS file: /cvsroot/scummvm/residual/imuse/imuse.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- imuse.h 1 Jan 2005 12:27:57 -0000 1.7
+++ imuse.h 1 Jan 2005 21:07:52 -0000 1.8
@@ -104,8 +104,6 @@
int allocSlot(int priority);
void selectVolumeGroup(const char *soundName, int volGroupId);
- int32 getPosInMs(const char *soundName);
-
void fadeOutMusic(int fadeDelay);
Track *cloneToFadeOutTrack(Track *track, int fadeDelay);
@@ -143,8 +141,9 @@
void setMusicSequence(int seqId);
void refreshScripts();
void flushTracks();
+ bool isVoicePlaying();
bool getSoundStatus(const char *soundName) const;
- int32 getCurMusicPosInMs();
+ int32 getPosIn60HzTicks(const char *soundName);
};
extern Imuse *g_imuse;
Index: imuse_script.cpp
===================================================================
RCS file: /cvsroot/scummvm/residual/imuse/imuse_script.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- imuse_script.cpp 1 Jan 2005 12:27:57 -0000 1.7
+++ imuse_script.cpp 1 Jan 2005 21:07:52 -0000 1.8
@@ -73,22 +73,22 @@
startSound(soundName, IMUSE_VOLGRP_SFX, 0, 127, 0, priority);
}
-int32 Imuse::getPosInMs(const char *soundName) {
+int32 Imuse::getPosIn60HzTicks(const char *soundName) {
for (int l = 0; l < MAX_IMUSE_TRACKS; l++) {
Track *track = _track[l];
if (track->used && !track->toBeRemoved && (strcmp(track->soundName, soundName) == 0)) {
- int32 pos = (5 * (track->dataOffset + track->regionOffset)) / (track->iteration / 200);
+ int32 pos = (5 * (track->dataOffset + track->regionOffset)) / (track->iteration / 12);
return pos;
}
}
- return 0;
+ return -1;
}
-bool Imuse::getSoundStatus(const char *soundName) const {
+bool Imuse::isVoicePlaying() {
for (int l = 0; l < MAX_IMUSE_TRACKS; l++) {
Track *track = _track[l];
- if (strcmp(track->soundName, soundName) == 0) {
+ if (track->volGroupId == IMUSE_VOLGRP_VOICE) {
if (track->handle.isActive() || (track->stream && track->used && !track->readyToRemove)) {
return true;
}
@@ -98,27 +98,26 @@
return false;
}
-void Imuse::stopSound(const char *soundName) {
+bool Imuse::getSoundStatus(const char *soundName) const {
for (int l = 0; l < MAX_IMUSE_TRACKS; l++) {
Track *track = _track[l];
- if (track->used && !track->toBeRemoved && (strcmp(track->soundName, soundName) == 0)) {
- track->toBeRemoved = true;
+ if (strcmp(track->soundName, soundName) == 0) {
+ if (track->handle.isActive() || (track->stream && track->used && !track->readyToRemove)) {
+ return true;
+ }
}
}
-}
-int32 Imuse::getCurMusicPosInMs() {
- const char *soundName = NULL;
+ return false;
+}
+void Imuse::stopSound(const char *soundName) {
for (int l = 0; l < MAX_IMUSE_TRACKS; l++) {
Track *track = _track[l];
- if (track->used && !track->toBeRemoved && (track->volGroupId == IMUSE_VOLGRP_MUSIC)) {
- soundName = track->soundName;
+ if (track->used && !track->toBeRemoved && (strcmp(track->soundName, soundName) == 0)) {
+ track->toBeRemoved = true;
}
}
-
- int32 msPos = getPosInMs(soundName);
- return msPos;
}
void Imuse::stopAllSounds() {
Index: imuse_sndmgr.cpp
===================================================================
RCS file: /cvsroot/scummvm/residual/imuse/imuse_sndmgr.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- imuse_sndmgr.cpp 1 Jan 2005 12:27:57 -0000 1.9
+++ imuse_sndmgr.cpp 1 Jan 2005 21:07:52 -0000 1.10
@@ -166,10 +166,9 @@
sound->volGroupId = volGroupId;
if (strcasecmp(extension, "imu") == 0) {
- Block *b = g_resourceloader->getFileBlock(soundName);
- if (b != NULL) {
- ptr = (byte *)b->data();
- delete b;
+ sound->blockRes = g_resourceloader->getFileBlock(soundName);
+ if (sound->blockRes != NULL) {
+ ptr = (byte *)sound->blockRes->data();
parseSoundHeader(ptr, sound, headerSize);
sound->mcmpData = false;
sound->resPtr = ptr + headerSize;
@@ -200,6 +199,11 @@
soundHandle->mcmpMgr = NULL;
}
+ if (soundHandle->blockRes) {
+ delete soundHandle->blockRes;
+ soundHandle->blockRes = NULL;
+ }
+
if (soundHandle->region) {
free(soundHandle->region);
soundHandle->region = NULL;
Index: imuse_sndmgr.h
===================================================================
RCS file: /cvsroot/scummvm/residual/imuse/imuse_sndmgr.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- imuse_sndmgr.h 1 Jan 2005 12:27:57 -0000 1.6
+++ imuse_sndmgr.h 1 Jan 2005 21:07:52 -0000 1.7
@@ -27,6 +27,7 @@
#include "mixer/audiostream.h"
class McmpMgr;
+class Block;
class ImuseSndMgr {
public:
@@ -64,6 +65,7 @@
bool inUse;
char name[32];
McmpMgr *mcmpMgr;
+ Block *blockRes;
int volGroupId;
byte *resPtr;
bool mcmpData;
- Previous message: [Scummvm-cvs-logs] CVS: scummvm TODO,1.210,1.211
- Next message: [Scummvm-cvs-logs] CVS: residual actor.cpp,1.36,1.37 actor.h,1.18,1.19 costume.cpp,1.22,1.23 lipsynch.cpp,1.5,1.6 lipsynch.h,1.5,1.6 lua.cpp,1.89,1.90 main.cpp,1.42,1.43 resource.cpp,1.20,1.21
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Scummvm-git-logs
mailing list