# HG changeset patch # User Nikita Kozlov # Date 1263672308 -3600 # Node ID 8649e502be0eb34aae1d6b17f4c96cc5c4fefc84 # Parent b87f8688118c26d27e3f5715f07fd622c5c39c6b first audio commit, beginning of the ui diff -r b87f8688118c -r 8649e502be0e AndroidManifest.xml --- a/AndroidManifest.xml Fri Jan 15 12:02:29 2010 +0100 +++ b/AndroidManifest.xml Sat Jan 16 21:05:08 2010 +0100 @@ -14,6 +14,7 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r b87f8688118c -r 8649e502be0e res/layout/ongoing_call_notification.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/res/layout/ongoing_call_notification.xml Sat Jan 16 21:05:08 2010 +0100 @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + diff -r b87f8688118c -r 8649e502be0e res/menu/contactlist_context.xml --- a/res/menu/contactlist_context.xml Fri Jan 15 12:02:29 2010 +0100 +++ b/res/menu/contactlist_context.xml Sat Jan 16 21:05:08 2010 +0100 @@ -2,7 +2,7 @@ + android:title="@string/CDCall" android:visible="true" /> diff -r b87f8688118c -r 8649e502be0e res/values-fr/strings.xml --- a/res/values-fr/strings.xml Fri Jan 15 12:02:29 2010 +0100 +++ b/res/values-fr/strings.xml Sat Jan 16 21:05:08 2010 +0100 @@ -140,6 +140,7 @@ Beem - Contacts Beem - ContactList Activity Beem - Informations + Beem - Appel Reset diff -r b87f8688118c -r 8649e502be0e src/com/beem/project/beem/jingle/JingleService.java --- a/src/com/beem/project/beem/jingle/JingleService.java Fri Jan 15 12:02:29 2010 +0100 +++ b/src/com/beem/project/beem/jingle/JingleService.java Sat Jan 16 21:05:08 2010 +0100 @@ -61,6 +61,9 @@ import android.content.Context; import android.util.Log; +import android.content.Intent; + +import com.beem.project.beem.ui.CallScreen; // TODO: Auto-generated Javadoc /** @@ -73,6 +76,7 @@ private final List mMediaManagers; private JingleSession mIn; private JingleSession mOut; + private Context mContext; /** * JingleService constructor. @@ -82,7 +86,8 @@ BasicTransportManager bt = new BasicTransportManager(); mMediaManagers = new ArrayList(); mMediaManagers.add(new MicrophoneRTPManager(bt, ctx)); - //CodecManager.load(); + CodecManager.load(); + mContext = ctx; } /** @@ -203,7 +208,9 @@ public void sessionEstablished(final PayloadType pt, final TransportCandidate remoteCandidate, final TransportCandidate localCandidate, final JingleSession jingleSession) { Log.d(TAG, "Session " + jingleSession.getResponder() + "established"); - + Intent callIntent = new Intent(mContext, CallScreen.class); + callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + mContext.startActivity(callIntent); //call(pt, remoteCandidate, localCandidate, jingleSession); } diff -r b87f8688118c -r 8649e502be0e src/com/beem/project/beem/jingle/MicrophoneRTPManager.java --- a/src/com/beem/project/beem/jingle/MicrophoneRTPManager.java Fri Jan 15 12:02:29 2010 +0100 +++ b/src/com/beem/project/beem/jingle/MicrophoneRTPManager.java Sat Jan 16 21:05:08 2010 +0100 @@ -110,7 +110,7 @@ private void setupPayloads() { mPayloads = new ArrayList(); mPayloads.add(new PayloadType.Audio(8, "PCMA")); - mPayloads.add(new PayloadType.Audio(9, "G722")); - mPayloads.add(new PayloadType.Audio(3, "GSM")); +// mPayloads.add(new PayloadType.Audio(9, "G722")); +// mPayloads.add(new PayloadType.Audio(3, "GSM")); } } diff -r b87f8688118c -r 8649e502be0e src/com/beem/project/beem/jingle/RTPAudioSession.java --- a/src/com/beem/project/beem/jingle/RTPAudioSession.java Fri Jan 15 12:02:29 2010 +0100 +++ b/src/com/beem/project/beem/jingle/RTPAudioSession.java Sat Jan 16 21:05:08 2010 +0100 @@ -39,7 +39,8 @@ final TransportCandidate local, final String mediaLocator, final JingleSession jingleSession, Context ctx) { super(pt, remote, local, mediaLocator, jingleSession); - prepareRtpSession(local.getPort(), local.getIp(), remote.getPort()); + prepareRtpSession(local.getPort(), remote.getIp(), remote.getPort()); + Log.d("AUDIO", String.format("payload type : %s ipdest %s port dest %d port src %d",pt.getName(), remote.getIp(), remote.getPort(), local.getPort())); mSender = new RtpStreamSender(CodecManager.getCodecByRtpName(pt.getName()), rtpSession); diff -r b87f8688118c -r 8649e502be0e src/com/beem/project/beem/ui/CallScreen.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/com/beem/project/beem/ui/CallScreen.java Sat Jan 16 21:05:08 2010 +0100 @@ -0,0 +1,169 @@ +package com.beem.project.beem.ui; + +import org.sipdroid.media.RtpStreamReceiver; + +import android.app.Activity; +import android.app.AlertDialog; +import android.app.KeyguardManager; +import android.content.ActivityNotFoundException; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.media.AudioManager; +import android.os.Bundle; +import android.os.SystemClock; +import android.text.InputType; +import android.util.Log; +import android.view.Menu; +import android.view.MenuItem; +import android.widget.EditText; + +import com.beem.project.beem.R; + +/* + * Copyright (C) 2009 The Sipdroid Open Source Project + * + * This file is part of Sipdroid (http://www.sipdroid.org) + * + * Sipdroid is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This source code is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this source code; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +public class CallScreen extends Activity implements DialogInterface.OnClickListener { + public static final int FIRST_MENU_ID = Menu.FIRST; + public static final int HANG_UP_MENU_ITEM = FIRST_MENU_ID + 1; + public static final int HOLD_MENU_ITEM = FIRST_MENU_ID + 2; + public static final int MUTE_MENU_ITEM = FIRST_MENU_ID + 3; + public static final int VIDEO_MENU_ITEM = FIRST_MENU_ID + 5; + public static final int SPEAKER_MENU_ITEM = FIRST_MENU_ID + 6; + public static final int TRANSFER_MENU_ITEM = FIRST_MENU_ID + 7; + + private static EditText transferText; + + @Override + public void onCreate(Bundle savedInstance){ + super.onCreate(savedInstance); + setContentView(R.layout.incall); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + boolean result = super.onCreateOptionsMenu(menu); + + MenuItem m = menu.add(0, HOLD_MENU_ITEM, 0, "R.string.menu_hold"); + m.setIcon(android.R.drawable.stat_sys_phone_call_on_hold); + m = menu.add(0, SPEAKER_MENU_ITEM, 0, "R.string.menu_speaker"); + m.setIcon(android.R.drawable.stat_sys_speakerphone); + m = menu.add(0, MUTE_MENU_ITEM, 0, "R.string.menu_mute"); + m.setIcon(android.R.drawable.stat_notify_call_mute); + m = menu.add(0, TRANSFER_MENU_ITEM, 0, "R.string.menu_transfer"); + m.setIcon(android.R.drawable.ic_menu_call); + m = menu.add(0, VIDEO_MENU_ITEM, 0, "R.string.menu_video"); + m.setIcon(android.R.drawable.ic_menu_camera); + m = menu.add(0, HANG_UP_MENU_ITEM, 0, "R.string.menu_endCall"); +// m.setIcon(android.R.drawable.stat_notify_call_end); + + return result; + } + + public void onClick(DialogInterface dialog, int which) + { + /* if (which == DialogInterface.BUTTON_POSITIVE) + Receiver.engine(this).transfer(transferText.getText().toString());*/ + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + boolean result = super.onOptionsItemSelected(item); + Intent intent = null; + + switch (item.getItemId()) { + case HANG_UP_MENU_ITEM: + // Receiver.engine(this).rejectcall(); + break; + + case HOLD_MENU_ITEM: + //Receiver.engine(this).togglehold(); + break; + + case TRANSFER_MENU_ITEM: + //transfer(); + break; + + case MUTE_MENU_ITEM: + //Receiver.engine(this).togglemute(); + break; + + case SPEAKER_MENU_ITEM: + //Receiver.engine(this).speaker(RtpStreamReceiver.speakermode == AudioManager.MODE_NORMAL? + // AudioManager.MODE_IN_CALL:AudioManager.MODE_NORMAL); + break; + + case VIDEO_MENU_ITEM: + /*if (Receiver.call_state == UserAgent.UA_STATE_HOLD) Receiver.engine(this).togglehold(); + try { + intent = new Intent(this, org.sipdroid.sipua.ui.VideoCamera.class); + startActivity(intent); + } catch (ActivityNotFoundException e) { + }*/ + break; + } + + return result; + } + +/* long enabletime; + KeyguardManager mKeyguardManager; + KeyguardManager.KeyguardLock mKeyguardLock; + boolean enabled; + + void disableKeyguard() { + if (enabled) { + mKeyguardLock.disableKeyguard(); + enabled = false; + enabletime = SystemClock.elapsedRealtime(); + } + } + + void reenableKeyguard() { + if (!enabled) { + if (SystemClock.elapsedRealtime() < enabletime + 500) + try { + Thread.sleep(500); + } catch (InterruptedException e) { + } + mKeyguardLock.reenableKeyguard(); + enabled = true; + } + } + + @Override + public void onStart() { + super.onStart(); + if (mKeyguardManager == null) { + mKeyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE); + mKeyguardLock = mKeyguardManager.newKeyguardLock("Sipdroid"); + enabled = true; + } + disableKeyguard(); + } + + @Override + public void onStop() { + super.onStop(); + reenableKeyguard(); + } + */ + +} diff -r b87f8688118c -r 8649e502be0e src/com/beem/project/beem/ui/ContactList.java --- a/src/com/beem/project/beem/ui/ContactList.java Fri Jan 15 12:02:29 2010 +0100 +++ b/src/com/beem/project/beem/ui/ContactList.java Sat Jan 16 21:05:08 2010 +0100 @@ -200,7 +200,7 @@ break; case R.id.contact_list_context_menu_call_item: try { - mXmppFacade.call(mContact.getJID() + "/psi"); + mXmppFacade.call(mContact.getJID() + "/Beem"); result = true; } catch (RemoteException e) { e.printStackTrace(); diff -r b87f8688118c -r 8649e502be0e src/jlibrtp/RTPSession.java --- a/src/jlibrtp/RTPSession.java Fri Jan 15 12:02:29 2010 +0100 +++ b/src/jlibrtp/RTPSession.java Sat Jan 16 21:05:08 2010 +0100 @@ -560,7 +560,7 @@ try { rtpSock.send(packet); - Log.d("RTP", "packet"); + //Log.d("RTP", "packet"); // Debug if (this.debugAppIntf != null) { this.debugAppIntf diff -r b87f8688118c -r 8649e502be0e src/org/sipdroid/media/RtpStreamReceiver.java --- a/src/org/sipdroid/media/RtpStreamReceiver.java Fri Jan 15 12:02:29 2010 +0100 +++ b/src/org/sipdroid/media/RtpStreamReceiver.java Sat Jan 16 21:05:08 2010 +0100 @@ -219,12 +219,12 @@ android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_AUDIO); am = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE); cr = mContext.getContentResolver(); - saveSettings(); + //saveSettings(); Settings.System.putInt(cr, Settings.System.WIFI_SLEEP_POLICY,Settings.System.WIFI_SLEEP_POLICY_NEVER); - am.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,AudioManager.VIBRATE_SETTING_OFF); - am.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION,AudioManager.VIBRATE_SETTING_OFF); - oldvol = am.getStreamVolume(AudioManager.STREAM_MUSIC); + //am.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,AudioManager.VIBRATE_SETTING_OFF); + //am.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION,AudioManager.VIBRATE_SETTING_OFF); + //oldvol = am.getStreamVolume(AudioManager.STREAM_MUSIC); restoreVolume(); track = new AudioTrack(AudioManager.STREAM_MUSIC, sampling_rate, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, @@ -311,23 +311,23 @@ DataFramePool.getInstance().returnFrame(frame); //println("headroom " + headroom + " user " + user + " server " + server + " luser " + luser + " lserver " + lserver); if (user >= luser + sampling_rate) { - if (am.getMode() != speakermode) { + /*if (am.getMode() != speakermode) { am.setMode(speakermode); switch (speakermode) { case AudioManager.MODE_IN_CALL: - /*am.setStreamVolume(AudioManager.STREAM_RING,(int)( + am.setStreamVolume(AudioManager.STREAM_RING,(int)( am.getStreamMaxVolume(AudioManager.STREAM_RING)* com.mbdsys.sfrdroid.ui.Settings.getEarGain()), 0); track.setStereoVolume(AudioTrack.getMaxVolume()* com.mbdsys.sfrdroid.ui.Settings.getEarGain() ,AudioTrack.getMaxVolume()* - com.mbdsys.sfrdroid.ui.Settings.getEarGain());*/ + com.mbdsys.sfrdroid.ui.Settings.getEarGain()); //running = false; case AudioManager.MODE_NORMAL: track.setStereoVolume(AudioTrack.getMaxVolume(),AudioTrack.getMaxVolume()); //running = false; } - } + }*/ luser = user; } lserver = server; @@ -338,30 +338,9 @@ track.stop(); //if (Receiver.pstn_state == null || Receiver.pstn_state.equals("IDLE")) // am.setMode(AudioManager.MODE_NORMAL); - saveVolume(); - am.setStreamVolume(AudioManager.STREAM_MUSIC,oldvol,0); - restoreSettings(); - ToneGenerator tg = new ToneGenerator(AudioManager.STREAM_RING,ToneGenerator.MAX_VOLUME/4*3); - tg.startTone(ToneGenerator.TONE_PROP_PROMPT); - try { - Thread.sleep(500); - } catch (InterruptedException e) { - } - tg.stopTone(); - rtpSession = null; - track = null; - codec.cleanDecoder(codecCtx); - codec = null; - println("rtp receiver terminated"); - } - - public void endReceiver() { - track.stop(); - //if (Receiver.pstn_state == null || Receiver.pstn_state.equals("IDLE")) - // am.setMode(AudioManager.MODE_NORMAL); - saveVolume(); - am.setStreamVolume(AudioManager.STREAM_MUSIC,oldvol,0); - restoreSettings(); + //saveVolume(); + //am.setStreamVolume(AudioManager.STREAM_MUSIC,oldvol,0); + //restoreSettings(); ToneGenerator tg = new ToneGenerator(AudioManager.STREAM_RING,ToneGenerator.MAX_VOLUME/4*3); tg.startTone(ToneGenerator.TONE_PROP_PROMPT); try {