@@ -62,6 +62,7 @@ public class RtpStreamReceiver extends Thread {
62
62
/** Whether it is running */
63
63
boolean running ;
64
64
AudioManager am ;
65
+ ContentResolver cr ;
65
66
public static int speakermode ;
66
67
67
68
/**
@@ -142,6 +143,35 @@ void saveVolume() {
142
143
edit .commit ();
143
144
}
144
145
146
+ void saveSettings () {
147
+ if (!PreferenceManager .getDefaultSharedPreferences (Receiver .mContext ).getBoolean ("oldvalid" ,false )) {
148
+ int oldvibrate = am .getVibrateSetting (AudioManager .VIBRATE_TYPE_RINGER );
149
+ int oldvibrate2 = am .getVibrateSetting (AudioManager .VIBRATE_TYPE_NOTIFICATION );
150
+ if (!PreferenceManager .getDefaultSharedPreferences (Receiver .mContext ).contains ("oldvibrate2" ))
151
+ oldvibrate2 = AudioManager .VIBRATE_SETTING_ON ;
152
+ int oldpolicy = android .provider .Settings .System .getInt (cr , android .provider .Settings .System .WIFI_SLEEP_POLICY ,
153
+ Settings .System .WIFI_SLEEP_POLICY_DEFAULT );
154
+ Editor edit = PreferenceManager .getDefaultSharedPreferences (Receiver .mContext ).edit ();
155
+ edit .putInt ("oldvibrate" , oldvibrate );
156
+ edit .putInt ("oldvibrate2" , oldvibrate2 );
157
+ edit .putInt ("oldpolicy" , oldpolicy );
158
+ edit .putBoolean ("oldvalid" , true );
159
+ edit .commit ();
160
+ }
161
+ }
162
+
163
+ void restoreSettings () {
164
+ int oldvibrate = PreferenceManager .getDefaultSharedPreferences (Receiver .mContext ).getInt ("oldvibrate" ,0 );
165
+ int oldvibrate2 = PreferenceManager .getDefaultSharedPreferences (Receiver .mContext ).getInt ("oldvibrate2" ,0 );
166
+ int oldpolicy = PreferenceManager .getDefaultSharedPreferences (Receiver .mContext ).getInt ("oldpolicy" ,0 );
167
+ am .setVibrateSetting (AudioManager .VIBRATE_TYPE_RINGER ,oldvibrate );
168
+ am .setVibrateSetting (AudioManager .VIBRATE_TYPE_NOTIFICATION ,oldvibrate2 );
169
+ Settings .System .putInt (cr , Settings .System .WIFI_SLEEP_POLICY , oldpolicy );
170
+ Editor edit = PreferenceManager .getDefaultSharedPreferences (Receiver .mContext ).edit ();
171
+ edit .putBoolean ("oldvalid" , false );
172
+ edit .commit ();
173
+ }
174
+
145
175
public static float good , late , lost , loss ;
146
176
147
177
/** Runs it in a new Thread. */
@@ -163,29 +193,24 @@ public void run() {
163
193
164
194
android .os .Process .setThreadPriority (android .os .Process .THREAD_PRIORITY_AUDIO );
165
195
am = (AudioManager ) Receiver .mContext .getSystemService (Context .AUDIO_SERVICE );
166
- int oldvibrate = am .getVibrateSetting (AudioManager .VIBRATE_TYPE_RINGER );
167
- int oldvibrate2 = am .getVibrateSetting (AudioManager .VIBRATE_TYPE_NOTIFICATION );
168
- int oldvol = am .getStreamVolume (AudioManager .STREAM_MUSIC );
169
- ContentResolver cr = Receiver .mContext .getContentResolver ();
170
- int oldpolicy = android .provider .Settings .System .getInt (cr , android .provider .Settings .System .WIFI_SLEEP_POLICY ,
171
- Settings .System .WIFI_SLEEP_POLICY_DEFAULT );
172
- if (oldpolicy != Settings .System .WIFI_SLEEP_POLICY_NEVER )
173
- Settings .System .putInt (cr , Settings .System .WIFI_SLEEP_POLICY ,
174
- Settings .System .WIFI_SLEEP_POLICY_NEVER );
175
- restoreVolume ();
196
+ cr = Receiver .mContext .getContentResolver ();
197
+ saveSettings ();
198
+ Settings .System .putInt (cr , Settings .System .WIFI_SLEEP_POLICY ,Settings .System .WIFI_SLEEP_POLICY_NEVER );
176
199
am .setVibrateSetting (AudioManager .VIBRATE_TYPE_RINGER ,AudioManager .VIBRATE_SETTING_OFF );
177
200
am .setVibrateSetting (AudioManager .VIBRATE_TYPE_NOTIFICATION ,AudioManager .VIBRATE_SETTING_OFF );
201
+ int oldvol = am .getStreamVolume (AudioManager .STREAM_MUSIC );
202
+ restoreVolume ();
178
203
AudioTrack track = new AudioTrack (AudioManager .STREAM_MUSIC , 8000 , AudioFormat .CHANNEL_CONFIGURATION_MONO , AudioFormat .ENCODING_PCM_16BIT ,
179
204
BUFFER_SIZE *2 *2 , AudioTrack .MODE_STREAM );
180
205
track .setStereoVolume (AudioTrack .getMaxVolume ()*
181
- Float . valueOf ( PreferenceManager . getDefaultSharedPreferences ( Receiver . mContext ). getString ( "eargain" , "0.25" ) )
206
+ org . sipdroid . sipua . ui . Settings . getEarGain ( )
182
207
,AudioTrack .getMaxVolume ()*
183
- Float . valueOf ( PreferenceManager . getDefaultSharedPreferences ( Receiver . mContext ). getString ( "eargain" , "0.25" ) ));
208
+ org . sipdroid . sipua . ui . Settings . getEarGain ( ));
184
209
track .play ();
185
210
short lin [] = new short [BUFFER_SIZE ];
186
211
short lin2 [] = new short [BUFFER_SIZE ];
187
212
int user , server , lserver , luser , cnt , todo , headroom , len , timeout = 1 , seq = 0 , cnt2 = 0 , m = 1 ,
188
- expseq , getseq , vm = 1 ;
213
+ expseq , getseq , vm = 1 , gap ;
189
214
boolean islate ;
190
215
user = 0 ;
191
216
lserver = 0 ;
@@ -281,15 +306,12 @@ public void run() {
281
306
getseq = rtp_packet .getSequenceNumber ()&0xff ;
282
307
expseq = ++seq &0xff ;
283
308
if (m == RtpStreamSender .m ) vm = m ;
284
- if (getseq != expseq ) {
285
- if (expseq > getseq ) {
286
- loss += expseq - getseq ;
287
- lost += expseq - getseq ;
288
- good += expseq - getseq - 1 ;
289
- } else {
290
- loss ++;
291
- lost ++;
292
- }
309
+ gap = (getseq - expseq ) & 0xff ;
310
+ if (gap > 0 ) {
311
+ if (gap > 100 ) gap = 1 ;
312
+ loss += gap ;
313
+ lost += gap ;
314
+ good += gap - 1 ;
293
315
} else {
294
316
if (m < vm )
295
317
loss ++;
@@ -313,9 +335,9 @@ public void run() {
313
335
switch (speakermode ) {
314
336
case AudioManager .MODE_IN_CALL :
315
337
track .setStereoVolume (AudioTrack .getMaxVolume ()*
316
- Float . valueOf ( PreferenceManager . getDefaultSharedPreferences ( Receiver . mContext ). getString ( "eargain" , "0.25" ) )
338
+ org . sipdroid . sipua . ui . Settings . getEarGain ( )
317
339
,AudioTrack .getMaxVolume ()*
318
- Float . valueOf ( PreferenceManager . getDefaultSharedPreferences ( Receiver . mContext ). getString ( "eargain" , "0.25" ) ));
340
+ org . sipdroid . sipua . ui . Settings . getEarGain ( ));
319
341
break ;
320
342
case AudioManager .MODE_NORMAL :
321
343
track .setStereoVolume (AudioTrack .getMaxVolume (),AudioTrack .getMaxVolume ());
@@ -330,12 +352,9 @@ public void run() {
330
352
track .stop ();
331
353
if (Receiver .pstn_state == null || Receiver .pstn_state .equals ("IDLE" ))
332
354
am .setMode (AudioManager .MODE_NORMAL );
333
- am .setVibrateSetting (AudioManager .VIBRATE_TYPE_RINGER ,oldvibrate );
334
- am .setVibrateSetting (AudioManager .VIBRATE_TYPE_NOTIFICATION ,oldvibrate2 );
335
355
saveVolume ();
336
356
am .setStreamVolume (AudioManager .STREAM_MUSIC ,oldvol ,0 );
337
- if (oldpolicy != Settings .System .WIFI_SLEEP_POLICY_NEVER )
338
- Settings .System .putInt (cr , Settings .System .WIFI_SLEEP_POLICY , oldpolicy );
357
+ restoreSettings ();
339
358
ToneGenerator tg = new ToneGenerator (AudioManager .STREAM_RING ,ToneGenerator .MAX_VOLUME /4 *3 );
340
359
tg .startTone (ToneGenerator .TONE_PROP_PROMPT );
341
360
try {
0 commit comments