1 package org.linphone.core; 2 3 4 public class LinphoneEventImpl implements LinphoneEvent { 5 private Object mUserContext; 6 private long mNativePtr; 7 LinphoneEventImpl(long nativePtr)8 protected LinphoneEventImpl(long nativePtr){ 9 mNativePtr=nativePtr; 10 } 11 getEventName(long nativeptr)12 private native String getEventName(long nativeptr); 13 @Override getEventName()14 public synchronized String getEventName() { 15 return getEventName(mNativePtr); 16 } 17 acceptSubscription(long nativeptr)18 private native int acceptSubscription(long nativeptr); 19 @Override acceptSubscription()20 public synchronized void acceptSubscription() { 21 synchronized(getCore()){ 22 acceptSubscription(mNativePtr); 23 } 24 } 25 denySubscription(long nativeptr, int reason)26 private native int denySubscription(long nativeptr, int reason); 27 @Override denySubscription(Reason reason)28 public synchronized void denySubscription(Reason reason) { 29 synchronized(getCore()){ 30 denySubscription(mNativePtr,reason.mValue); 31 } 32 } 33 notify(long nativeptr, String type, String subtype, byte data[], String encoding)34 private native int notify(long nativeptr, String type, String subtype, byte data[], String encoding); 35 @Override notify(LinphoneContent content)36 public void notify(LinphoneContent content) { 37 synchronized(getCore()){ 38 notify(mNativePtr,content.getType(),content.getSubtype(),content.getData(),content.getEncoding()); 39 } 40 } 41 updateSubscribe(long nativePtr, String type, String subtype, byte data[], String encoding)42 private native int updateSubscribe(long nativePtr, String type, String subtype, byte data[], String encoding); 43 @Override updateSubscribe(LinphoneContent content)44 public void updateSubscribe(LinphoneContent content) { 45 synchronized(getCore()){ 46 updateSubscribe(mNativePtr,content.getType(), content.getSubtype(),content.getData(),content.getEncoding()); 47 } 48 } 49 updatePublish(long nativePtr, String type, String subtype, byte data[], String encoding)50 private native int updatePublish(long nativePtr, String type, String subtype, byte data[], String encoding); 51 @Override updatePublish(LinphoneContent content)52 public void updatePublish(LinphoneContent content) { 53 synchronized(getCore()){ 54 updatePublish(mNativePtr,content.getType(), content.getSubtype(),content.getData(),content.getEncoding()); 55 } 56 } 57 terminate(long nativePtr)58 private native int terminate(long nativePtr); 59 @Override terminate()60 public void terminate() { 61 synchronized(getCore()){ 62 terminate(mNativePtr); 63 } 64 } 65 getReason(long nativePtr)66 private native int getReason(long nativePtr); 67 @Override getReason()68 public synchronized Reason getReason() { 69 return Reason.fromInt(getReason(mNativePtr)); 70 } 71 72 @Override setUserContext(Object obj)73 public synchronized void setUserContext(Object obj) { 74 mUserContext=obj; 75 } 76 77 @Override getUserContext()78 public synchronized Object getUserContext() { 79 return mUserContext; 80 } 81 getSubscriptionDir(long nativeptr)82 private native int getSubscriptionDir(long nativeptr); 83 @Override getSubscriptionDir()84 public synchronized SubscriptionDir getSubscriptionDir() { 85 return SubscriptionDir.fromInt(getSubscriptionDir(mNativePtr)); 86 } 87 getSubscriptionState(long nativeptr)88 private native int getSubscriptionState(long nativeptr); 89 @Override getSubscriptionState()90 public synchronized SubscriptionState getSubscriptionState() { 91 try { 92 return SubscriptionState.fromInt(getSubscriptionState(mNativePtr)); 93 } catch (LinphoneCoreException e) { 94 // TODO Auto-generated catch block 95 e.printStackTrace(); 96 } 97 return SubscriptionState.Error; 98 } unref(long nativeptr)99 private native void unref(long nativeptr); finalize()100 protected void finalize(){ 101 unref(mNativePtr); 102 } 103 addCustomHeader(long ptr, String name, String value)104 private native void addCustomHeader(long ptr, String name, String value); 105 @Override addCustomHeader(String name, String value)106 public synchronized void addCustomHeader(String name, String value) { 107 addCustomHeader(mNativePtr, name, value); 108 } 109 getCustomHeader(long ptr, String name)110 private native String getCustomHeader(long ptr, String name); 111 @Override getCustomHeader(String name)112 public synchronized String getCustomHeader(String name) { 113 return getCustomHeader(mNativePtr, name); 114 } 115 sendSubscribe(long ptr, String type, String subtype, byte data [], String encoding)116 private native void sendSubscribe(long ptr, String type, String subtype, byte data [], String encoding); 117 @Override sendSubscribe(LinphoneContent body)118 public void sendSubscribe(LinphoneContent body) { 119 synchronized(getCore()){ 120 if (body != null) 121 sendSubscribe(mNativePtr, body.getType(), body.getSubtype(), body.getData(), body.getEncoding()); 122 else 123 sendSubscribe(mNativePtr, null, null, null, null); 124 } 125 } 126 sendPublish(long ptr, String type, String subtype, byte data [], String encoding)127 private native void sendPublish(long ptr, String type, String subtype, byte data [], String encoding); 128 @Override sendPublish(LinphoneContent body)129 public void sendPublish(LinphoneContent body) { 130 synchronized(getCore()){ 131 if (body != null) 132 sendPublish(mNativePtr, body.getType(), body.getSubtype(), body.getData(), body.getEncoding()); 133 else 134 sendPublish(mNativePtr, null, null, null, null); 135 } 136 } getErrorInfo(long nativePtr)137 private native long getErrorInfo(long nativePtr); 138 @Override getErrorInfo()139 public synchronized ErrorInfo getErrorInfo() { 140 return new ErrorInfoImpl(getErrorInfo(mNativePtr)); 141 } 142 getCore(long nativePtr)143 private native Object getCore(long nativePtr); 144 @Override getCore()145 public synchronized LinphoneCore getCore() { 146 return (LinphoneCore)getCore(mNativePtr); 147 } 148 149 } 150