84 "(II)V"); |
84 "(II)V"); |
85 if (!classMethodID) |
85 if (!classMethodID) |
86 { |
86 { |
87 User::Leave(KErrNoMemory); |
87 User::Leave(KErrNoMemory); |
88 } |
88 } |
89 LOG( EJavaMMAPI, EInfo, "CMMASourceStream::ConstructL , jmethodId found"); |
89 LOG(EJavaMMAPI, EInfo, "CMMASourceStream::ConstructL , jmethodId found"); |
90 jobject apeer = aJNIEnv->NewGlobalRef(aJavaSourceStream); |
90 jobject apeer = aJNIEnv->NewGlobalRef(aJavaSourceStream); |
91 iReadEvent = new(ELeave) CMMASourceStreamEvent(classMethodID, |
91 iReadEvent = new(ELeave) CMMASourceStreamEvent(classMethodID, |
92 apeer); |
92 apeer); |
93 } |
93 } |
94 |
94 |
95 |
95 |
96 void CMMASourceStream::WriteL(const TUint8* aData, |
96 void CMMASourceStream::WriteL(const TUint8* aData, |
97 TInt aLength, |
97 TInt aLength, |
98 TInt aState) |
98 TInt aState) |
99 { |
99 { |
100 LOG1( EJavaMMAPI, EInfo, "MMA::CMMASourceStream::WriteL() %d",aState); |
100 LOG1(EJavaMMAPI, EInfo, "MMA::CMMASourceStream::WriteL() %d",aState); |
101 if (aState < KErrNone) |
101 if (aState < KErrNone) |
102 { |
102 { |
103 LOG( EJavaMMAPI, EInfo, "MMA::CMMASourceStream::WriteL : 1"); |
103 LOG(EJavaMMAPI, EInfo, "MMA::CMMASourceStream::WriteL : 1"); |
104 // Inform listener on error case |
104 // Inform listener on error case |
105 iListener->ReadCompletedL(aState, KNullDesC8()); |
105 iListener->ReadCompletedL(aState, KNullDesC8()); |
106 return; |
106 return; |
107 } |
107 } |
108 |
108 |
155 iReadEvent->SetLength(iReadLength - currentRead); |
155 iReadEvent->SetLength(iReadLength - currentRead); |
156 } |
156 } |
157 |
157 |
158 } |
158 } |
159 |
159 |
160 LOG( EJavaMMAPI, EInfo, "MMA::CMMASourceStream::WriteL completed"); |
160 LOG(EJavaMMAPI, EInfo, "MMA::CMMASourceStream::WriteL completed"); |
161 } |
161 } |
162 |
162 |
163 void CMMASourceStream::ReadL(TInt aLength) |
163 void CMMASourceStream::ReadL(TInt aLength) |
164 { |
164 { |
165 LOG1( EJavaMMAPI, EInfo, "MMA::CMMASourceStream::ReadL(%d)", aLength); |
165 LOG1(EJavaMMAPI, EInfo, "MMA::CMMASourceStream::ReadL(%d)", aLength); |
166 |
166 |
167 __ASSERT_DEBUG(iData != NULL, User::Invariant()); |
167 __ASSERT_DEBUG(iData != NULL, User::Invariant()); |
168 |
168 |
169 PrepareReadL(); |
169 PrepareReadL(); |
170 |
170 |
181 void CMMASourceStream::ReadAllL() |
181 void CMMASourceStream::ReadAllL() |
182 { |
182 { |
183 // not reading again if iData already has data |
183 // not reading again if iData already has data |
184 if (iData == NULL) |
184 if (iData == NULL) |
185 { |
185 { |
186 LOG( EJavaMMAPI, EInfo, "CMMASourceStream::ReadAllL: Buffer empty, reading from java"); |
186 LOG(EJavaMMAPI, EInfo, "CMMASourceStream::ReadAllL: Buffer empty, reading from java"); |
187 CreateDataBufferL(KBufferSize); |
187 CreateDataBufferL(KBufferSize); |
188 ReadL(KMMAReadAllData); |
188 ReadL(KMMAReadAllData); |
189 } |
189 } |
190 else |
190 else |
191 { |
191 { |
192 LOG( EJavaMMAPI, EInfo, "CMMASourceStream::ReadAllL: Buffer not empty, ->ReadCompleteL"); |
192 LOG(EJavaMMAPI, EInfo, "CMMASourceStream::ReadAllL: Buffer not empty, ->ReadCompleteL"); |
193 iListener->ReadCompletedL(ECompleted, *iData); |
193 iListener->ReadCompletedL(ECompleted, *iData); |
194 } |
194 } |
195 } |
195 } |
196 |
196 |
197 void CMMASourceStream::PrepareReadL() |
197 void CMMASourceStream::PrepareReadL() |
204 iData = NULL; |
204 iData = NULL; |
205 } |
205 } |
206 |
206 |
207 void CMMASourceStream::CreateDataBufferL(TInt aBufferSize) |
207 void CMMASourceStream::CreateDataBufferL(TInt aBufferSize) |
208 { |
208 { |
209 LOG( EJavaMMAPI, EInfo, "CMMASourceStream::CreateDataBufferL +"); |
209 LOG(EJavaMMAPI, EInfo, "CMMASourceStream::CreateDataBufferL +"); |
210 __ASSERT_DEBUG(iData == NULL, User::Invariant()); |
210 __ASSERT_DEBUG(iData == NULL, User::Invariant()); |
211 |
211 |
212 iData = HBufC8::NewL(aBufferSize); |
212 iData = HBufC8::NewL(aBufferSize); |
213 } |
213 } |
214 |
214 |