Initial support to softvolume.
This commit is contained in:
parent
c79ee4f210
commit
7c0cdb7036
8 changed files with 78 additions and 1 deletions
|
@ -1,6 +1,8 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
|
|
||||||
|
<string name="pref_audio_soft_volume_key">pref_audio_soft_volume_key</string>
|
||||||
|
|
||||||
<string name="pref_ipv6_key">pref_ipv6_key</string>
|
<string name="pref_ipv6_key">pref_ipv6_key</string>
|
||||||
|
|
||||||
<string name="pref_transport_udp_key">pref_transport_udp_key</string>
|
<string name="pref_transport_udp_key">pref_transport_udp_key</string>
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
|
|
||||||
|
<string name="pref_audio_soft_volume_title">Use software volume</string>
|
||||||
|
|
||||||
<string name="pref_ipv6_title">Use ipv6 instead of ipv4</string>
|
<string name="pref_ipv6_title">Use ipv6 instead of ipv4</string>
|
||||||
|
|
||||||
<string name="error_while_accepting_pending_call">Error while accepting pending call</string>
|
<string name="error_while_accepting_pending_call">Error while accepting pending call</string>
|
||||||
|
|
|
@ -115,6 +115,9 @@
|
||||||
<CheckBoxPreference android:key="@string/pref_debug_key"
|
<CheckBoxPreference android:key="@string/pref_debug_key"
|
||||||
android:title="@string/pref_debug" android:enabled="true"></CheckBoxPreference>
|
android:title="@string/pref_debug" android:enabled="true"></CheckBoxPreference>
|
||||||
|
|
||||||
|
<CheckBoxPreference android:key="@string/pref_audio_soft_volume_key"
|
||||||
|
android:title="@string/pref_audio_soft_volume_title" />
|
||||||
|
|
||||||
<PreferenceScreen android:title="@string/pref_network_title">
|
<PreferenceScreen android:title="@string/pref_network_title">
|
||||||
<CheckBoxPreference android:key="@string/pref_ipv6_key"
|
<CheckBoxPreference android:key="@string/pref_ipv6_key"
|
||||||
android:title="@string/pref_ipv6_title" android:defaultValue="false" />
|
android:title="@string/pref_ipv6_title" android:defaultValue="false" />
|
||||||
|
|
|
@ -45,6 +45,7 @@ import android.os.Bundle;
|
||||||
import android.os.PowerManager;
|
import android.os.PowerManager;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
import android.view.KeyEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.View.OnClickListener;
|
import android.view.View.OnClickListener;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
@ -84,6 +85,7 @@ public class DialerActivity extends Activity implements LinphoneGuiListener, New
|
||||||
private SharedPreferences mPref;
|
private SharedPreferences mPref;
|
||||||
private boolean useIncallActivity;
|
private boolean useIncallActivity;
|
||||||
private boolean useVideoActivity;
|
private boolean useVideoActivity;
|
||||||
|
private SoftVolume softVolume;
|
||||||
|
|
||||||
private static final String CURRENT_ADDRESS = "org.linphone.current-address";
|
private static final String CURRENT_ADDRESS = "org.linphone.current-address";
|
||||||
private static final String CURRENT_DISPLAYNAME = "org.linphone.current-displayname";
|
private static final String CURRENT_DISPLAYNAME = "org.linphone.current-displayname";
|
||||||
|
@ -102,6 +104,8 @@ public class DialerActivity extends Activity implements LinphoneGuiListener, New
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.dialer);
|
setContentView(R.layout.dialer);
|
||||||
|
|
||||||
|
softVolume = new SoftVolume(this);
|
||||||
|
|
||||||
useIncallActivity = getResources().getBoolean(R.bool.use_incall_activity);
|
useIncallActivity = getResources().getBoolean(R.bool.use_incall_activity);
|
||||||
useVideoActivity = getResources().getBoolean(R.bool.use_video_activity);
|
useVideoActivity = getResources().getBoolean(R.bool.use_video_activity);
|
||||||
// Don't use Linphone Manager in the onCreate as it takes time in LinphoneService to initialize it.
|
// Don't use Linphone Manager in the onCreate as it takes time in LinphoneService to initialize it.
|
||||||
|
@ -419,4 +423,9 @@ public class DialerActivity extends Activity implements LinphoneGuiListener, New
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||||||
|
if (softVolume.onKeyDown(keyCode, event)) return true;
|
||||||
|
return super.onKeyDown(keyCode, event);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -330,6 +330,9 @@ public final class LinphoneManager implements LinphoneCoreListener {
|
||||||
this, linphoneConfigFile, linphoneInitialConfigFile, null);
|
this, linphoneConfigFile, linphoneInitialConfigFile, null);
|
||||||
|
|
||||||
mLc.enableIpv6(mPref.getBoolean(getString(R.string.pref_ipv6_key), false));
|
mLc.enableIpv6(mPref.getBoolean(getString(R.string.pref_ipv6_key), false));
|
||||||
|
if (mPref.getBoolean(getString(R.string.pref_audio_soft_volume_key), false)) {
|
||||||
|
adjustSoftwareVolume(0); // Set maximum
|
||||||
|
}
|
||||||
|
|
||||||
mLc.setPlaybackGain(3);
|
mLc.setPlaybackGain(3);
|
||||||
mLc.setRing(null);
|
mLc.setRing(null);
|
||||||
|
@ -843,4 +846,9 @@ public final class LinphoneManager implements LinphoneCoreListener {
|
||||||
|
|
||||||
return mR.getString(R.string.unknown_incoming_call_name);
|
return mR.getString(R.string.unknown_incoming_call_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void adjustSoftwareVolume(int i) {
|
||||||
|
mLc.adjustSoftwareVolume(i);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
49
src/org/linphone/SoftVolume.java
Normal file
49
src/org/linphone/SoftVolume.java
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
/*
|
||||||
|
SoftVolume.java
|
||||||
|
Copyright (C) 2011 Belledonne Communications, Grenoble, France
|
||||||
|
|
||||||
|
This program 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 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program 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 program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
package org.linphone;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.preference.PreferenceManager;
|
||||||
|
import android.view.KeyEvent;
|
||||||
|
|
||||||
|
public class SoftVolume {
|
||||||
|
|
||||||
|
private Context c;
|
||||||
|
|
||||||
|
public SoftVolume(Context context) {
|
||||||
|
c = context.getApplicationContext();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||||||
|
if (!PreferenceManager.getDefaultSharedPreferences(c).getBoolean(
|
||||||
|
c.getString(R.string.pref_audio_soft_volume_key), false))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
|
||||||
|
LinphoneManager.getInstance().adjustSoftwareVolume(6);
|
||||||
|
return true;
|
||||||
|
} else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
|
||||||
|
LinphoneManager.getInstance().adjustSoftwareVolume(-6);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -94,6 +94,7 @@ class LinphoneCoreImpl implements LinphoneCore {
|
||||||
private native int getSignalingTransportPort(long nativePtr, int code);
|
private native int getSignalingTransportPort(long nativePtr, int code);
|
||||||
private native void setSignalingTransportPorts(long nativePtr, int udp, int tcp, int tls);
|
private native void setSignalingTransportPorts(long nativePtr, int udp, int tcp, int tls);
|
||||||
private native void enableIpv6(long nativePtr,boolean enable);
|
private native void enableIpv6(long nativePtr,boolean enable);
|
||||||
|
private native void adjustSoftwareVolume(long nativePtr,int db);
|
||||||
|
|
||||||
LinphoneCoreImpl(LinphoneCoreListener listener, File userConfig,File factoryConfig,Object userdata) throws IOException {
|
LinphoneCoreImpl(LinphoneCoreListener listener, File userConfig,File factoryConfig,Object userdata) throws IOException {
|
||||||
mListener=listener;
|
mListener=listener;
|
||||||
|
@ -454,5 +455,8 @@ class LinphoneCoreImpl implements LinphoneCore {
|
||||||
public void enableIpv6(boolean enable) {
|
public void enableIpv6(boolean enable) {
|
||||||
enableIpv6(nativePtr,enable);
|
enableIpv6(nativePtr,enable);
|
||||||
}
|
}
|
||||||
|
public void adjustSoftwareVolume(int i) {
|
||||||
|
adjustSoftwareVolume(nativePtr, i);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit f8713446f524ef2308dfc46d7e550c21ec44a08c
|
Subproject commit e8318e75125045566366707d10f1ca8d08536da6
|
Loading…
Reference in a new issue