Skip to content
Snippets Groups Projects
Commit b30e6dda authored by Adrien Béraud's avatar Adrien Béraud
Browse files

android: implement getHardwareAudioFormat signal

Change-Id: Ibe5fef93d4612089191501e5a01f0154d92f0a84
parent b00ed3f5
No related branches found
No related tags found
No related merge requests found
......@@ -115,8 +115,8 @@ public class Codec implements Parcelable {
+ "Channels: " + channels;
}
public CharSequence getPayload() {
return Long.toString(payload);
public Long getPayload() {
return payload;
}
public CharSequence getName() {
......
......@@ -73,14 +73,11 @@ public class ConfigurationManagerCallback extends ConfigurationCallback {
mService.sendBroadcast(intent);
}
public IntVect configGetHardwareAudioFormat(){
IntVect result = new IntVect();
@Override
public void getHardwareAudioFormat(IntVect ret){
OpenSlParams audioParams = OpenSlParams.createInstance(mService);
result.add(audioParams.getSampleRate());
result.add(audioParams.getBufferSize());
return result;
ret.add(audioParams.getSampleRate());
ret.add(audioParams.getBufferSize());
}
}
......@@ -59,7 +59,12 @@ public class SipService extends Service {
private Runnable pollEvents = new Runnable() {
@Override
public void run() {
Ringservice.pollEvents();
getExecutor().execute(new SipRunnable() {
@Override
protected void doRun() throws SameThreadException {
Ringservice.pollEvents();
}
});
handler.postDelayed(this, POLLING_TIMEOUT);
}
};
......@@ -69,7 +74,7 @@ public class SipService extends Service {
protected HistoryManager mHistoryManager;
protected MediaManager mMediaManager;
private HashMap<String, Conference> mConferences = new HashMap<String, Conference>();
private HashMap<String, Conference> mConferences = new HashMap<>();
private ConfigurationManagerCallback configurationCallback;
private CallManagerCallBack callManagerCallBack;
......@@ -201,12 +206,11 @@ public class SipService extends Service {
public void execute(Runnable task) {
// TODO: add wakelock
Message.obtain(SipServiceExecutor.this, 0/* don't care */, task).sendToTarget();
Log.w(TAG, "SenT!");
//Log.w(TAG, "SenT!");
}
@Override
public void handleMessage(Message msg) {
Log.w(TAG, "handleMessage");
if (msg.obj instanceof Runnable) {
executeInternal((Runnable) msg.obj);
} else {
......@@ -535,7 +539,7 @@ public class SipService extends Service {
// Hashmap runtime cast
@Override
public void setAccountDetails(final String accountId, final Map map) {
final StringMap swigmap = new StringMap(map);
final StringMap swigmap = StringMap.toSwig(map);
getExecutor().execute(new SipRunnable() {
@Override
......@@ -585,7 +589,7 @@ public class SipService extends Service {
}
}
final StringMap swigmap = new StringMap(map);
final StringMap swigmap = StringMap.toSwig(map);
AddAccount runInstance = new AddAccount(swigmap);
getExecutor().execute(runInstance);
......@@ -983,9 +987,8 @@ public class SipService extends Service {
for (int i = 0; i < payloads.size(); ++i) {
boolean isActive = false;
for (Codec co : results) {
if (co.getPayload().toString().contentEquals(String.valueOf(payloads.get(i))))
if (co.getPayload() == payloads.get(i))
isActive = true;
}
if (isActive)
continue;
......@@ -1178,7 +1181,7 @@ public class SipService extends Service {
Log.i(TAG, "SipService.setActiveAudioCodecList() thread running...");
UintVect list = new UintVect();
for (Object codec : codecs) {
list.add((Integer) codec);
list.add((Long) codec);
}
Ringservice.setActiveCodecList(accountID, list);
}
......
......@@ -54,7 +54,7 @@ public class SwigNativeConverter {
VectMap toReturn = new VectMap();
for (HashMap<String, String> aTodecode : todecode) {
toReturn.add(new StringMap(aTodecode));
toReturn.add(StringMap.toSwig(aTodecode));
}
return toReturn;
}
......@@ -76,7 +76,7 @@ public class SwigNativeConverter {
}
public static ArrayList<String> convertSwigToNative(StringVect vector) {
ArrayList<String> toReturn = new ArrayList<String>();
ArrayList<String> toReturn = new ArrayList<>();
for (int i = 0; i < vector.size(); ++i) {
toReturn.add(vector.get(i));
}
......
......@@ -49,7 +49,7 @@ public:
virtual void certificateStateChanged(const std::string& /*account_id*/, const std::string& /*certId*/, const std::string& /*state*/){}
virtual void errorAlert(int alert){}
virtual std::vector<int32_t> configGetHardwareAudioFormat(void){}
virtual void getHardwareAudioFormat(std::vector<int32_t>* /*params_ret*/){}
};
%}
......@@ -186,5 +186,5 @@ public:
virtual void certificateStateChanged(const std::string& /*account_id*/, const std::string& /*certId*/, const std::string& /*state*/){}
virtual void errorAlert(int alert){}
virtual std::vector<int32_t> configGetHardwareAudioFormat(void){}
virtual void getHardwareAudioFormat(std::vector<int32_t>* /*params_ret*/){}
};
\ No newline at end of file
......@@ -63,62 +63,64 @@
namespace std {
%typemap(javacode) map<string, string> %{
public $javaclassname(java.util.Map<String,String> in) {
for (java.util.Map.Entry<String, String> entry : in.entrySet()) {
this.set(entry.getKey(), entry.getValue());
}
}
public java.util.Map<String,String> toNative() {
java.util.Map<String,String> out = new java.util.HashMap<String,String>();
StringVect keys = keys();
for (String s : keys)
out.put(s, get(s));
return out;
}
%}
%extend map<string, string> {
std::vector<std::string> keys() const {
std::vector<std::string> k;
k.reserve($self->size());
for (const auto& i : *$self)
k.push_back(i.first);
return k;
}
%typemap(javacode) map<string, string> %{
public static $javaclassname toSwig(java.util.Map<String,String> in) {
$javaclassname n = new $javaclassname();
for (java.util.Map.Entry<String, String> entry : in.entrySet()) {
n.set(entry.getKey(), entry.getValue());
}
%template(StringMap) map<string, string>;
%typemap(javabase) vector<string> "java.util.AbstractList<String>"
%typemap(javainterface) vector<string> "java.util.RandomAccess"
%extend vector<string> {
value_type set(int i, const value_type& in) throw (std::out_of_range) {
const std::string old = $self->at(i);
$self->at(i) = in;
return old;
}
bool add(const value_type& in) {
$self->push_back(in);
return true;
}
int32_t size() const {
return $self->size();
}
return n;
}
public java.util.Map<String,String> toNative() {
java.util.Map<String,String> out = new java.util.HashMap<String,String>();
StringVect keys = keys();
for (String s : keys)
out.put(s, get(s));
return out;
}
%}
%extend map<string, string> {
std::vector<std::string> keys() const {
std::vector<std::string> k;
k.reserve($self->size());
for (const auto& i : *$self)
k.push_back(i.first);
return k;
}
%template(StringVect) vector<string>;
%typemap(javacode) vector< map<string,string> > %{
public java.util.ArrayList<java.util.Map<String, String>> toNative() {
java.util.ArrayList<java.util.Map<String, String>> out = new java.util.ArrayList<>();
for (int i = 0; i < size(); ++i)
out.add(get(i).toNative());
return out;
}
%}
%template(VectMap) vector< map<string,string> >;
%template(IntegerMap) map<string,int>;
%template(IntVect) vector<int32_t>;
%template(UintVect) vector<uint32_t>;
%template(Blob) vector<uint8_t>;
}
%template(StringMap) map<string, string>;
%typemap(javabase) vector<string> "java.util.AbstractList<String>"
%typemap(javainterface) vector<string> "java.util.RandomAccess"
%extend vector<string> {
value_type set(int i, const value_type& in) throw (std::out_of_range) {
const std::string old = $self->at(i);
$self->at(i) = in;
return old;
}
bool add(const value_type& in) {
$self->push_back(in);
return true;
}
int32_t size() const {
return $self->size();
}
}
%template(StringVect) vector<string>;
%typemap(javacode) vector< map<string,string> > %{
public java.util.ArrayList<java.util.Map<String, String>> toNative() {
java.util.ArrayList<java.util.Map<String, String>> out = new java.util.ArrayList<>();
for (int i = 0; i < size(); ++i)
out.add(get(i).toNative());
return out;
}
%}
%template(VectMap) vector< map<string,string> >;
%template(IntegerMap) map<string,int>;
%template(IntVect) vector<int32_t>;
%template(UintVect) vector<uint32_t>;
%template(Blob) vector<uint8_t>;
}
/* not parsed by SWIG but needed by generated C files */
......@@ -194,6 +196,7 @@ void init(ConfigurationCallback* confM, Callback* callM) {
exportable_callback<ConfigurationSignal::CertificatePathPinned>(bind(&ConfigurationCallback::certificatePathPinned, confM, _1, _2 )),
exportable_callback<ConfigurationSignal::CertificateExpired>(bind(&ConfigurationCallback::certificateExpired, confM, _1 )),
exportable_callback<ConfigurationSignal::CertificateStateChanged>(bind(&ConfigurationCallback::certificateStateChanged, confM, _1, _2, _3 )),
exportable_callback<ConfigurationSignal::GetHardwareAudioFormat>(bind(&ConfigurationCallback::getHardwareAudioFormat, confM, _1 )),
};
/*
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment