Skip to content

Commit 0a6ae5e

Browse files
committed
Video Call
1 parent 7d21a48 commit 0a6ae5e

26 files changed

+404
-13
lines changed

Diff for: .gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
build/

Diff for: dist/ChitChat.jar

16 KB
Binary file not shown.

Diff for: dist/lib/com.xuggle.utils-1.22.jar

55.9 KB
Binary file not shown.

Diff for: dist/lib/osgi-over-slf4j-1.7.22.jar

5.35 KB
Binary file not shown.

Diff for: dist/lib/slf4j-api-1.7.22.jar

40.1 KB
Binary file not shown.

Diff for: dist/lib/slf4j-simple-1.7.22.jar

10.8 KB
Binary file not shown.

Diff for: dist/lib/xuggle-xuggler-5.4.jar

38.5 MB
Binary file not shown.
Binary file not shown.

Diff for: lib/com.xuggle.utils-1.22.jar

55.9 KB
Binary file not shown.

Diff for: lib/nblibraries.properties

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
libs.CopyLibs.classpath=\
2+
${base}/CopyLibs/org-netbeans-modules-java-j2seproject-copylibstask.jar
3+
libs.CopyLibs.displayName=CopyLibs Task
4+
libs.CopyLibs.prop-version=2.0

Diff for: lib/osgi-over-slf4j-1.7.22.jar

5.35 KB
Binary file not shown.

Diff for: lib/slf4j-api-1.7.22.jar

40.1 KB
Binary file not shown.

Diff for: lib/slf4j-simple-1.7.22.jar

10.8 KB
Binary file not shown.

Diff for: lib/xuggle-xuggler-5.4.jar

38.5 MB
Binary file not shown.

Diff for: nbproject/build-impl.xml

+30-5
Original file line numberDiff line numberDiff line change
@@ -42,18 +42,43 @@ is divided into following sections:
4242
<property file="nbproject/private/configs/${config}.properties"/>
4343
<property file="nbproject/private/private.properties"/>
4444
</target>
45-
<target depends="-pre-init,-init-private" name="-init-user">
45+
<target name="-pre-init-libraries">
46+
<property location="lib/nblibraries.properties" name="libraries.path"/>
47+
<dirname file="${libraries.path}" property="libraries.dir.nativedirsep"/>
48+
<pathconvert dirsep="/" property="libraries.dir">
49+
<path path="${libraries.dir.nativedirsep}"/>
50+
</pathconvert>
51+
<basename file="${libraries.path}" property="libraries.basename" suffix=".properties"/>
52+
<available file="${libraries.dir}/${libraries.basename}-private.properties" property="private.properties.available"/>
53+
</target>
54+
<target depends="-pre-init-libraries" if="private.properties.available" name="-init-private-libraries">
55+
<loadproperties encoding="ISO-8859-1" srcfile="${libraries.dir}/${libraries.basename}-private.properties">
56+
<filterchain>
57+
<replacestring from="$${base}" to="${libraries.dir}"/>
58+
<escapeunicode/>
59+
</filterchain>
60+
</loadproperties>
61+
</target>
62+
<target depends="-pre-init,-init-private,-init-private-libraries" name="-init-libraries">
63+
<loadproperties encoding="ISO-8859-1" srcfile="${libraries.path}">
64+
<filterchain>
65+
<replacestring from="$${base}" to="${libraries.dir}"/>
66+
<escapeunicode/>
67+
</filterchain>
68+
</loadproperties>
69+
</target>
70+
<target depends="-pre-init,-init-private,-init-libraries" name="-init-user">
4671
<property file="${user.properties.file}"/>
4772
<!-- The two properties below are usually overridden -->
4873
<!-- by the active platform. Just a fallback. -->
4974
<property name="default.javac.source" value="1.4"/>
5075
<property name="default.javac.target" value="1.4"/>
5176
</target>
52-
<target depends="-pre-init,-init-private,-init-user" name="-init-project">
77+
<target depends="-pre-init,-init-private,-init-libraries,-init-user" name="-init-project">
5378
<property file="nbproject/configs/${config}.properties"/>
5479
<property file="nbproject/project.properties"/>
5580
</target>
56-
<target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init">
81+
<target depends="-pre-init,-init-private,-init-libraries,-init-user,-init-project,-init-macrodef-property" name="-do-init">
5782
<property name="platform.java" value="${java.home}/bin/java"/>
5883
<available file="${manifest.file}" property="manifest.available"/>
5984
<condition property="splashscreen.available">
@@ -228,7 +253,7 @@ is divided into following sections:
228253
<!-- Empty placeholder for easier customization. -->
229254
<!-- You can override this target in the ../build.xml file. -->
230255
</target>
231-
<target depends="-pre-init,-init-private,-init-user,-init-project,-do-init" name="-init-check">
256+
<target depends="-pre-init,-init-private,-init-libraries,-init-user,-init-project,-do-init" name="-init-check">
232257
<fail unless="src.dir">Must set src.dir</fail>
233258
<fail unless="test.src.dir">Must set test.src.dir</fail>
234259
<fail unless="build.dir">Must set build.dir</fail>
@@ -881,7 +906,7 @@ is divided into following sections:
881906
<target depends="-init-ap-cmdline-properties,-init-ap-cmdline-supported" name="-init-ap-cmdline">
882907
<property name="ap.cmd.line.internal" value=""/>
883908
</target>
884-
<target depends="-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-test,-init-macrodef-test-debug,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar,-init-ap-cmdline" name="init"/>
909+
<target depends="-pre-init,-init-private,-init-libraries,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-test,-init-macrodef-test-debug,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar,-init-ap-cmdline" name="init"/>
885910
<!--
886911
===================
887912
COMPILATION SECTION

Diff for: nbproject/genfiles.properties

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
build.xml.data.CRC32=2eb19e2c
1+
build.xml.data.CRC32=a07c38d8
22
build.xml.script.CRC32=e46984ac
33
build.xml.stylesheet.CRC32=8064a381@1.79.1.48
44
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
55
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
6-
nbproject/build-impl.xml.data.CRC32=2eb19e2c
7-
nbproject/build-impl.xml.script.CRC32=072075ab
6+
nbproject/build-impl.xml.data.CRC32=a07c38d8
7+
nbproject/build-impl.xml.script.CRC32=a7f8cf5d
88
nbproject/build-impl.xml.stylesheet.CRC32=05530350@1.79.1.48

Diff for: nbproject/private/config.properties

Whitespace-only changes.

Diff for: nbproject/private/private.properties

+4
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,6 @@
11
compile.on.save=true
2+
do.depend=false
3+
do.jar=true
4+
javac.debug=true
5+
javadoc.preview=true
26
user.properties.file=/home/scopeinfinity/.netbeans/8.1/build.properties

Diff for: nbproject/private/private.xml

+2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
<file>file:/home/scopeinfinity/CS348/ChitChat/src/chitchat/ChatController.java</file>
88
<file>file:/home/scopeinfinity/CS348/ChitChat/src/chitchat/P2PChat.java</file>
99
<file>file:/home/scopeinfinity/CS348/ChitChat/src/chitchat/FriendList.java</file>
10+
<file>file:/home/scopeinfinity/CS348/ChitChat/src/chitchat/VideoCall.java</file>
11+
<file>file:/home/scopeinfinity/CS348/ChitChat/nbproject/build-impl.xml</file>
1012
<file>file:/home/scopeinfinity/CS348/ChitChat/src/chitchat/Server.java</file>
1113
<file>file:/home/scopeinfinity/CS348/ChitChat/src/chitchat/AuthServer.java</file>
1214
<file>file:/home/scopeinfinity/CS348/ChitChat/src/chitchat/AuthData.java</file>

Diff for: nbproject/project.properties

+34-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
annotation.processing.enabled=true
22
annotation.processing.enabled.in.editor=false
3-
annotation.processing.processor.options=
43
annotation.processing.processors.list=
54
annotation.processing.run.all.processors=true
65
annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
6+
application.title=ChitChat
7+
application.vendor=scopeinfinity
8+
auxiliary.org-netbeans-spi-editor-hints-projects.perProjectHintSettingsFile=nbproject/cfg_hints.xml
79
build.classes.dir=${build.dir}/classes
810
build.classes.excludes=**/*.java,**/*.form
911
# This directory is removed when the project is cleaned:
@@ -26,10 +28,23 @@ dist.archive.excludes=
2628
dist.dir=dist
2729
dist.jar=${dist.dir}/ChitChat.jar
2830
dist.javadoc.dir=${dist.dir}/javadoc
31+
endorsed.classpath=
2932
excludes=
33+
file.reference.com.xuggle.utils-1.22.jar=lib/com.xuggle.utils-1.22.jar
34+
file.reference.osgi-over-slf4j-1.7.22.jar=lib/osgi-over-slf4j-1.7.22.jar
35+
file.reference.slf4j-api-1.7.22.jar=lib/slf4j-api-1.7.22.jar
36+
file.reference.slf4j-simple-1.7.22.jar=lib/slf4j-simple-1.7.22.jar
37+
file.reference.xuggle-xuggler-5.4.jar=lib/xuggle-xuggler-5.4.jar
3038
includes=**
39+
jar.archive.disabled=${jnlp.enabled}
3140
jar.compress=false
32-
javac.classpath=
41+
jar.index=${jnlp.enabled}
42+
javac.classpath=\
43+
${file.reference.com.xuggle.utils-1.22.jar}:\
44+
${file.reference.osgi-over-slf4j-1.7.22.jar}:\
45+
${file.reference.slf4j-api-1.7.22.jar}:\
46+
${file.reference.xuggle-xuggler-5.4.jar}:\
47+
${file.reference.slf4j-simple-1.7.22.jar}
3348
# Space-separated list of extra javac options
3449
javac.compilerargs=
3550
javac.deprecation=false
@@ -54,7 +69,24 @@ javadoc.splitindex=true
5469
javadoc.use=true
5570
javadoc.version=false
5671
javadoc.windowtitle=
72+
jnlp.codebase.type=no.codebase
73+
jnlp.descriptor=application
74+
jnlp.enabled=false
75+
jnlp.mixed.code=default
76+
jnlp.offline-allowed=false
77+
jnlp.signed=false
78+
jnlp.signing=
79+
jnlp.signing.alias=
80+
jnlp.signing.keystore=
5781
main.class=chitchat.Login
82+
# Optional override of default Application-Library-Allowable-Codebase attribute identifying the locations where your signed RIA is expected to be found.
83+
manifest.custom.application.library.allowable.codebase=
84+
# Optional override of default Caller-Allowable-Codebase attribute identifying the domains from which JavaScript code can make calls to your RIA without security prompts.
85+
manifest.custom.caller.allowable.codebase=
86+
# Optional override of default Codebase manifest attribute, use to prevent RIAs from being repurposed
87+
manifest.custom.codebase=
88+
# Optional override of default Permissions manifest attribute (supported values: sandbox, all-permissions)
89+
manifest.custom.permissions=
5890
manifest.file=manifest.mf
5991
meta.inf.dir=${src.dir}/META-INF
6092
mkdist.disabled=false

Diff for: nbproject/project.xml

+3
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,8 @@
1111
<root id="test.src.dir"/>
1212
</test-roots>
1313
</data>
14+
<libraries xmlns="http://www.netbeans.org/ns/ant-project-libraries/1">
15+
<definitions>lib/nblibraries.properties</definitions>
16+
</libraries>
1417
</configuration>
1518
</project>

Diff for: src/chitchat/ChitChat.java

+28
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@
1111

1212
public class ChitChat implements Controller {
1313
private String myname;
14+
private VideoCall videoCall;
1415

1516
public ChitChat(String myname) {
1617
this.myname = myname;
18+
videoCall = new VideoCall(myname);
1719
}
1820

1921
public static ChitChat start(String myname) {
@@ -27,9 +29,20 @@ public void run() {
2729
return chat;
2830

2931
}
32+
public static boolean isReachable(String IP) {
33+
try{
34+
return InetAddress.getByName(IP).isReachable(2000);
35+
}catch(Exception e) {
36+
return false;
37+
}
38+
}
3039

3140
public void addClient(String IP) {
3241
System.out.println("Attempt to Connect to "+IP);
42+
if(!isReachable(IP)) {
43+
JOptionPane.showMessageDialog(null, "User Offline");
44+
return;
45+
}
3346
Socket socket = connectTo(IP);
3447
if(socket==null) {
3548
JOptionPane.showMessageDialog(null, "Failed to Connect");
@@ -60,6 +73,21 @@ private static Socket connectTo(String IP) {
6073

6174
}
6275

76+
public void callAsVideo(String IP) {
77+
if(!isReachable(IP)) {
78+
JOptionPane.showMessageDialog(null, "User Offline");
79+
return;
80+
}
81+
82+
new Thread("Call Client"){
83+
@Override
84+
public void run() {
85+
videoCall.connectToCall(IP);
86+
}
87+
88+
}.start();
89+
}
90+
6391
@Override
6492
public void addP2P(Socket socket, String myname) {
6593
P2PChat chat = new P2PChat(socket,myname);

Diff for: src/chitchat/FriendList.java

+7-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import java.awt.event.ItemListener;
1010
import java.util.ArrayList;
1111
import javax.swing.JOptionPane;
12+
import static javax.swing.JOptionPane.INFORMATION_MESSAGE;
1213

1314
/**
1415
*
@@ -30,7 +31,12 @@ public FriendList(String myusername,String mypwd) {
3031
list1.addItemListener(new ItemListener() {
3132
@Override
3233
public void itemStateChanged(ItemEvent e) {
33-
cc.addClient(ips.get((int)e.getItem()));
34+
String ip =ips.get((int)e.getItem());
35+
int type = JOptionPane.showConfirmDialog(null, "Do you want to video call","Video Call", JOptionPane.YES_NO_OPTION);
36+
if(type==0)
37+
cc.callAsVideo(ip);
38+
else
39+
cc.addClient(ip);
3440
}
3541
});
3642
updateFriendList();

Diff for: src/chitchat/UI.form

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<Form version="1.3" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
44
<Properties>
5-
<Property name="defaultCloseOperation" type="int" value="3"/>
5+
<Property name="defaultCloseOperation" type="int" value="2"/>
66
</Properties>
77
<SyntheticProperties>
88
<SyntheticProperty name="formSizePolicy" type="int" value="1"/>

Diff for: src/chitchat/UI.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ private void initComponents() {
4040
jLabel1 = new javax.swing.JLabel();
4141
jLabel2 = new javax.swing.JLabel();
4242

43-
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
43+
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
4444

4545
jTextField1.setText("Hi!!");
4646
jTextField1.addActionListener(new java.awt.event.ActionListener() {
@@ -109,6 +109,7 @@ private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-F
109109

110110
}//GEN-LAST:event_jTextField1ActionPerformed
111111

112+
112113
private void jTextField1KeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jTextField1KeyReleased
113114
// TODO add your handling code here:
114115
if(evt.getKeyCode() == KeyEvent.VK_ENTER) {

0 commit comments

Comments
 (0)