Changeset 9671 for trunk/src/winmm/waveinoutbase.cpp
- Timestamp:
- Jan 14, 2003, 8:38:38 PM (23 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/winmm/waveinoutbase.cpp
r8202 r9671 1 /* $Id: waveinoutbase.cpp,v 1. 4 2002-04-07 14:36:31sandervl Exp $ */1 /* $Id: waveinoutbase.cpp,v 1.5 2003-01-14 19:38:38 sandervl Exp $ */ 2 2 3 3 /* … … 35 35 #include "dbglocal.h" 36 36 37 VMutex wavemutex; 37 38 38 39 /******************************************************************************/ … … 55 56 State = STATE_STOPPED; 56 57 57 w mutex.enter();58 wavemutex.enter(); 58 59 59 if( wave== NULL) {60 wave= this;60 if(head == NULL) { 61 head = this; 61 62 } 62 63 else { 63 WaveInOut *dwave = wave;64 WaveInOut *dwave = head; 64 65 65 66 while(dwave->next) { … … 68 69 dwave->next = this; 69 70 } 70 w mutex.leave();71 wavemutex.leave(); 71 72 72 73 this->fdwOpen = fdwOpen; … … 78 79 WaveInOut::~WaveInOut() 79 80 { 80 w mutex.enter();81 wavemutex.enter(); 81 82 82 83 State = STATE_STOPPED; 83 84 84 if( wave== this) {85 wave= this->next;85 if(head == this) { 86 head = this->next; 86 87 } 87 88 else { 88 WaveInOut *dwave = wave;89 WaveInOut *dwave = head; 89 90 90 91 while(dwave->next != this) { … … 93 94 dwave->next = this->next; 94 95 } 95 w mutex.leave();96 wavemutex.leave(); 96 97 } 97 98 /******************************************************************************/ … … 146 147 } 147 148 /******************************************************************************/ 149 //Delete all active wave objects 150 /******************************************************************************/ 151 void WaveInOut::shutdown() 152 { 153 dprintf(("WaveInOut::shutdown")); 154 wavemutex.enter(); 155 while(head) { 156 delete head; 157 } 158 wavemutex.leave(); 159 dprintf(("WaveInOut::shutdown end")); 160 } 161 /******************************************************************************/ 148 162 /******************************************************************************/ 149 163 BOOL WaveInOut::find(WaveInOut *dwave) 150 164 { 151 WaveInOut *curwave = wave; 165 wavemutex.enter(); 166 167 WaveInOut *curwave = head; 152 168 153 169 while(curwave) { 154 170 if(dwave == curwave) { 171 wavemutex.leave(); 155 172 return(TRUE); 156 173 } 157 174 curwave = curwave->next; 158 175 } 176 wavemutex.leave(); 159 177 160 178 dprintf2(("WINMM:WaveInOut not found!\n")); … … 163 181 /******************************************************************************/ 164 182 /******************************************************************************/ 165 WaveInOut *WaveInOut:: wave= NULL;183 WaveInOut *WaveInOut::head = NULL; 166 184
Note:
See TracChangeset
for help on using the changeset viewer.