incubator-bluesky-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From p...@apache.org
Subject svn commit: r819898 [1/5] - in /incubator/bluesky/trunk/RealClass/Student-1.0: ./ src/ src/pic/
Date Tue, 29 Sep 2009 12:17:19 GMT
Author: ping
Date: Tue Sep 29 12:17:17 2009
New Revision: 819898

URL: http://svn.apache.org/viewvc?rev=819898&view=rev
Log:
add Student-1.0 source code
commiter:ping

Added:
    incubator/bluesky/trunk/RealClass/Student-1.0/
    incubator/bluesky/trunk/RealClass/Student-1.0/src/
    incubator/bluesky/trunk/RealClass/Student-1.0/src/Makefile
    incubator/bluesky/trunk/RealClass/Student-1.0/src/Makefile.am
    incubator/bluesky/trunk/RealClass/Student-1.0/src/Makefile.in
    incubator/bluesky/trunk/RealClass/Student-1.0/src/Student   (with props)
    incubator/bluesky/trunk/RealClass/Student-1.0/src/Student.cc
    incubator/bluesky/trunk/RealClass/Student-1.0/src/asyncsocketex.cpp
    incubator/bluesky/trunk/RealClass/Student-1.0/src/asyncsocketex.h
    incubator/bluesky/trunk/RealClass/Student-1.0/src/callbacks.cc
    incubator/bluesky/trunk/RealClass/Student-1.0/src/callbacks.hh
    incubator/bluesky/trunk/RealClass/Student-1.0/src/client_communicate.cc
    incubator/bluesky/trunk/RealClass/Student-1.0/src/client_communicate.h
    incubator/bluesky/trunk/RealClass/Student-1.0/src/clientsocket.cpp
    incubator/bluesky/trunk/RealClass/Student-1.0/src/clientsocket.h
    incubator/bluesky/trunk/RealClass/Student-1.0/src/en_de_audio.cpp
    incubator/bluesky/trunk/RealClass/Student-1.0/src/en_de_audio.h
    incubator/bluesky/trunk/RealClass/Student-1.0/src/en_de_common.cpp
    incubator/bluesky/trunk/RealClass/Student-1.0/src/en_de_common.h
    incubator/bluesky/trunk/RealClass/Student-1.0/src/en_de_screen.cpp
    incubator/bluesky/trunk/RealClass/Student-1.0/src/en_de_screen.h
    incubator/bluesky/trunk/RealClass/Student-1.0/src/en_de_sendthread.cpp
    incubator/bluesky/trunk/RealClass/Student-1.0/src/en_de_sendthread.h
    incubator/bluesky/trunk/RealClass/Student-1.0/src/en_de_video.cpp
    incubator/bluesky/trunk/RealClass/Student-1.0/src/en_de_video.h
    incubator/bluesky/trunk/RealClass/Student-1.0/src/error.cc
    incubator/bluesky/trunk/RealClass/Student-1.0/src/error.h
    incubator/bluesky/trunk/RealClass/Student-1.0/src/errormessage.h
    incubator/bluesky/trunk/RealClass/Student-1.0/src/fecrtpsession.cpp
    incubator/bluesky/trunk/RealClass/Student-1.0/src/fecrtpsession.h
    incubator/bluesky/trunk/RealClass/Student-1.0/src/interface.cc
    incubator/bluesky/trunk/RealClass/Student-1.0/src/interface.h
    incubator/bluesky/trunk/RealClass/Student-1.0/src/ncclient.hh
    incubator/bluesky/trunk/RealClass/Student-1.0/src/pic/
    incubator/bluesky/trunk/RealClass/Student-1.0/src/pic/screen.bmp   (with props)
    incubator/bluesky/trunk/RealClass/Student-1.0/src/pic/teacher2.bmp   (with props)
    incubator/bluesky/trunk/RealClass/Student-1.0/src/singlecomm.cpp
    incubator/bluesky/trunk/RealClass/Student-1.0/src/singlecomm.h
    incubator/bluesky/trunk/RealClass/Student-1.0/src/stdafx.h
    incubator/bluesky/trunk/RealClass/Student-1.0/src/support.cc
    incubator/bluesky/trunk/RealClass/Student-1.0/src/support.hh
    incubator/bluesky/trunk/RealClass/Student-1.0/src/tcpcomm.cpp
    incubator/bluesky/trunk/RealClass/Student-1.0/src/tcpcomm.h
    incubator/bluesky/trunk/RealClass/Student-1.0/src/tcppollthread.cpp
    incubator/bluesky/trunk/RealClass/Student-1.0/src/tcppollthread.h

Added: incubator/bluesky/trunk/RealClass/Student-1.0/src/Makefile
URL: http://svn.apache.org/viewvc/incubator/bluesky/trunk/RealClass/Student-1.0/src/Makefile?rev=819898&view=auto
==============================================================================
--- incubator/bluesky/trunk/RealClass/Student-1.0/src/Makefile (added)
+++ incubator/bluesky/trunk/RealClass/Student-1.0/src/Makefile Tue Sep 29 12:17:17 2009
@@ -0,0 +1,487 @@
+# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = /bin/bash
+
+srcdir = .
+top_srcdir = ..
+
+prefix = /usr/local
+exec_prefix = ${prefix}
+
+bindir = ${exec_prefix}/bin
+sbindir = ${exec_prefix}/sbin
+libexecdir = ${exec_prefix}/libexec
+datadir = ${prefix}/share
+sysconfdir = ${prefix}/etc
+sharedstatedir = ${prefix}/com
+localstatedir = ${prefix}/var
+libdir = ${exec_prefix}/lib
+infodir = ${prefix}/share/info
+mandir = ${prefix}/share/man
+includedir = ${prefix}/include
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/Student
+pkglibdir = $(libdir)/Student
+pkgincludedir = $(includedir)/Student
+
+top_builddir = ..
+
+ACLOCAL = /root/Desktop/Student-1.0/missing aclocal-1.4
+AUTOCONF = autoconf
+AUTOMAKE = /root/Desktop/Student-1.0/missing automake-1.4
+AUTOHEADER = autoheader
+
+INSTALL = /usr/bin/install -c
+INSTALL_PROGRAM = ${INSTALL} $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_SCRIPT = ${INSTALL}
+transform = s,x,x,
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = 
+host_triplet = i686-pc-linux-gnu
+AR = ar
+AS = @AS@
+BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = gcc
+CPP = gcc -E
+CXX = g++
+CXXCPP = g++ -E
+DATADIRNAME = @DATADIRNAME@
+DLLTOOL = @DLLTOOL@
+ECHO = echo
+EGREP = /bin/grep -E
+EXEEXT = 
+F77 = 
+GCJ = @GCJ@
+GCJFLAGS = @GCJFLAGS@
+GENCAT = @GENCAT@
+GETTEXT_PACKAGE = Student
+GLIBC2 = @GLIBC2@
+GLIBC21 = @GLIBC21@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+HAVE_ASPRINTF = @HAVE_ASPRINTF@
+HAVE_LIB = @HAVE_LIB@
+HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@
+HAVE_SNPRINTF = @HAVE_SNPRINTF@
+HAVE_WPRINTF = @HAVE_WPRINTF@
+INSTOBJEXT = @INSTOBJEXT@
+INTLBISON = @INTLBISON@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+LIB = @LIB@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LN_S = ln -s
+LTLIB = @LTLIB@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+MAINT = #
+MAKEINFO = /root/Desktop/Student-1.0/missing makeinfo
+MKINSTALLDIRS = @MKINSTALLDIRS@
+NO_PREFIX_PACKAGE_DATA_DIR = share
+NO_PREFIX_PACKAGE_DOC_DIR = doc/Student
+NO_PREFIX_PACKAGE_HELP_DIR = share/help
+NO_PREFIX_PACKAGE_MENU_DIR = share
+NO_PREFIX_PACKAGE_PIXMAPS_DIR = share/pixmaps
+OBJDUMP = @OBJDUMP@
+OBJEXT = o
+PACKAGE = Student
+PACKAGE_CFLAGS = -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/pixman-1  
+PACKAGE_DATA_DIR = /usr/local/share
+PACKAGE_DOC_DIR = /usr/local/doc/Student
+PACKAGE_HELP_DIR = /usr/local/share/help
+PACKAGE_LIBS = -lgtk-x11-2.0 -latk-1.0 -lgdk-x11-2.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0  
+PACKAGE_MENU_DIR = /usr/local/share
+PACKAGE_PIXMAPS_DIR = /usr/local/share/pixmaps
+PKG_CONFIG = /usr/bin/pkg-config
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = ranlib
+RC = @RC@
+STRIP = strip
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = 1.0
+
+INCLUDES =  	$(PACKAGE_CFLAGS) -I/usr/include/jrtplib3 -I/usr/include/jthread
+
+
+AM_CFLAGS =  	 -Wall 	 -g
+
+
+AM_CXXFLAGS =  	 -Wall 	 -g
+
+
+bin_PROGRAMS = Student
+
+Student_SOURCES =  	asyncsocketex.cpp 	asyncsocketex.h 	callbacks.cc 	callbacks.hh 	client_communicate.cc 	client_communicate.h 	clientsocket.cpp 	clientsocket.h 	en_de_audio.cpp 	en_de_audio.h 	en_de_common.cpp 	en_de_common.h 	en_de_screen.cpp 	en_de_screen.h 	en_de_sendthread.cpp 	en_de_sendthread.h 	en_de_video.cpp 	en_de_video.h 	errormessage.h 	fecrtpsession.cpp 	fecrtpsession.h 	interface.cc 	interface.h 	Student.cc 	ncclient.hh 	singlecomm.cpp 	singlecomm.h 	stdafx.h 	support.cc 	support.hh 	tcpcomm.cpp 	tcpcomm.h 	tcppollthread.cpp 	tcppollthread.h 	error.cc 	error.h 
+
+
+Student_LDFLAGS = 
+
+Student_LDADD =  	$(PACKAGE_LIBS) -lSDL -lavcodec -lavformat -ljrtp -ljthread
+
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../config.h
+CONFIG_CLEAN_FILES = 
+bin_PROGRAMS =  Student$(EXEEXT)
+PROGRAMS =  $(bin_PROGRAMS)
+
+
+DEFS = -DHAVE_CONFIG_H -I. -I$(srcdir) -I..
+CPPFLAGS = 
+LDFLAGS = 
+LIBS = 
+Student_OBJECTS =  asyncsocketex.$(OBJEXT) callbacks.$(OBJEXT) \
+client_communicate.$(OBJEXT) clientsocket.$(OBJEXT) \
+en_de_audio.$(OBJEXT) en_de_common.$(OBJEXT) en_de_screen.$(OBJEXT) \
+en_de_sendthread.$(OBJEXT) en_de_video.$(OBJEXT) \
+fecrtpsession.$(OBJEXT) interface.$(OBJEXT) Student.$(OBJEXT) \
+singlecomm.$(OBJEXT) support.$(OBJEXT) tcpcomm.$(OBJEXT) \
+tcppollthread.$(OBJEXT) error.$(OBJEXT)
+Student_DEPENDENCIES = 
+CXXFLAGS = -g -O2
+CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@
+CFLAGS = -g -O2
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+DIST_COMMON =  Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+DEP_FILES =  .deps/asyncsocketex.P .deps/callbacks.P \
+.deps/client_communicate.P .deps/clientsocket.P .deps/en_de_audio.P \
+.deps/en_de_common.P .deps/en_de_screen.P .deps/en_de_sendthread.P \
+.deps/en_de_video.P .deps/error.P .deps/fecrtpsession.P \
+.deps/interface.P .deps/language_test.P .deps/Student.P \
+.deps/singlecomm.P .deps/support.P .deps/tcpcomm.P \
+.deps/tcppollthread.P
+SOURCES = $(Student_SOURCES)
+OBJECTS = $(Student_OBJECTS)
+
+all: all-redirect
+.SUFFIXES:
+.SUFFIXES: .S .c .cc .cpp .lo .o .obj .s
+$(srcdir)/Makefile.in: # Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+mostlyclean-binPROGRAMS:
+
+clean-binPROGRAMS:
+	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+
+distclean-binPROGRAMS:
+
+maintainer-clean-binPROGRAMS:
+
+install-binPROGRAMS: $(bin_PROGRAMS)
+	@$(NORMAL_INSTALL)
+	$(mkinstalldirs) $(DESTDIR)$(bindir)
+	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+	  if test -f $$p; then \
+	    echo " $(LIBTOOL)  --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
+	    $(LIBTOOL)  --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+	  else :; fi; \
+	done
+
+uninstall-binPROGRAMS:
+	@$(NORMAL_UNINSTALL)
+	list='$(bin_PROGRAMS)'; for p in $$list; do \
+	  rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+	done
+
+# FIXME: We should only use cygpath when building on Windows,
+# and only if it is available.
+.c.obj:
+	$(COMPILE) -c `cygpath -w $<`
+
+.s.o:
+	$(COMPILE) -c $<
+
+.S.o:
+	$(COMPILE) -c $<
+
+mostlyclean-compile:
+	-rm -f *.o core *.core
+	-rm -f *.$(OBJEXT)
+
+clean-compile:
+
+distclean-compile:
+	-rm -f *.tab.c
+
+maintainer-clean-compile:
+
+.s.lo:
+	$(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+.S.lo:
+	$(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+
+maintainer-clean-libtool:
+
+Student$(EXEEXT): $(Student_OBJECTS) $(Student_DEPENDENCIES)
+	@rm -f Student$(EXEEXT)
+	$(CXXLINK) $(Student_LDFLAGS) $(Student_OBJECTS) $(Student_LDADD) $(LIBS)
+.cc.o:
+	$(CXXCOMPILE) -c $<
+.cc.obj:
+	$(CXXCOMPILE) -c `cygpath -w $<`
+.cc.lo:
+	$(LTCXXCOMPILE) -c $<
+.cpp.o:
+	$(CXXCOMPILE) -c $<
+.cpp.obj:
+	$(CXXCOMPILE) -c `cygpath -w $<`
+.cpp.lo:
+	$(LTCXXCOMPILE) -c $<
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+	list='$(SOURCES) $(HEADERS)'; \
+	unique=`for i in $$list; do echo $$i; done | \
+	  awk '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	here=`pwd` && cd $(srcdir) \
+	  && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)'; \
+	unique=`for i in $$list; do echo $$i; done | \
+	  awk '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+	  || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags  $$unique $(LISP))
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+	-rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = src
+
+distdir: $(DISTFILES)
+	here=`cd $(top_builddir) && pwd`; \
+	top_distdir=`cd $(top_distdir) && pwd`; \
+	distdir=`cd $(distdir) && pwd`; \
+	cd $(top_srcdir) \
+	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/Makefile
+	@for file in $(DISTFILES); do \
+	  d=$(srcdir); \
+	  if test -d $$d/$$file; then \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	  fi; \
+	done
+
+DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
+
+-include $(DEP_FILES)
+
+mostlyclean-depend:
+
+clean-depend:
+
+distclean-depend:
+	-rm -rf .deps
+
+maintainer-clean-depend:
+
+%.o: %.c
+	@echo '$(COMPILE) -c $<'; \
+	$(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
+	@-cp .deps/$(*F).pp .deps/$(*F).P; \
+	tr ' ' '\012' < .deps/$(*F).pp \
+	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+	    >> .deps/$(*F).P; \
+	rm .deps/$(*F).pp
+
+%.lo: %.c
+	@echo '$(LTCOMPILE) -c $<'; \
+	$(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
+	@-sed -e 's/^\([^:]*\)\.o[ 	]*:/\1.lo \1.o :/' \
+	  < .deps/$(*F).pp > .deps/$(*F).P; \
+	tr ' ' '\012' < .deps/$(*F).pp \
+	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+	    >> .deps/$(*F).P; \
+	rm -f .deps/$(*F).pp
+
+%.o: %.cc
+	@echo '$(CXXCOMPILE) -c $<'; \
+	$(CXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
+	@-cp .deps/$(*F).pp .deps/$(*F).P; \
+	tr ' ' '\012' < .deps/$(*F).pp \
+	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+	    >> .deps/$(*F).P; \
+	rm .deps/$(*F).pp
+
+%.lo: %.cc
+	@echo '$(LTCXXCOMPILE) -c $<'; \
+	$(LTCXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
+	@-sed -e 's/^\([^:]*\)\.o[ 	]*:/\1.lo \1.o :/' \
+	  < .deps/$(*F).pp > .deps/$(*F).P; \
+	tr ' ' '\012' < .deps/$(*F).pp \
+	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+	    >> .deps/$(*F).P; \
+	rm -f .deps/$(*F).pp
+
+%.o: %.cpp
+	@echo '$(CXXCOMPILE) -c $<'; \
+	$(CXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
+	@-cp .deps/$(*F).pp .deps/$(*F).P; \
+	tr ' ' '\012' < .deps/$(*F).pp \
+	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+	    >> .deps/$(*F).P; \
+	rm .deps/$(*F).pp
+
+%.lo: %.cpp
+	@echo '$(LTCXXCOMPILE) -c $<'; \
+	$(LTCXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
+	@-sed -e 's/^\([^:]*\)\.o[ 	]*:/\1.lo \1.o :/' \
+	  < .deps/$(*F).pp > .deps/$(*F).P; \
+	tr ' ' '\012' < .deps/$(*F).pp \
+	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+	    >> .deps/$(*F).P; \
+	rm -f .deps/$(*F).pp
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am: install-binPROGRAMS
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am: uninstall-binPROGRAMS
+uninstall: uninstall-am
+all-am: Makefile $(PROGRAMS)
+all-redirect: all-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+	$(mkinstalldirs)  $(DESTDIR)$(bindir)
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am:  mostlyclean-binPROGRAMS mostlyclean-compile \
+		mostlyclean-libtool mostlyclean-tags mostlyclean-depend \
+		mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-binPROGRAMS clean-compile clean-libtool clean-tags \
+		clean-depend clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-binPROGRAMS distclean-compile distclean-libtool \
+		distclean-tags distclean-depend distclean-generic \
+		clean-am
+	-rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-binPROGRAMS \
+		maintainer-clean-compile maintainer-clean-libtool \
+		maintainer-clean-tags maintainer-clean-depend \
+		maintainer-clean-generic distclean-am
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \
+maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \
+mostlyclean-compile distclean-compile clean-compile \
+maintainer-clean-compile mostlyclean-libtool distclean-libtool \
+clean-libtool maintainer-clean-libtool tags mostlyclean-tags \
+distclean-tags clean-tags maintainer-clean-tags distdir \
+mostlyclean-depend distclean-depend clean-depend \
+maintainer-clean-depend info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: incubator/bluesky/trunk/RealClass/Student-1.0/src/Makefile.am
URL: http://svn.apache.org/viewvc/incubator/bluesky/trunk/RealClass/Student-1.0/src/Makefile.am?rev=819898&view=auto
==============================================================================
--- incubator/bluesky/trunk/RealClass/Student-1.0/src/Makefile.am (added)
+++ incubator/bluesky/trunk/RealClass/Student-1.0/src/Makefile.am Tue Sep 29 12:17:17 2009
@@ -0,0 +1,62 @@
+## Process this file with automake to produce Makefile.in
+
+## Created by Anjuta - will be overwritten
+## If you don't want it to overwrite it,
+## 	Please disable it in the Anjuta project configuration
+
+INCLUDES = \
+	$(PACKAGE_CFLAGS) -I/usr/include/jrtplib3 -I/usr/include/jthread
+
+AM_CFLAGS =\
+	 -Wall\
+	 -g
+
+AM_CXXFLAGS =\
+	 -Wall\
+	 -g
+
+bin_PROGRAMS = Student
+
+Student_SOURCES = \
+	asyncsocketex.cpp\
+	asyncsocketex.h\
+	callbacks.cc\
+	callbacks.hh\
+	client_communicate.cc\
+	client_communicate.h\
+	clientsocket.cpp\
+	clientsocket.h\
+	en_de_audio.cpp\
+	en_de_audio.h\
+	en_de_common.cpp\
+	en_de_common.h\
+	en_de_screen.cpp\
+	en_de_screen.h\
+	en_de_sendthread.cpp\
+	en_de_sendthread.h\
+	en_de_video.cpp\
+	en_de_video.h\
+	errormessage.h\
+	fecrtpsession.cpp\
+	fecrtpsession.h\
+	interface.cc\
+	interface.h\
+	Student.cc\
+	ncclient.hh\
+	singlecomm.cpp\
+	singlecomm.h\
+	stdafx.h\
+	support.cc\
+	support.hh\
+	tcpcomm.cpp\
+	tcpcomm.h\
+	tcppollthread.cpp\
+	tcppollthread.h\
+	error.cc\
+	error.h
+
+Student_LDFLAGS = 
+
+Student_LDADD =  \
+	$(PACKAGE_LIBS) -lSDL -lavcodec -lavformat -ljrtp -ljthread
+

Added: incubator/bluesky/trunk/RealClass/Student-1.0/src/Makefile.in
URL: http://svn.apache.org/viewvc/incubator/bluesky/trunk/RealClass/Student-1.0/src/Makefile.in?rev=819898&view=auto
==============================================================================
--- incubator/bluesky/trunk/RealClass/Student-1.0/src/Makefile.in (added)
+++ incubator/bluesky/trunk/RealClass/Student-1.0/src/Makefile.in Tue Sep 29 12:17:17 2009
@@ -0,0 +1,487 @@
+# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+AR = @AR@
+AS = @AS@
+BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CPP = @CPP@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+DATADIRNAME = @DATADIRNAME@
+DLLTOOL = @DLLTOOL@
+ECHO = @ECHO@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+GCJ = @GCJ@
+GCJFLAGS = @GCJFLAGS@
+GENCAT = @GENCAT@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIBC2 = @GLIBC2@
+GLIBC21 = @GLIBC21@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+HAVE_ASPRINTF = @HAVE_ASPRINTF@
+HAVE_LIB = @HAVE_LIB@
+HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@
+HAVE_SNPRINTF = @HAVE_SNPRINTF@
+HAVE_WPRINTF = @HAVE_WPRINTF@
+INSTOBJEXT = @INSTOBJEXT@
+INTLBISON = @INTLBISON@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+LIB = @LIB@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTLIB = @LTLIB@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+NO_PREFIX_PACKAGE_DATA_DIR = @NO_PREFIX_PACKAGE_DATA_DIR@
+NO_PREFIX_PACKAGE_DOC_DIR = @NO_PREFIX_PACKAGE_DOC_DIR@
+NO_PREFIX_PACKAGE_HELP_DIR = @NO_PREFIX_PACKAGE_HELP_DIR@
+NO_PREFIX_PACKAGE_MENU_DIR = @NO_PREFIX_PACKAGE_MENU_DIR@
+NO_PREFIX_PACKAGE_PIXMAPS_DIR = @NO_PREFIX_PACKAGE_PIXMAPS_DIR@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_CFLAGS = @PACKAGE_CFLAGS@
+PACKAGE_DATA_DIR = @PACKAGE_DATA_DIR@
+PACKAGE_DOC_DIR = @PACKAGE_DOC_DIR@
+PACKAGE_HELP_DIR = @PACKAGE_HELP_DIR@
+PACKAGE_LIBS = @PACKAGE_LIBS@
+PACKAGE_MENU_DIR = @PACKAGE_MENU_DIR@
+PACKAGE_PIXMAPS_DIR = @PACKAGE_PIXMAPS_DIR@
+PKG_CONFIG = @PKG_CONFIG@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+RC = @RC@
+STRIP = @STRIP@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+
+INCLUDES =  	$(PACKAGE_CFLAGS) -I/usr/include/jrtplib3 -I/usr/include/jthread
+
+
+AM_CFLAGS =  	 -Wall 	 -g
+
+
+AM_CXXFLAGS =  	 -Wall 	 -g
+
+
+bin_PROGRAMS = Student
+
+Student_SOURCES =  	asyncsocketex.cpp 	asyncsocketex.h 	callbacks.cc 	callbacks.hh 	client_communicate.cc 	client_communicate.h 	clientsocket.cpp 	clientsocket.h 	en_de_audio.cpp 	en_de_audio.h 	en_de_common.cpp 	en_de_common.h 	en_de_screen.cpp 	en_de_screen.h 	en_de_sendthread.cpp 	en_de_sendthread.h 	en_de_video.cpp 	en_de_video.h 	errormessage.h 	fecrtpsession.cpp 	fecrtpsession.h 	interface.cc 	interface.h 	Student.cc 	ncclient.hh 	singlecomm.cpp 	singlecomm.h 	stdafx.h 	support.cc 	support.hh 	tcpcomm.cpp 	tcpcomm.h 	tcppollthread.cpp 	tcppollthread.h 	error.cc 	error.h 
+
+
+Student_LDFLAGS = 
+
+Student_LDADD =  	$(PACKAGE_LIBS) -lSDL -lavcodec -lavformat -ljrtp -ljthread
+
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../config.h
+CONFIG_CLEAN_FILES = 
+bin_PROGRAMS =  Student$(EXEEXT)
+PROGRAMS =  $(bin_PROGRAMS)
+
+
+DEFS = @DEFS@ -I. -I$(srcdir) -I..
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
+Student_OBJECTS =  asyncsocketex.$(OBJEXT) callbacks.$(OBJEXT) \
+client_communicate.$(OBJEXT) clientsocket.$(OBJEXT) \
+en_de_audio.$(OBJEXT) en_de_common.$(OBJEXT) en_de_screen.$(OBJEXT) \
+en_de_sendthread.$(OBJEXT) en_de_video.$(OBJEXT) \
+fecrtpsession.$(OBJEXT) interface.$(OBJEXT) Student.$(OBJEXT) \
+singlecomm.$(OBJEXT) support.$(OBJEXT) tcpcomm.$(OBJEXT) \
+tcppollthread.$(OBJEXT) error.$(OBJEXT)
+Student_DEPENDENCIES = 
+CXXFLAGS = @CXXFLAGS@
+CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@
+CFLAGS = @CFLAGS@
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+DIST_COMMON =  Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+DEP_FILES =  .deps/asyncsocketex.P .deps/callbacks.P \
+.deps/client_communicate.P .deps/clientsocket.P .deps/en_de_audio.P \
+.deps/en_de_common.P .deps/en_de_screen.P .deps/en_de_sendthread.P \
+.deps/en_de_video.P .deps/error.P .deps/fecrtpsession.P \
+.deps/interface.P .deps/language_test.P .deps/Student.P \
+.deps/singlecomm.P .deps/support.P .deps/tcpcomm.P \
+.deps/tcppollthread.P
+SOURCES = $(Student_SOURCES)
+OBJECTS = $(Student_OBJECTS)
+
+all: all-redirect
+.SUFFIXES:
+.SUFFIXES: .S .c .cc .cpp .lo .o .obj .s
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+mostlyclean-binPROGRAMS:
+
+clean-binPROGRAMS:
+	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+
+distclean-binPROGRAMS:
+
+maintainer-clean-binPROGRAMS:
+
+install-binPROGRAMS: $(bin_PROGRAMS)
+	@$(NORMAL_INSTALL)
+	$(mkinstalldirs) $(DESTDIR)$(bindir)
+	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+	  if test -f $$p; then \
+	    echo " $(LIBTOOL)  --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
+	    $(LIBTOOL)  --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+	  else :; fi; \
+	done
+
+uninstall-binPROGRAMS:
+	@$(NORMAL_UNINSTALL)
+	list='$(bin_PROGRAMS)'; for p in $$list; do \
+	  rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+	done
+
+# FIXME: We should only use cygpath when building on Windows,
+# and only if it is available.
+.c.obj:
+	$(COMPILE) -c `cygpath -w $<`
+
+.s.o:
+	$(COMPILE) -c $<
+
+.S.o:
+	$(COMPILE) -c $<
+
+mostlyclean-compile:
+	-rm -f *.o core *.core
+	-rm -f *.$(OBJEXT)
+
+clean-compile:
+
+distclean-compile:
+	-rm -f *.tab.c
+
+maintainer-clean-compile:
+
+.s.lo:
+	$(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+.S.lo:
+	$(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+
+maintainer-clean-libtool:
+
+Student$(EXEEXT): $(Student_OBJECTS) $(Student_DEPENDENCIES)
+	@rm -f Student$(EXEEXT)
+	$(CXXLINK) $(Student_LDFLAGS) $(Student_OBJECTS) $(Student_LDADD) $(LIBS)
+.cc.o:
+	$(CXXCOMPILE) -c $<
+.cc.obj:
+	$(CXXCOMPILE) -c `cygpath -w $<`
+.cc.lo:
+	$(LTCXXCOMPILE) -c $<
+.cpp.o:
+	$(CXXCOMPILE) -c $<
+.cpp.obj:
+	$(CXXCOMPILE) -c `cygpath -w $<`
+.cpp.lo:
+	$(LTCXXCOMPILE) -c $<
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+	list='$(SOURCES) $(HEADERS)'; \
+	unique=`for i in $$list; do echo $$i; done | \
+	  awk '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	here=`pwd` && cd $(srcdir) \
+	  && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)'; \
+	unique=`for i in $$list; do echo $$i; done | \
+	  awk '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+	  || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags  $$unique $(LISP))
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+	-rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = src
+
+distdir: $(DISTFILES)
+	here=`cd $(top_builddir) && pwd`; \
+	top_distdir=`cd $(top_distdir) && pwd`; \
+	distdir=`cd $(distdir) && pwd`; \
+	cd $(top_srcdir) \
+	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/Makefile
+	@for file in $(DISTFILES); do \
+	  d=$(srcdir); \
+	  if test -d $$d/$$file; then \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	  fi; \
+	done
+
+DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
+
+-include $(DEP_FILES)
+
+mostlyclean-depend:
+
+clean-depend:
+
+distclean-depend:
+	-rm -rf .deps
+
+maintainer-clean-depend:
+
+%.o: %.c
+	@echo '$(COMPILE) -c $<'; \
+	$(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
+	@-cp .deps/$(*F).pp .deps/$(*F).P; \
+	tr ' ' '\012' < .deps/$(*F).pp \
+	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+	    >> .deps/$(*F).P; \
+	rm .deps/$(*F).pp
+
+%.lo: %.c
+	@echo '$(LTCOMPILE) -c $<'; \
+	$(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
+	@-sed -e 's/^\([^:]*\)\.o[ 	]*:/\1.lo \1.o :/' \
+	  < .deps/$(*F).pp > .deps/$(*F).P; \
+	tr ' ' '\012' < .deps/$(*F).pp \
+	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+	    >> .deps/$(*F).P; \
+	rm -f .deps/$(*F).pp
+
+%.o: %.cc
+	@echo '$(CXXCOMPILE) -c $<'; \
+	$(CXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
+	@-cp .deps/$(*F).pp .deps/$(*F).P; \
+	tr ' ' '\012' < .deps/$(*F).pp \
+	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+	    >> .deps/$(*F).P; \
+	rm .deps/$(*F).pp
+
+%.lo: %.cc
+	@echo '$(LTCXXCOMPILE) -c $<'; \
+	$(LTCXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
+	@-sed -e 's/^\([^:]*\)\.o[ 	]*:/\1.lo \1.o :/' \
+	  < .deps/$(*F).pp > .deps/$(*F).P; \
+	tr ' ' '\012' < .deps/$(*F).pp \
+	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+	    >> .deps/$(*F).P; \
+	rm -f .deps/$(*F).pp
+
+%.o: %.cpp
+	@echo '$(CXXCOMPILE) -c $<'; \
+	$(CXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
+	@-cp .deps/$(*F).pp .deps/$(*F).P; \
+	tr ' ' '\012' < .deps/$(*F).pp \
+	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+	    >> .deps/$(*F).P; \
+	rm .deps/$(*F).pp
+
+%.lo: %.cpp
+	@echo '$(LTCXXCOMPILE) -c $<'; \
+	$(LTCXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
+	@-sed -e 's/^\([^:]*\)\.o[ 	]*:/\1.lo \1.o :/' \
+	  < .deps/$(*F).pp > .deps/$(*F).P; \
+	tr ' ' '\012' < .deps/$(*F).pp \
+	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+	    >> .deps/$(*F).P; \
+	rm -f .deps/$(*F).pp
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am: install-binPROGRAMS
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am: uninstall-binPROGRAMS
+uninstall: uninstall-am
+all-am: Makefile $(PROGRAMS)
+all-redirect: all-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+	$(mkinstalldirs)  $(DESTDIR)$(bindir)
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am:  mostlyclean-binPROGRAMS mostlyclean-compile \
+		mostlyclean-libtool mostlyclean-tags mostlyclean-depend \
+		mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-binPROGRAMS clean-compile clean-libtool clean-tags \
+		clean-depend clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-binPROGRAMS distclean-compile distclean-libtool \
+		distclean-tags distclean-depend distclean-generic \
+		clean-am
+	-rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-binPROGRAMS \
+		maintainer-clean-compile maintainer-clean-libtool \
+		maintainer-clean-tags maintainer-clean-depend \
+		maintainer-clean-generic distclean-am
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \
+maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \
+mostlyclean-compile distclean-compile clean-compile \
+maintainer-clean-compile mostlyclean-libtool distclean-libtool \
+clean-libtool maintainer-clean-libtool tags mostlyclean-tags \
+distclean-tags clean-tags maintainer-clean-tags distdir \
+mostlyclean-depend distclean-depend clean-depend \
+maintainer-clean-depend info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: incubator/bluesky/trunk/RealClass/Student-1.0/src/Student
URL: http://svn.apache.org/viewvc/incubator/bluesky/trunk/RealClass/Student-1.0/src/Student?rev=819898&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/bluesky/trunk/RealClass/Student-1.0/src/Student
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/bluesky/trunk/RealClass/Student-1.0/src/Student.cc
URL: http://svn.apache.org/viewvc/incubator/bluesky/trunk/RealClass/Student-1.0/src/Student.cc?rev=819898&view=auto
==============================================================================
--- incubator/bluesky/trunk/RealClass/Student-1.0/src/Student.cc (added)
+++ incubator/bluesky/trunk/RealClass/Student-1.0/src/Student.cc Tue Sep 29 12:17:17 2009
@@ -0,0 +1,78 @@
+
+#include <config.h>
+#include <gtk/gtk.h>
+#include <gdk/gdk.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <glib.h>
+
+#include "interface.h"
+#include "support.hh"
+#include "ncclient.hh"
+#include "client_communicate.h"
+#include "en_de_video.h"
+#include "en_de_audio.h"
+#include "en_de_screen.h"
+#include "callbacks.hh" 
+
+#define STUDENT_VERSION  "1.0"
+#define MODIFY_INFO "modify clientsocket.cc and pixmap"
+
+client_ts_communicate client_comm;
+
+CScreenReceiver g_teacher_screenreceiver;
+CVideoReceiver g_teacher_videoreceiver;
+CAudioReceiver g_teacher_audioreceiver;
+
+CVideoReceiver g_student_videoreceiver;
+CAudioReceiver g_student_audioreceiver;
+
+CV4LStuVideoSender g_student_videosender;
+CStuAudioSender g_student_audiosender;
+
+DWORD TeacherMode;
+DWORD chatMode;
+DWORD Focus_student;
+struct class_center center;
+
+int main(int argc, char **argv)
+{
+	if (argc == 2) //below printf the version information
+	{
+		if ((strcmp(argv[1], "--version") == 0))
+		{
+			printf("\n Student (copyright ? XJTU), version %s\n\n",
+					STUDENT_VERSION);
+			return 0;
+		}
+		else if (strcmp(argv[1], "-v") == 0)
+		{
+			printf("%s\n", STUDENT_VERSION);
+		}
+		else if (strcmp(argv[1], "-d") == 0)
+		{
+			printf("%s\n", MODIFY_INFO);
+		}
+		else
+			printf("\n unknow parameter!\n\n");
+
+		return 0;
+	}
+	GtkWidget *mainwindow;
+	TeacherMode = 1;
+	Focus_student = 0;
+	gtk_set_locale();
+	config_file_read();
+
+	gtk_init(&argc, &argv);
+
+	add_pixmap_directory (PACKAGE_DATA_DIR "/" PACKAGE "/pixmaps");
+	getip();
+
+	mainwindow = create_mainwindow();
+	gtk_widget_show(mainwindow);
+	gtk_timeout_add(1000, timer_callback, NULL);
+	gtk_main();
+	return 0;
+}

Added: incubator/bluesky/trunk/RealClass/Student-1.0/src/asyncsocketex.cpp
URL: http://svn.apache.org/viewvc/incubator/bluesky/trunk/RealClass/Student-1.0/src/asyncsocketex.cpp?rev=819898&view=auto
==============================================================================
--- incubator/bluesky/trunk/RealClass/Student-1.0/src/asyncsocketex.cpp (added)
+++ incubator/bluesky/trunk/RealClass/Student-1.0/src/asyncsocketex.cpp Tue Sep 29 12:17:17 2009
@@ -0,0 +1,268 @@
+// AsyncSocketEx.cpp: 
+//
+//////////////////////////////////////////////////////////////////////
+
+#include "stdafx.h"
+#include "asyncsocketex.h"
+
+//////////////////////////////////////////////////////////////////////
+// construction/Destruction
+//////////////////////////////////////////////////////////////////////
+
+CAsyncSocketEx::CAsyncSocketEx()
+{
+	m_SocketData.hSocket = INVALID_SOCKET;
+	m_SocketData.nSocketIndex = -1;
+	m_lEvent = 0;
+}
+
+CAsyncSocketEx::~CAsyncSocketEx()
+{
+	Close();
+}
+
+bool CAsyncSocketEx::Create(UINT nSocketPort /*=0*/,
+		int nSocketType /*=SOCK_STREAM*/, LPCTSTR lpszSocketAddress /*=NULL*/)
+{
+
+	SOCKET hSocket = socket(AF_INET, nSocketType, 0);
+	if (hSocket == INVALID_SOCKET)
+		return false;
+	m_SocketData.hSocket = hSocket;
+
+	if (!Bind(nSocketPort, lpszSocketAddress))
+	{
+		Close();
+		return false;
+	}
+	return true;
+}
+
+bool CAsyncSocketEx::Bind(UINT nSocketPort, LPCTSTR lpszSocketAddress)
+{
+	SOCKADDR_IN sockAddr;
+	memset(&sockAddr, 0, sizeof(sockAddr));
+
+	LPSTR lpszAscii = (LPSTR) lpszSocketAddress;
+	sockAddr.sin_family = AF_INET;
+
+	if (lpszAscii == NULL)
+		sockAddr.sin_addr.s_addr = htonl(INADDR_ANY);
+	else
+	{
+		DWORD lResult = inet_addr(lpszAscii);
+		if (lResult == INADDR_NONE)
+		{
+			return false;
+		}
+		sockAddr.sin_addr.s_addr = lResult;
+	}
+
+	sockAddr.sin_port = htons((u_short) nSocketPort);
+
+	return Bind((SOCKADDR*) &sockAddr, sizeof(sockAddr));
+}
+
+bool CAsyncSocketEx::Bind(const SOCKADDR* lpSockAddr, int nSockAddrLen)
+{
+	if (!bind(m_SocketData.hSocket, lpSockAddr, nSockAddrLen))
+		return true;
+	else
+		return false;
+}
+
+void CAsyncSocketEx::Close()
+{
+	if (m_SocketData.hSocket != INVALID_SOCKET)
+	{
+		if (close(m_SocketData.hSocket) == SOCKET_ERROR)
+		{
+			printf("\nclose socket error.");
+			return;
+		}
+		m_SocketData.hSocket = INVALID_SOCKET;
+		m_lEvent = 0;
+	}
+}
+
+bool CAsyncSocketEx::GetSockOpt(int nOptionName, void* lpOptionValue,
+		int* lpOptionLen, int nLevel /* = SOL_SOCKET*/)
+{
+	int status;
+	if (m_SocketData.hSocket == 0)
+		return false;
+
+	status = getsockopt(m_SocketData.hSocket, nLevel, nOptionName,
+			lpOptionValue, (socklen_t*) lpOptionLen);
+	if (status != 0)
+		return false;
+
+	return true;
+}
+
+bool CAsyncSocketEx::SetSockOpt(int nOptionName, const void* lpOptionValue,
+		int nOptionLen, int nLevel /* = SOL_SOCKET*/)
+{
+	int status;
+	if (m_SocketData.hSocket == 0)
+		return false;
+
+	status = setsockopt(m_SocketData.hSocket, nLevel, nOptionName,
+			lpOptionValue, nOptionLen);
+	if (status != 0)
+		return false;
+
+	return true;
+}
+
+int CAsyncSocketEx::Receive(void* lpBuf, int nBufLen, int nFlags /*=0*/)
+{
+	return recv(m_SocketData.hSocket, (LPSTR) lpBuf, nBufLen, nFlags);
+}
+
+int CAsyncSocketEx::Send(const void* lpBuf, int nBufLen, int nFlags /*=0*/)
+{
+	return send(m_SocketData.hSocket, (LPSTR) lpBuf, nBufLen, nFlags);
+}
+
+bool CAsyncSocketEx::Connect(LPCTSTR lpszHostAddress, UINT nHostPort)
+{
+
+	SOCKADDR_IN sockAddr;
+	memset(&sockAddr, 0, sizeof(sockAddr));
+
+	LPSTR lpszAscii = (LPSTR) lpszHostAddress;
+	sockAddr.sin_family = AF_INET;
+	sockAddr.sin_addr.s_addr = inet_addr(lpszAscii);
+
+	if (sockAddr.sin_addr.s_addr == INADDR_NONE)
+	{
+
+	}
+
+	sockAddr.sin_port = htons((u_short) nHostPort);
+
+	return CAsyncSocketEx::Connect((SOCKADDR*) &sockAddr, sizeof(sockAddr));
+}
+
+bool CAsyncSocketEx::Connect(const SOCKADDR* lpSockAddr, int nSockAddrLen)
+{
+	if (m_SocketData.hSocket == INVALID_SOCKET)
+		return false;
+	return SOCKET_ERROR != connect(m_SocketData.hSocket, lpSockAddr,
+			nSockAddrLen);
+}
+
+bool CAsyncSocketEx::GetPeerName(SOCKADDR* lpSockAddr, int* lpSockAddrLen)
+{
+	if (!getpeername(m_SocketData.hSocket, lpSockAddr,
+			(socklen_t*) lpSockAddrLen))
+		return true;
+	else
+		return false;
+}
+
+bool CAsyncSocketEx::GetSockName(SOCKADDR* lpSockAddr, int* lpSockAddrLen)
+{
+	if (!getsockname(m_SocketData.hSocket, lpSockAddr,
+			(socklen_t*) lpSockAddrLen))
+		return true;
+	else
+		return false;
+}
+
+bool CAsyncSocketEx::ShutDown(int nHow /*=sends*/)
+{
+	if (!shutdown(m_SocketData.hSocket, nHow))
+		return true;
+	else
+		return false;
+}
+
+SOCKET CAsyncSocketEx::Detach()
+{
+	SOCKET socket = m_SocketData.hSocket;
+	m_SocketData.hSocket = INVALID_SOCKET;
+	m_lEvent = 0;
+	return socket;
+}
+
+bool CAsyncSocketEx::Attach(SOCKET hSocket, long lEvent /* = 0 */)
+{
+	if (hSocket == INVALID_SOCKET || !hSocket)
+		return false;
+
+	m_SocketData.hSocket = hSocket;
+	m_lEvent = lEvent;
+	return true;
+}
+
+bool CAsyncSocketEx::Listen(int nConnectionBacklog /*=5*/)
+{
+	if (!listen(m_SocketData.hSocket, nConnectionBacklog))
+		return true;
+	else
+		return false;
+}
+
+bool CAsyncSocketEx::Accept(CAsyncSocketEx& rConnectedSocket,
+		SOCKADDR* lpSockAddr /*=NULL*/, int* lpSockAddrLen /*=NULL*/)
+{
+
+	SOCKET hTemp = accept(m_SocketData.hSocket, lpSockAddr,
+			(socklen_t*) lpSockAddrLen);
+
+	if (hTemp == INVALID_SOCKET)
+		return false;
+	rConnectedSocket.m_SocketData.hSocket = hTemp;
+	return true;
+}
+
+bool CAsyncSocketEx::IOCtl(long lCommand, DWORD* lpArgument)
+{
+	if (!ioctl(m_SocketData.hSocket, lCommand, lpArgument))
+		return false;
+	else
+		return true;
+}
+
+int CAsyncSocketEx::GetLastError()
+{
+	return -1;
+}
+
+SOCKET CAsyncSocketEx::GetSocketHandle()
+{
+	return m_SocketData.hSocket;
+}
+
+int CAsyncSocketEx::Poll()
+{
+	fd_set fdsetread;
+	struct timeval tv;
+
+	FD_ZERO(&fdsetread);
+	FD_SET(m_SocketData.hSocket, &fdsetread);
+	tv.tv_sec = 0;
+	tv.tv_usec = 10000;
+
+	if (select(FD_SETSIZE, &fdsetread, 0, 0, &tv) < 0)
+	{
+		m_lEvent = -1;
+		return m_lEvent;
+	}
+	m_lEvent = 0;
+
+	if (FD_ISSET(m_SocketData.hSocket, &fdsetread))
+	{
+
+		m_lEvent = 1;
+
+	}
+	return m_lEvent;
+}
+
+void CAsyncSocketEx::OnEvent()
+{
+	return;
+}

Added: incubator/bluesky/trunk/RealClass/Student-1.0/src/asyncsocketex.h
URL: http://svn.apache.org/viewvc/incubator/bluesky/trunk/RealClass/Student-1.0/src/asyncsocketex.h?rev=819898&view=auto
==============================================================================
--- incubator/bluesky/trunk/RealClass/Student-1.0/src/asyncsocketex.h (added)
+++ incubator/bluesky/trunk/RealClass/Student-1.0/src/asyncsocketex.h Tue Sep 29 12:17:17 2009
@@ -0,0 +1,103 @@
+/*
+ */
+// AsyncSocketEx.h: 
+//
+//////////////////////////////////////////////////////////////////////
+
+#include "stdafx.h"
+#if !defined(ASYNCSOCKETEX_H)
+#define ASYNCSOCKETEX_H
+
+class CAsyncSocketEx
+{
+
+public:
+	virtual int Poll();
+	SOCKET GetSocketHandle();
+	/////////////////////////////////////
+	//Functions that imitate CAsyncSocket
+
+	//Construction
+	CAsyncSocketEx(); //Constructs a CAsyncSocket object
+	virtual ~CAsyncSocketEx();
+
+	//Creates a socket
+	bool Create(UINT nSocketPort = 0, int nSocketType = SOCK_STREAM,
+			LPCTSTR lpszSocketAddress = NULL);
+
+	//
+	inline long GetStatus()
+	{
+		return m_lEvent;
+	}
+	;
+	inline void SetStatus(long lEvent)
+	{
+		m_lEvent = lEvent;
+	}
+	;
+	//Attaches a socket handle to a CAsyncSocket object
+	bool Attach(SOCKET hSocket, long lEvent = 0);
+
+	//Detaches a socket handle from a CAsyncSocket object
+	SOCKET Detach();
+
+	//Gets the error status for the last operation that failed.
+	static int GetLastError();
+
+	//Gets the address of the peer socket to which the socket is connected
+	bool GetPeerName(SOCKADDR* lpSockAddr, int* lpSockAddrLen);
+
+	//Gets the local name for a socket
+	bool GetSockName(SOCKADDR* lpSockAddr, int* lpSockAddrLen);
+
+	//Retrieves a socket option
+	bool GetSockOpt(int nOptionName, void* lpOptionValue, int* lpOptionLen,
+			int nLevel = SOL_SOCKET);
+
+	//Sets a socket option
+	bool SetSockOpt(int nOptionName, const void* lpOptionValue, int nOptionLen,
+			int nLevel = SOL_SOCKET);
+
+	//Operations
+
+
+	virtual void Close();
+
+	bool Bind(UINT nSocketPort, LPCTSTR lpszSocketAddress);
+	bool Bind(const SOCKADDR* lpSockAddr, int nSockAddrLen);
+
+	virtual bool Connect(LPCTSTR lpszHostAddress, UINT nHostPort);
+	virtual bool Connect(const SOCKADDR* lpSockAddr, int nSockAddrLen);
+
+	bool Listen(int nConnectionBacklog = 5);
+	virtual bool Accept(CAsyncSocketEx& rConnectedSocket, SOCKADDR* lpSockAddr =
+			NULL, int* lpSockAddrLen = NULL);
+
+	bool IOCtl(long lCommand, DWORD* lpArgument);
+
+	bool ShutDown(int nHow = sends);
+
+	virtual int Receive(void* lpBuf, int nBufLen, int nFlags = 0);
+	virtual int Send(const void* lpBuf, int nBufLen, int nFlags = 0);
+
+	enum
+	{
+		receives = 0, sends = 1, both = 2
+	};
+
+public:
+	virtual void OnEvent();
+
+protected:
+	struct t_AsyncSocketExData
+	{
+		SOCKET hSocket;
+		int nSocketIndex;
+	} m_SocketData;
+
+	long m_lEvent;
+
+};
+
+#endif // !defined(ASYNCSOCKETEX_H)

Added: incubator/bluesky/trunk/RealClass/Student-1.0/src/callbacks.cc
URL: http://svn.apache.org/viewvc/incubator/bluesky/trunk/RealClass/Student-1.0/src/callbacks.cc?rev=819898&view=auto
==============================================================================
--- incubator/bluesky/trunk/RealClass/Student-1.0/src/callbacks.cc (added)
+++ incubator/bluesky/trunk/RealClass/Student-1.0/src/callbacks.cc Tue Sep 29 12:17:17 2009
@@ -0,0 +1,709 @@
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
+
+#include  <stdio.h>  
+#include  <sys/types.h>  
+#include  <sys/socket.h>  
+#include  <sys/ioctl.h>  
+
+#include  <net/if.h>  
+#include  <net/if_arp.h>  
+
+#include  <errno.h>  
+#include <iostream> 
+#include <fstream>
+
+#include <gtk/gtk.h>
+#include  <sys/types.h>
+
+#include <sys/socket.h>
+#include <stdio.h>
+#include <sys/un.h>
+#include <unistd.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include "client_communicate.h"
+#include <iostream>
+#include "ncclient.hh"
+#include "callbacks.hh"
+#include "interface.h"
+#include "support.hh"
+#include "errormessage.h"
+#include "stdafx.h"
+#include "en_de_audio.h"
+#include "en_de_video.h"
+#include "en_de_screen.h"
+
+#include <gdk/gdkx.h>
+
+#define  ETH_NAME    "eth0"
+#define ETH_NAME1   "eth1"
+int getip_tag = 0;
+using namespace std;
+extern CScreenReceiver g_teacher_screenreceiver;
+extern CVideoReceiver g_teacher_videoreceiver;
+extern CAudioReceiver g_teacher_audioreceiver;
+extern CVideoReceiver g_student_videoreceiver;
+extern CAudioReceiver g_student_audioreceiver;
+
+extern CV4LStuVideoSender g_student_videosender;
+extern CStuAudioSender g_student_audiosender;
+
+extern struct CRCLClientJoinInGroupR client_mcu_info;
+extern struct TRCClientLogin stulogin;
+extern GtkWidget *loadsys;
+extern GtkWidget *addclass;
+extern GtkWidget *loadtool;
+extern GtkWidget *clist1;
+extern GtkWidget *classdialog;
+extern GtkWidget *chatview;
+extern GtkWidget *chat_show;
+extern client_ts_communicate client_comm;
+extern DWORD TeacherMode;
+extern DWORD chatMode;
+extern DWORD Focus_student;
+extern GtkWidget *teachimage;
+extern GtkWidget *screenimage;
+extern GtkWidget *studimage;
+
+extern GtkTextBuffer *chat_buffer; //textbuf used in chatMode 
+extern GtkTextIter chat_end;
+extern GtkTextIter chat_start;
+extern GtkTextBuffer *TeachChat_buffer; //textbuf used in teachMode
+extern GtkTextIter TeachChat_end;
+extern GtkTextIter TeachChat_start;
+extern GtkAdjustment *adj1, *adj2;
+
+extern GtkWidget *localIPentry;
+extern GtkWidget *teachaudioentry;
+extern GtkWidget *centerport_entry;
+
+char showchat[1000];
+
+gfloat upper1, page_size1, step, value;
+int loadflag = 0;
+int GroupID;
+int addclassflag = 0;
+extern char CenterIP[16];
+extern char CenterPort[8];
+extern GtkWidget *chatentry;
+CRCLMSG send_mes;
+
+char IP[30];
+int error_info_no = 0; //use by ncstudent_timer_callback()
+
+void on_about1_activate(GtkMenuItem *menuitem, gpointer user_data)
+{
+	GtkWidget *about;
+	about = create_about_dialog();
+	gtk_widget_show(about);
+}
+
+void on_loadsys_activate(GtkMenuItem *menuitem, gpointer user_data)
+{
+
+	GtkWidget *loginwindow;
+	loginwindow = create_loaddialog();
+	gtk_widget_show(loginwindow);
+}
+
+void on_addclass_activate(GtkMenuItem *menuitem, gpointer user_data)
+{
+	addclass_op();
+}
+
+void on_exitclass_activate(GtkMenuItem *menuitem, gpointer user_data)
+{
+	exitclass_op();
+}
+
+void on_exitsys_activate(GtkMenuItem *menuitem, gpointer user_data)
+{
+	exitsys_op();
+}
+
+void on_requestchange_activate(GtkMenuItem *menuitem, gpointer user_data)
+{
+	exchange_op();
+}
+
+void on_cancelchange_activate(GtkMenuItem *menuitem, gpointer user_data)
+{
+	cancelexchange_op();
+}
+
+void on_networkconfig_activate(GtkMenuItem *menuitem, gpointer user_data)
+{
+	GtkWidget *networkwindow;
+	networkwindow = create_networkdialog();
+	gtk_widget_show(networkwindow);
+}
+
+void on_loadcancelbut_clicked(GtkObject *object, gpointer user_data)
+{
+	gtk_widget_destroy(GTK_WIDGET(user_data));
+}
+
+void on_networkcancel_clicked(GtkObject *object, gpointer user_data)
+{
+	gtk_widget_destroy(GTK_WIDGET(user_data));
+}
+
+void on_studimagebut_clicked(GtkButton *button, gpointer user_data)
+{
+	g_student_videosender.CloseXImage();
+	if (Focus_student == 0)
+	{
+		g_student_videosender.SetMode(CV4LStuVideoSender::ModeNone);
+		g_student_videosender.Stop();
+	}
+	else if (Focus_student == 1)
+		g_student_videosender.SetMode(CV4LStuVideoSender::ModeTransmit);
+
+	g_student_videoreceiver.Init();
+	g_student_videoreceiver.CreateXImage(GDK_WINDOW_XID(studimage->window), 2,
+			345, 320 - 93, 240 - 40);
+	g_student_videoreceiver.Start(stulogin.SeMCU_SVPort);
+}
+
+void on_myimagebut_clicked(GtkButton *button, gpointer user_data)
+{
+	if (!g_student_videosender.IsInitialized())
+		g_student_videosender.Init(5560);
+
+	if (Focus_student == 0)
+	{
+		g_student_videosender.SetMode(CV4LStuVideoSender::ModeCapture);
+		g_student_videosender.Stop();
+	}
+	else if (Focus_student == 1)
+		g_student_videosender.SetMode(CV4LStuVideoSender::ModeTransmit);
+
+	g_student_videosender.CreateXImage(GDK_WINDOW_XID(studimage->window), 2,
+			345, 320 - 93, 240 - 40);
+	g_student_videosender.Start();
+}
+
+void on_sendchatbut_clicked(GtkButton *button, gpointer user_data)
+{
+	sendmessage_op();
+}
+
+void on_loadokbutton_clicked(GtkButton *button, gpointer user_data)
+{
+	get_loadsys();
+	printf("student login is %s\n", stulogin.ClientName);
+	if (strcmp(stulogin.ClientName, "") == 0)
+	{
+
+		Error_dia(usename_error, usename_errorms);
+		return;
+	}
+	else if (strlen(stulogin.ClientName) > 200)
+	{
+
+		Error_dia(usename_error1, usename_error1ms);
+		return;
+
+	}
+	else
+	{
+		//setup TCP connect
+		LPCTSTR ts_addr = CenterIP;
+		UINT ts_port = atol(CenterPort);
+		CRCLMSG send_mes;
+		if (client_comm.establish_connect(ts_addr, ts_port) != (-1))
+		{
+			send_mes.rclType = 5020;
+			send_mes.msglen = sizeof(stulogin);
+			memcpy(send_mes.msg, &stulogin, sizeof(stulogin));
+
+			if (client_comm.send_mes(send_mes, send_mes.msglen + 8) < 0)
+			{
+				printf("\nsend failed!");
+			}
+			loadflag = 1;
+		}
+		else
+		{
+			Error_dia(load_error1, load_error1ms);
+		}
+		gtk_widget_destroy(GTK_WIDGET(user_data));
+	}
+}
+
+void on_classcancelbut_clicked(GtkButton *button, gpointer user_data)
+{
+	gtk_widget_destroy(GTK_WIDGET(user_data));
+}
+
+void on_classokbut_clicked(GtkButton *button, gpointer user_data)
+{
+	TRCClientJionInGroup JionGroup;
+	if (loadflag == 1) //client join group , send message code 10020
+	{
+		JionGroup.ClientID = client_comm.Rec_ClientID;
+		JionGroup.GroupID = GroupID;
+		JionGroup.C_TAPort = stulogin.SeMCU_TAPort;
+		JionGroup.C_TVPort = stulogin.SeMCU_TVPort;
+		JionGroup.C_TScrPort = stulogin.SeMCU_TSPort;
+		JionGroup.C_CAPort = stulogin.SeMCU_SAPort;
+		JionGroup.C_CVPort = stulogin.SeMCU_SVPort;
+		send_mes.rclType = 10020;
+		send_mes.msglen = sizeof(JionGroup);
+		memcpy(send_mes.msg, &JionGroup, sizeof(JionGroup));
+		printf("class ok button\n");
+		if (client_comm.send_mes(send_mes, send_mes.msglen + 8) < 0)
+		{
+			printf("\nsend failed!");
+		}
+	}
+	gtk_widget_destroy(GTK_WIDGET(user_data));
+}
+
+void on_chatentry_activate(GtkWidget *widget, GtkWidget *entry)
+{
+	sendmessage_op();
+}
+
+void select_clist_row(GtkCList *clist, gint row, gint column, GdkEvent *event,
+		gpointer user_data)
+{
+	gint now_cur = GTK_CLIST(clist)->focus_row;
+	gchar *text;
+	gtk_clist_get_text(GTK_CLIST(clist1), now_cur, 0, &text);
+	GroupID = atoi(text);
+}
+
+void on_networktool_clicked(GtkToolButton *toolbutton, gpointer user_data)
+{
+	GtkWidget *networkwindow;
+	networkwindow = create_networkdialog();
+	gtk_widget_show(networkwindow);
+}
+
+void on_loadtool_clicked(GtkToolButton *toolbutton, gpointer user_data)
+{
+	GtkWidget *loginwindow;
+	loginwindow = create_loaddialog();
+	gtk_widget_show(loginwindow);
+}
+
+void on_addclasstool_clicked(GtkToolButton *toolbutton, gpointer user_data)
+{
+	addclass_op();
+}
+
+void on_exitclasstool_clicked(GtkToolButton *toolbutton, gpointer user_data)
+{
+	exitclass_op();
+}
+
+void on_exchangetool_clicked(GtkToolButton *toolbutton, gpointer user_data)
+{
+	exchange_op();
+}
+
+void on_cancelextool_clicked(GtkToolButton *toolbutton, gpointer user_data)
+{
+	cancelexchange_op();
+}
+
+void on_exittool_clicked(GtkToolButton *toolbutton, gpointer user_data)
+{
+	exitsys_op();
+}
+
+void on_Topconfigbutton_clicked(GtkButton *button, gpointer user_data)
+{
+	gtk_widget_set_sensitive(centerport_entry, TRUE);
+	gtk_widget_set_sensitive(localIPentry, TRUE);
+	gtk_widget_set_sensitive(teachaudioentry, TRUE);
+}
+
+void on_networkOk_clicked(GtkButton *button, gpointer user_data)
+{
+	get_networkconfig();
+	if (getip_tag == 1)
+	{
+		Error_dia(getIP_error, getIP_errorms);
+		getip_tag = 0;
+		return;
+	}
+	if (!(stulogin.SeMCU_TAPort % 2 == 0))
+	{
+		Error_dia(config_error1, config_error1ms);
+		return;
+	}
+	if (stulogin.SeMCU_TAPort < 1024)
+	{
+		Error_dia(port_error, port_errorms);
+		return;
+	}
+	else
+	{
+		gtk_widget_set_sensitive(loadsys, TRUE);
+		gtk_widget_set_sensitive(loadtool, TRUE);
+		gtk_widget_destroy( GTK_WIDGET(GTK_WIDGET( user_data)));
+	}
+}
+
+void addclass_op()
+{
+	TRCClientGetGroupInfo GetGroupInfo;
+	GtkWidget *classwindow;
+	classwindow = create_classdialog();
+	gtk_widget_show(classwindow);
+	if (loadflag == 1) //join successfully
+	{
+		GetGroupInfo.ClientID = client_comm.Rec_ClientID;
+		send_mes.rclType = 10050;
+		send_mes.msglen = sizeof(TRCClientGetGroupInfo);
+		memcpy(send_mes.msg, &GetGroupInfo, sizeof(TRCClientGetGroupInfo));
+
+		if (client_comm.send_mes(send_mes, send_mes.msglen + 8) < 0)
+			perror("send failed!");
+	}
+}
+
+void exitclass_op()
+{
+	GtkWidget* dialog1;
+	dialog1 = create_exit_class_dialog();
+	gtk_widget_show(dialog1);
+}
+
+void exitsys_op() //exit system
+{
+	GtkWidget* dialog2;
+	dialog2 = create_exit_system_dialog();
+	gtk_widget_show(dialog2);
+
+}
+
+void exchange_op()
+{
+	TCRCLClientApplyFocus ApplyFocus;
+	ApplyFocus.ClientID = client_comm.Rec_ClientID;
+	ApplyFocus.GroupID = GroupID;
+	send_mes.rclType = 1010;
+	send_mes.msglen = sizeof(ApplyFocus);
+	memcpy(send_mes.msg, &ApplyFocus, sizeof(ApplyFocus));
+
+	if (client_comm.send_mes(send_mes, send_mes.msglen + 8) < 0)
+	{
+		printf("\nsend failed!");
+	}
+}
+
+void cancelexchange_op()
+{
+	TCRCLClientDestroyFocus DestroyFocus;
+	DestroyFocus.ClientID = client_comm.Rec_ClientID;
+	DestroyFocus.GroupID = GroupID;
+	send_mes.rclType = 1020;
+	send_mes.msglen = sizeof(DestroyFocus);
+	memcpy(send_mes.msg, &DestroyFocus, sizeof(DestroyFocus));
+
+	if (client_comm.send_mes(send_mes, send_mes.msglen + 8) < 0)
+	{
+		printf("\nsend failed!");
+	}
+}
+
+void sendmessage_op()
+{
+	TCRCLClientTextBroadcast TextBroadcast;
+	const char*Text = gtk_entry_get_text(GTK_ENTRY(chatentry));
+	if ((addclassflag == 1) && (strcmp(Text, "") != 0) && (chatMode == 1))
+	{
+		TextBroadcast.ClientID = client_comm.Rec_ClientID;
+		TextBroadcast.GroupID = GroupID;
+
+		memset(TextBroadcast.Info, 0, 1024);
+		TextBroadcast.InfoLength = strlen(Text) >= 1000 ? 1000 : strlen(Text);
+
+		if (strlen(Text) >= 1000)
+		{
+
+			memcpy(TextBroadcast.Info, Text, 1000);
+
+		}
+		else
+			strcpy(TextBroadcast.Info, Text);
+
+		send_mes.rclType = 1030;
+		send_mes.msglen = sizeof(TextBroadcast);
+		memcpy(send_mes.msg, &TextBroadcast, sizeof(TextBroadcast));
+
+		if (client_comm.send_mes(send_mes, send_mes.msglen + 8) < 0)
+		{
+			perror("send failed!");
+
+		}
+		strcpy(showchat, stulogin.ClientName);
+		strcat(showchat, ":");
+		strcat(showchat, TextBroadcast.Info);
+		strcat(showchat, "\n");
+		client_comm.get_text_from_msg(showchat);
+		if (TeacherMode == 1)
+		{
+			upper1 = GTK_ADJUSTMENT(adj1)->upper;
+			page_size1 = GTK_ADJUSTMENT(adj1)->page_size;
+			step = GTK_ADJUSTMENT(adj1)->step_increment;
+			value = upper1 - page_size1 + step;
+			gtk_adjustment_set_value(GTK_ADJUSTMENT(adj1), value);
+		}
+
+		else if (TeacherMode == 0)
+		{
+			upper1 = GTK_ADJUSTMENT(adj2)->upper;
+			page_size1 = GTK_ADJUSTMENT(adj2)->page_size;
+			step = GTK_ADJUSTMENT(adj2)->step_increment;
+			value = upper1 - page_size1 + step;
+			gtk_adjustment_set_value(GTK_ADJUSTMENT(adj2), value);
+		}
+
+	}
+
+	gtk_entry_set_text(GTK_ENTRY(chatentry), "");
+}
+
+void on_stulist_cancelbut_clicked(GtkButton *button, gpointer user_data)
+{
+	gtk_widget_destroy(GTK_WIDGET(user_data));
+}
+
+void on_stulist_okbut_clicked(GtkButton *button, gpointer user_data)
+{
+	gtk_widget_destroy(GTK_WIDGET(user_data));
+}
+
+void on_about_clicked(GtkButton *button, gpointer user_data)
+{
+	gtk_widget_destroy(GTK_WIDGET(user_data));
+}
+
+void on_error_calbut_clicked(GtkButton *button, gpointer user_data)
+{
+	gtk_widget_destroy(GTK_WIDGET(user_data));
+}
+
+void on_error_okbut_clicked(GtkButton *button, gpointer user_data)
+{
+	gtk_widget_destroy(GTK_WIDGET(user_data));
+}
+
+void get_stulist()
+{
+	if (addclassflag == 1)
+	{
+		CRCLClientGetClientInfo GetClientInfo;
+		send_mes.rclType = 1040;
+		GetClientInfo.ClientID = client_comm.Rec_ClientID;
+		GetClientInfo.GroupID = GroupID;
+		send_mes.msglen = sizeof(GetClientInfo);
+		memcpy(send_mes.msg, &GetClientInfo, sizeof(GetClientInfo));
+
+		if (client_comm.send_mes(send_mes, send_mes.msglen + 8) < 0)
+		{
+			perror("send failed!");
+		}
+	}
+}
+
+int getip()
+{
+	int sock;
+	struct sockaddr_in sin;
+	struct ifreq ifr;
+	sock = socket(AF_INET, SOCK_DGRAM, 0);
+
+	if (sock == -1)
+	{
+		perror("socket");
+		return -1;
+	}
+	strncpy(ifr.ifr_name, ETH_NAME, IFNAMSIZ);
+	ifr.ifr_name[IFNAMSIZ - 1] = 0;
+
+	if (ioctl(sock, SIOCGIFADDR, &ifr) < 0)
+	{
+		perror("ioctl");
+		strncpy(ifr.ifr_name, ETH_NAME1, IFNAMSIZ);
+		ifr.ifr_name[IFNAMSIZ - 1] = 0;
+		if (ioctl(sock, SIOCGIFADDR, &ifr) < 0)
+		{
+			getip_tag = 1;
+			return -1;
+		}
+	}
+	memcpy(&sin, &ifr.ifr_addr, sizeof(sin));
+	strcpy(IP, inet_ntoa(sin.sin_addr));
+	printf("get IP  %s\n", inet_ntoa(sin.sin_addr));
+	close(sock);
+	return 0;
+}
+
+gboolean timer_callback(void *para) //timer refresh to answer clientcommunicate.cc error message
+{
+	switch (error_info_no)
+	{
+	case 0:
+		return true;
+	case 1:
+		Error_dia(load_error2, load_error2ms);
+		error_info_no = 0;
+		break;
+
+	case 2:
+		Error_dia(load_error3, load_error3ms);
+		error_info_no = 0;
+		break;
+
+	case 3:
+		Error_dia(load_error4, load_error4ms);
+		error_info_no = 0;
+		break;
+
+	case 4:
+		Error_dia(getclasslist_error, getclasslist_errorms);
+		error_info_no = 0;
+		break;
+
+	case 5:
+		Error_dia(addclass_error, addclass_errorms);
+		error_info_no = 0;
+		break;
+
+	case 6:
+		Error_dia(addclass_error1, addclass_error1ms);
+		error_info_no = 0;
+		break;
+
+	case 7:
+		Error_dia(exitclass_error, exitclass_errorms);
+		error_info_no = 0;
+		break;
+
+	case 8:
+		Error_dia(focus_error1, focus_error1ms);
+		error_info_no = 0;
+		break;
+
+	case 9:
+		Error_dia(focus_error2, focus_error2ms);
+		error_info_no = 0;
+		break;
+
+	case 10:
+		Error_dia(killfocus_error, killfocus_errorms);
+		error_info_no = 0;
+		break;
+
+	case 11:
+		Error_dia(killfocus_error, killfocus_errorms);
+		error_info_no = 0;
+		break;
+
+	case 20:
+		upper1 = GTK_ADJUSTMENT(adj1)->upper;
+		page_size1 = GTK_ADJUSTMENT(adj1)->page_size;
+		value = upper1 - page_size1;
+		gtk_adjustment_set_value(GTK_ADJUSTMENT(adj1), value);
+		error_info_no = 0;
+		break;
+
+	case 21:
+
+		upper1 = GTK_ADJUSTMENT(adj2)->upper;
+		page_size1 = GTK_ADJUSTMENT(adj2)->page_size;
+		value = upper1 - page_size1;
+		gtk_adjustment_set_value(GTK_ADJUSTMENT(adj2), value);
+		error_info_no = 0;
+		break;
+
+	default:
+
+		break;
+	}
+}
+
+void scroll_set_value(GtkAdjustment *set)
+{
+
+	gtk_adjustment_set_value(set, 1010000);
+
+}
+
+void on_exit_class_cancel_clicked(GtkButton *button, gpointer user_data)
+{
+	gtk_widget_destroy(GTK_WIDGET(user_data));
+
+}
+
+void on_exit_class_yes_clicked(GtkButton *button, gpointer user_data)
+{
+	TRCClientLeaveGroup LeaveGroup;
+	if (addclassflag == 1)
+	{
+		LeaveGroup.ClientID = client_comm.Rec_ClientID;
+		LeaveGroup.GroupID = GroupID;
+		send_mes.rclType = 10030;//exit message code
+		send_mes.msglen = sizeof(TRCClientLeaveGroup);
+		memcpy(send_mes.msg, &LeaveGroup, sizeof(TRCClientLeaveGroup));
+		if (client_comm.send_mes(send_mes, send_mes.msglen + 8) < 0)
+			perror("send failed!");
+	}
+	gtk_widget_destroy(GTK_WIDGET(user_data));
+}
+void on_exit_system_cancel_clicked(GtkButton *button, gpointer user_data)
+{
+	gtk_widget_destroy(GTK_WIDGET(user_data));
+}
+void on_exit_system_yes_clicked(GtkButton *button, gpointer user_data)
+{
+	TRCClientLogout logoutsys;
+	if (loadflag == 1)
+	{
+		logoutsys.ClientID = client_comm.Rec_ClientID;
+		send_mes.rclType = 5050; //send to Tserver
+		send_mes.msglen = sizeof(logoutsys);
+		memcpy(send_mes.msg, &logoutsys, sizeof(logoutsys));
+
+		if (client_comm.send_mes(send_mes, send_mes.msglen + 8) < 0)
+		{
+			printf("\nsend failed!");
+		}
+	}
+	gtk_widget_destroy(GTK_WIDGET(user_data));
+	gtk_main_quit();
+}
+
+gint mainwindow_delete_event(GtkWidget *widget, GdkEvent *event,
+		gpointer user_data)
+{
+
+	GtkWidget *dialog3;
+	dialog3 = create_exit_system_dialog();
+	gtk_widget_show(dialog3);
+
+	return TRUE;
+}
+
+void on_clearchatbut_clicked(GtkButton *button, gpointer user_data)
+{
+	if (TeacherMode == 1)
+	{
+		gtk_text_buffer_get_start_iter(TeachChat_buffer, &TeachChat_start);
+		gtk_text_buffer_delete(TeachChat_buffer, &TeachChat_start,
+				&TeachChat_end);
+	}
+	else if (TeacherMode == 0)
+	{
+		gtk_text_buffer_get_start_iter(chat_buffer, &chat_start);
+		gtk_text_buffer_delete(chat_buffer, &chat_start, &chat_end);
+	}
+
+}

Added: incubator/bluesky/trunk/RealClass/Student-1.0/src/callbacks.hh
URL: http://svn.apache.org/viewvc/incubator/bluesky/trunk/RealClass/Student-1.0/src/callbacks.hh?rev=819898&view=auto
==============================================================================
--- incubator/bluesky/trunk/RealClass/Student-1.0/src/callbacks.hh (added)
+++ incubator/bluesky/trunk/RealClass/Student-1.0/src/callbacks.hh Tue Sep 29 12:17:17 2009
@@ -0,0 +1,130 @@
+#include <gtk/gtk.h>
+
+void
+on_about1_activate(GtkMenuItem *menuitem, gpointer user_data);
+
+void
+on_loadsys_activate(GtkMenuItem *menuitem, gpointer user_data);
+
+void
+on_addclass_activate(GtkMenuItem *menuitem, gpointer user_data);
+
+void
+on_exitclass_activate(GtkMenuItem *menuitem, gpointer user_data);
+
+void
+on_exitsys_activate(GtkMenuItem *menuitem, gpointer user_data);
+
+void
+on_requestchange_activate(GtkMenuItem *menuitem, gpointer user_data);
+
+void
+on_cancelchange_activate(GtkMenuItem *menuitem, gpointer user_data);
+
+void
+on_Topconfigbutton_clicked(GtkButton *button, gpointer user_data);
+
+void
+on_networkOk_clicked(GtkButton *button, gpointer user_data);
+
+void
+on_networkconfig_activate(GtkMenuItem *menuitem, gpointer user_data);
+
+void
+on_about_clicked(GtkButton *button, gpointer user_data);
+
+void
+on_loadcancelbut_clicked(GtkObject *object, gpointer user_data);
+
+void
+on_networkcancel_clicked(GtkObject *object, gpointer user_data);
+
+void
+on_send_clicked(GtkButton *button, gpointer user_data);
+
+void
+on_studimagebut_clicked(GtkButton *button, gpointer user_data);
+
+void
+on_myimagebut_clicked(GtkButton *button, gpointer user_data);
+
+void
+on_sendchatbut_clicked(GtkButton *button, gpointer user_data);
+
+void
+on_loadokbutton_clicked(GtkButton *button, gpointer user_data);
+
+void
+on_classcancelbut_clicked(GtkButton *button, gpointer user_data);
+
+void
+on_classcancelbut_destroy(GtkButton *button, gpointer user_data);
+
+void
+on_classokbut_clicked(GtkButton *button, gpointer user_data);
+
+void
+select_clist_row(GtkCList *clist, gint row, gint column, GdkEvent *event,
+		gpointer user_data);
+
+void
+on_loadtool_clicked(GtkToolButton *toolbutton, gpointer user_data);
+
+void
+on_addclasstool_clicked(GtkToolButton *toolbutton, gpointer user_data);
+
+void
+on_exitclasstool_clicked(GtkToolButton *toolbutton, gpointer user_data);
+
+void
+on_exchangetool_clicked(GtkToolButton *toolbutton, gpointer user_data);
+
+void
+on_cancelextool_clicked(GtkToolButton *toolbutton, gpointer user_data);
+
+void
+on_networktool_clicked(GtkToolButton *toolbutton, gpointer user_data);
+
+void
+on_exittool_clicked(GtkToolButton *toolbutton, gpointer user_data);
+
+void
+on_stulist_cancelbut_clicked(GtkButton *button, gpointer user_data);
+
+void
+on_stulist_okbut_clicked(GtkButton *button, gpointer user_data);
+
+void
+on_chatentry_activate(GtkWidget *widget, GtkWidget *entry);
+
+void
+on_error_calbut_clicked(GtkButton *button, gpointer user_data);
+
+void
+on_error_okbut_clicked(GtkButton *button, gpointer user_data);
+
+void
+on_exit_class_cancel_clicked(GtkButton *button, gpointer user_data);
+void
+on_exit_class_yes_clicked(GtkButton *button, gpointer user_data);
+void
+on_exit_system_cancel_clicked(GtkButton *button, gpointer user_data);
+void
+on_exit_system_yes_clicked(GtkButton *button, gpointer user_data);
+gint mainwindow_delete_event(GtkWidget *widget, GdkEvent *event,
+		gpointer user_data);
+void
+on_clearchatbut_clicked(GtkButton *button, gpointer user_data);
+
+void addclass_op();
+void exitclass_op();
+void exitsys_op();
+void exchange_op();
+void cancelexchange_op();
+void get_stulist();
+void sendmessage_op();
+gint timer_callback(void* para);
+
+int getip();
+
+void scroll_set_value(GtkAdjustment *set);

Added: incubator/bluesky/trunk/RealClass/Student-1.0/src/client_communicate.cc
URL: http://svn.apache.org/viewvc/incubator/bluesky/trunk/RealClass/Student-1.0/src/client_communicate.cc?rev=819898&view=auto
==============================================================================
--- incubator/bluesky/trunk/RealClass/Student-1.0/src/client_communicate.cc (added)
+++ incubator/bluesky/trunk/RealClass/Student-1.0/src/client_communicate.cc Tue Sep 29 12:17:17 2009
@@ -0,0 +1,482 @@
+#include "client_communicate.h"
+#include "callbacks.hh"
+#include "interface.h"
+#include "errormessage.h"
+#include "en_de_video.h"
+#include "en_de_audio.h"
+#include "en_de_screen.h"
+
+#include <gdk/gdkkeysyms.h>
+#include <gtk/gtk.h>
+#include <string.h>
+#include <stdlib.h>
+#include <gdk/gdkx.h>
+
+extern GtkWidget *chatview;
+extern GtkWidget *chat_show;
+extern GtkWidget *clist1;
+extern DWORD TeacherMode;
+extern DWORD chatMode;
+extern DWORD Focus_student;
+extern client_ts_communicate client_comm;
+extern int loadflag;
+extern int addclassflag;
+extern GtkWidget *chatview;
+extern GtkWidget *stu_clist;
+extern GtkWidget *class1;
+extern GtkWidget *addclass;
+extern GtkWidget *exitclass;
+extern GtkWidget *addclasstool;
+extern GtkWidget *exitclasstool;
+extern GtkWidget *exchangetool;
+extern GtkWidget *cancelextool;
+//MCU connect with TServer
+extern GtkWidget *chat_show;
+extern GtkWidget *screenimage;
+extern GtkWidget *teachimage;
+
+extern GtkWidget *sendchatbut;
+extern GtkWidget *chatentry;
+
+extern GtkWidget *requestchange;//for apply focus 
+extern GtkWidget *cancelchange;
+
+extern CScreenReceiver g_teacher_screenreceiver;
+extern CVideoReceiver g_teacher_videoreceiver;
+extern CAudioReceiver g_teacher_audioreceiver;
+
+extern CV4LStuVideoSender g_student_videosender;
+extern CStuAudioSender g_student_audiosender;
+
+extern CVideoReceiver g_student_videoreceiver;
+
+extern CAudioReceiver g_student_audioreceiver;
+
+extern struct TRCClientLogin stulogin; //initialise student login info
+
+extern GtkTextBuffer *chat_buffer;
+extern GtkTextIter chat_end;
+extern GtkTextIter chat_start;
+extern GtkTextBuffer *TeachChat_buffer;
+extern GtkTextIter TeachChat_end;
+extern GtkTextIter TeachChat_start;
+
+extern GtkWidget *networktool;
+extern GtkWidget *networkconfig;
+
+extern GtkWidget *loadsys;
+extern GtkWidget *loadtool;
+
+char *studentInfo[3];
+int clientcount;
+
+extern int error_info_no;
+
+client_ts_communicate::client_ts_communicate()
+{
+	textview_mutex.Init();
+}
+
+client_ts_communicate::~client_ts_communicate()
+{
+
+}
+
+int client_ts_communicate::close_socket(int nHow)
+{
+	if (client_socket.ShutDown(nHow) == false)
+	{
+		perror("close socket error!");
+		return -1;
+	}
+
+	return 0;
+}
+
+int client_ts_communicate::establish_connect(LPCTSTR ts_IP, UINT ts_Port,
+		UINT nSocketPort) //setup socket on MCU
+{
+	if (client_socket.Create(nSocketPort) != true)
+	{
+		printf("Create socket failed!/n");
+		return -1;
+	}
+
+	if (client_socket.Connect(ts_IP, ts_Port) != true)
+	{
+		perror("connet error!");
+		return -1;
+	}
+
+	client_socket_thread.Attach(&client_socket);
+
+	if (client_socket_thread.Init() != true)
+	{
+		printf("Fail to initilize thread!/n");
+		return -1;
+	}
+	client_socket_thread.Start();
+
+	return 0;
+
+}
+
+int client_ts_communicate::send_mes(CRCLMSG mes, int mes_length) //send message to Tserver
+{
+	if (client_socket.Send(&mes, mes_length) == -1)
+	{
+		return -1;
+	}
+	return 0;
+}
+
+int client_ts_communicate::recevie_msg(char *buf, int buf_length)//receive message from Tsever
+{
+	CRCLMSG * receive_str;
+	receive_str = (CRCLMSG *) buf;
+
+	printf("message ID is %d\n", receive_str->rclType);
+
+	switch (receive_str->rclType)
+	{
+	case 5021: //confirm login				
+		TRCClientLoginR *loginReceive;
+		loginReceive = (TRCClientLoginR *) receive_str->msg;
+
+		if (loginReceive->ResponseType == 0)//login successfully
+		{
+			loadflag = 1;
+			Rec_ClientID = loginReceive->ClientID;
+			//change the status of menus
+			gtk_widget_set_sensitive(networktool, FALSE);
+			gtk_widget_set_sensitive(networkconfig, FALSE);
+			gtk_widget_set_sensitive(loadsys, FALSE);
+			gtk_widget_set_sensitive(loadtool, FALSE);
+			gtk_widget_set_sensitive(addclass, TRUE);
+			gtk_widget_set_sensitive(addclasstool, TRUE);
+		}
+		if (loginReceive->ResponseType == 2) //the user name have been used
+			error_info_no = 1;
+		if (loginReceive->ResponseType == 4) //network problem
+			error_info_no = 2;
+		if (loginReceive->ResponseType == 6) //reach the max num
+			error_info_no = 3;
+		break;
+	case 10051: //response to the client's request for group info		  
+		int index;
+		static char *classInfo[5];
+		static char tmp[10];
+		GetGroupInfoR = (TRCClientGetGroupInfoR *) receive_str->msg;
+		if (GetGroupInfoR->ResponseType == 0)
+		{
+			gtk_clist_clear( GTK_CLIST(clist1));
+			chatMode = GetGroupInfoR-> groupchatMode;
+			if (chatMode == 0)
+			{
+				gtk_widget_set_sensitive(sendchatbut, FALSE);
+				gtk_widget_set_sensitive(chatentry, FALSE);
+			}
+			for (index = 0; index < GetGroupInfoR->GroupCount; index++)
+			{
+				sprintf(tmp, "%d", GetGroupInfoR->GroupList[index].GroupID);
+				classInfo[0] = tmp;
+				classInfo[3] = "";
+				classInfo[4] = "";
+				classInfo[1] = GetGroupInfoR->GroupList[index].GroupName;
+				classInfo[2] = GetGroupInfoR->GroupList[index].TeacherName;
+				gtk_clist_freeze ( GTK_CLIST(clist1));
+				gtk_clist_append(GTK_CLIST(clist1), classInfo);
+				gtk_clist_thaw ( GTK_CLIST(clist1));
+			}
+		}
+		if (GetGroupInfoR->ResponseType == 60)//unable to get class list	 
+			error_info_no = 4;
+		break;
+
+	case 10021: //response to the student join class	
+		CRCLClientJoinInGroupR *JoinInGroupR;
+		JoinInGroupR = (CRCLClientJoinInGroupR *) receive_str->msg;
+		printf("MCU's IP is %s\n", JoinInGroupR->MCUIP);
+		if (JoinInGroupR->ResponseType == 0)
+		{
+			addclassflag = 1;
+			TeacherMode = JoinInGroupR->RoomMode;
+			gtk_widget_set_sensitive(exitclass, TRUE);
+			gtk_widget_set_sensitive(exitclasstool, TRUE);
+			gtk_widget_set_sensitive(addclass, FALSE);
+			gtk_widget_set_sensitive(addclasstool, FALSE);
+			gtk_widget_set_sensitive(exchangetool, TRUE);
+			gtk_widget_set_sensitive(cancelextool, TRUE);
+			gtk_widget_set_sensitive(cancelchange, TRUE);
+			gtk_widget_set_sensitive(requestchange, TRUE);
+			gtk_widget_set_sensitive(loadsys, FALSE);
+			gtk_widget_set_sensitive(loadtool, FALSE);
+
+			client_mcu_info.GroupID = JoinInGroupR->GroupID;
+			strcpy(client_mcu_info.MCUIP, JoinInGroupR->MCUIP);
+			strcpy(client_mcu_info.SeMCUIP, JoinInGroupR->SeMCUIP);
+			client_mcu_info.TAPort = JoinInGroupR->TAPort;
+			client_mcu_info.TVPort = JoinInGroupR->TVPort;
+			client_mcu_info.TSPort = JoinInGroupR->TSPort;
+			client_mcu_info.CAPort = JoinInGroupR->CAPort;
+			client_mcu_info.CVPort = JoinInGroupR->CVPort;
+			client_mcu_info.RoomMode = JoinInGroupR->RoomMode;
+
+			g_student_audioreceiver.Init();
+			g_student_audioreceiver.Start(stulogin.SeMCU_SAPort);
+
+			if (TeacherMode == 1)
+			{
+				g_teacher_screenreceiver.Init();
+				g_teacher_screenreceiver.CreateXImage(GDK_WINDOW_XID(
+						teachimage->window), 240, 76, 782, 580);
+				g_teacher_screenreceiver.Start(stulogin.SeMCU_TSPort);
+
+			}
+			g_teacher_videoreceiver.Init();
+			g_teacher_videoreceiver.CreateXImage(GDK_WINDOW_XID(
+					teachimage->window), 2, 76, 320 - 90, 240 - 43);
+			g_teacher_videoreceiver.Start(stulogin.SeMCU_TVPort);
+			g_teacher_audioreceiver.Init();
+			g_teacher_audioreceiver.Start(stulogin.SeMCU_TAPort);
+
+		}
+		else if (JoinInGroupR->ResponseType == 20) //student fail to join class	   
+			error_info_no = 5;
+
+		else if (JoinInGroupR->ResponseType == 22) //the group reach the max num 
+			error_info_no = 6;
+
+		break;
+
+	case 10031: //reponse the leave of student
+		TRCClientLeaveGroupR *LeaveGroupR;
+		LeaveGroupR = (TRCClientLeaveGroupR *) receive_str->msg;
+		if (LeaveGroupR->ResponseType == 0)
+		{
+			addclassflag = 0;
+
+			g_teacher_screenreceiver.Stop();
+			g_teacher_screenreceiver.CloseXImage();
+			g_teacher_videoreceiver.Stop();
+			g_teacher_videoreceiver.CloseXImage();
+			g_teacher_audioreceiver.Stop();
+
+			g_student_videosender.Stop();
+			g_student_videosender.CloseXImage();
+			g_student_audiosender.Pause();
+			g_student_videoreceiver.Stop();
+			g_student_videoreceiver.CloseXImage();
+
+			gtk_widget_set_sensitive(addclass, TRUE);
+			gtk_widget_set_sensitive(addclasstool, TRUE);
+			gtk_widget_set_sensitive(exitclass, FALSE);
+			gtk_widget_set_sensitive(exitclasstool, FALSE);
+			gtk_widget_set_sensitive(cancelchange, FALSE);
+			gtk_widget_set_sensitive(exchangetool, FALSE);
+			gtk_widget_set_sensitive(requestchange, FALSE);
+			gtk_widget_set_sensitive(cancelextool, FALSE);
+		}
+		else if (LeaveGroupR->ResponseType == 21)//student fail to exit class	
+			error_info_no = 7;
+		break;
+
+	case 1011: //response to student's apply focus
+		TCRCLClientApplyFocusR *ApplyFocusR;
+		ApplyFocusR = (TCRCLClientApplyFocusR *) receive_str->msg;
+		if (GetGroupInfoR->ResponseType == 40) //already have one focus
+			error_info_no = 8;
+		else if (GetGroupInfoR->ResponseType == 41) //fail to get a focus
+			error_info_no = 9;
+
+		break;
+
+	case 1021: //response to student's cancel focus	
+		TCRCLClientDestroyFocusR *DestroyFocusR;
+		DestroyFocusR = (TCRCLClientDestroyFocusR *) receive_str->msg;
+		if (DestroyFocusR->ResponseType == 0)
+		{
+			Focus_student = 0;
+			printf("The student destroy focus\n");
+		}
+		else if (DestroyFocusR->ResponseType == 42)//fail to cancel focus
+			error_info_no = 10;
+
+		break;
+
+	case 1052: //response to student get a focus		
+		TCRCLTeacherAllowClientFocusRToMS *AllowClientFocusR;
+		AllowClientFocusR
+				= (TCRCLTeacherAllowClientFocusRToMS *) receive_str->msg;
+		{
+			Focus_student = 1;
+			unsigned long intIP2 = inet_addr(client_mcu_info.MCUIP);
+			intIP2 = ntohl(intIP2);
+			RTPIPv4Address rtpAddr1(intIP2, client_mcu_info.CAPort);
+			RTPIPv4Address rtpAddr2(intIP2, client_mcu_info.CVPort);
+
+			g_student_audioreceiver.Stop();
+
+			if (!g_student_videosender.IsInitialized())
+			{
+				g_student_videosender.Init(6102);
+			}
+
+			g_student_videosender.SetMode(CV4LStuVideoSender::ModeTransmit);
+			printf(
+					"\n g_student_videosender.AddDestination(rtpAddr2):problem!!!!!!!!!!!\n");
+			g_student_videosender.ClearDestinations();
+			g_student_videosender.AddDestination(rtpAddr2);
+			g_student_videosender.Start();
+
+			g_student_audiosender.Init(6004);
+			g_student_audiosender.ClearDestinations();
+			g_student_audiosender.AddDestination(rtpAddr1);
+			g_student_audiosender.Start();
+			g_student_audiosender.Resume();
+		}
+		break;
+
+	case 1062: //send to student that teacher have canceled a focus			
+		TCRCLTeacherCancelClientFocusRToMS *TeacherCancelClientR;
+		TeacherCancelClientR
+				= (TCRCLTeacherCancelClientFocusRToMS *) receive_str->msg;
+		Focus_student = 0;
+		printf("cancel image OKKKKKKKKKKK\n");
+		g_student_audioreceiver.Init();
+		g_student_audioreceiver.Start(stulogin.SeMCU_SAPort);
+
+		g_student_videosender.Stop();
+		g_student_videosender.CloseXImage();
+		g_student_audiosender.Pause();
+		g_student_videoreceiver.Stop();
+		g_student_videoreceiver.CloseXImage();
+		break;
+
+	case 1031: //response to text chat
+		char Text[1024];
+		TCRCLClientTextBroadcastR *TextBroadcastR;
+		TextBroadcastR = (TCRCLClientTextBroadcastR *) receive_str->msg;
+		strcpy(Text, TextBroadcastR->ClientName);
+		strcat(Text, ":");
+		strcat(Text, TextBroadcastR->Info);
+		strcat(Text, "\n");
+		get_text_from_msg(Text);
+		flush_scrollar();
+		break;
+
+	case 1081: //change mode
+
+		TCRCLTeacherSwitchModeR *TeacherSwitchMode;
+		TeacherSwitchMode = (TCRCLTeacherSwitchModeR *) receive_str->msg;
+		if (TeacherSwitchMode->ModeType == 0)
+		{
+			g_teacher_screenreceiver.Stop();
+			g_teacher_screenreceiver.CloseXImage();
+			TeacherMode = 0;
+			chatMode = 1;
+			gtk_widget_set_sensitive(sendchatbut, TRUE);
+			gtk_widget_set_sensitive(chatentry, TRUE);
+		}
+		if (TeacherSwitchMode->ModeType == 1)
+		{
+			TeacherMode = 1;
+			chatMode = 1;
+			gtk_widget_set_sensitive(sendchatbut, TRUE);
+			gtk_widget_set_sensitive(chatentry, TRUE);
+			g_teacher_screenreceiver.Init();
+			g_teacher_screenreceiver.CreateXImage(GDK_WINDOW_XID(
+					teachimage->window), 240, 76, 782, 580);
+			g_teacher_screenreceiver.Start(stulogin.SeMCU_TSPort);
+		}
+
+		break;
+
+	case 10012: //cancel communication mode
+		TRCDestoryGroupRToClient *DestoryGroupRToClient;
+		DestoryGroupRToClient = (TRCDestoryGroupRToClient *) receive_str->msg;
+		addclassflag = 0;
+
+		g_teacher_screenreceiver.Stop();
+		g_teacher_screenreceiver.CloseXImage();
+		g_teacher_videoreceiver.Stop();
+		g_teacher_videoreceiver.CloseXImage();
+		g_teacher_audioreceiver.Stop();
+		g_student_videosender.Stop();
+		g_student_videosender.CloseXImage();
+		g_student_audiosender.Pause();
+		g_student_videoreceiver.Stop();
+		g_student_videoreceiver.CloseXImage();
+
+		gtk_widget_set_sensitive(addclass, TRUE);
+		gtk_widget_set_sensitive(addclasstool, TRUE);
+		gtk_widget_set_sensitive(exitclass, FALSE);
+		gtk_widget_set_sensitive(exitclasstool, FALSE);
+		gtk_widget_set_sensitive(cancelchange, FALSE);
+		gtk_widget_set_sensitive(exchangetool, FALSE);
+		gtk_widget_set_sensitive(requestchange, FALSE);
+		gtk_widget_set_sensitive(cancelextool, FALSE);
+
+		break;
+
+	case 1092: //teacher change to chat mode
+
+		TCRCLTeacherAgreeChat *TeacherAgreeChat;
+		TeacherAgreeChat = (TCRCLTeacherAgreeChat *) receive_str->msg;
+		if (TeacherAgreeChat->Agreechat == 0)
+		{
+			chatMode = 0;
+			gtk_widget_set_sensitive(sendchatbut, FALSE);
+			gtk_widget_set_sensitive(chatentry, FALSE);
+		}
+		else if (TeacherAgreeChat->Agreechat == 1)
+		{
+			chatMode = 1;
+			gtk_widget_set_sensitive(sendchatbut, TRUE);
+			gtk_widget_set_sensitive(chatentry, TRUE);
+		}
+
+		break;
+
+	case 1001: //get the message from teacher
+
+		char TeachMessage[1024];
+		TCRCLTeacherTextBroadcastR *TeacherTextR;
+		TeacherTextR = (TCRCLTeacherTextBroadcastR *) receive_str->msg;
+		strcpy(TeachMessage, "Teacher:");
+		strcat(TeachMessage, TeacherTextR->Info);
+		strcat(TeachMessage, "\n");
+		printf("Teacher message is %s\n", TeachMessage);
+		get_text_from_msg(TeachMessage);
+		flush_scrollar();
+
+		break;
+
+	default:
+
+		break;
+	}
+
+	return 0;
+
+}
+
+void client_ts_communicate::get_text_from_msg(char *Message)
+{
+	textview_mutex.Lock();
+	if (TeacherMode == 1)
+		gtk_text_buffer_insert(TeachChat_buffer, &TeachChat_end, Message, -1);
+	else if (TeacherMode == 0)
+		gtk_text_buffer_insert(chat_buffer, &chat_end, Message, -1);
+	textview_mutex.Unlock();
+
+}
+void client_ts_communicate::flush_scrollar()
+{
+	textview_mutex.Lock();
+	if (TeacherMode == 1)
+		error_info_no = 20;
+	else if (TeacherMode == 0)
+		error_info_no = 21;
+	textview_mutex.Unlock();
+}

Added: incubator/bluesky/trunk/RealClass/Student-1.0/src/client_communicate.h
URL: http://svn.apache.org/viewvc/incubator/bluesky/trunk/RealClass/Student-1.0/src/client_communicate.h?rev=819898&view=auto
==============================================================================
--- incubator/bluesky/trunk/RealClass/Student-1.0/src/client_communicate.h (added)
+++ incubator/bluesky/trunk/RealClass/Student-1.0/src/client_communicate.h Tue Sep 29 12:17:17 2009
@@ -0,0 +1,33 @@
+#ifndef CLIENT_COMMUNICATE_H
+#define CLIENT_COMMUNICATE_H
+
+#include "stdafx.h"
+#include "clientsocket.h"
+#include "singlecomm.h"
+#include "ncclient.hh"
+
+class client_ts_communicate
+{
+public:
+	client_ts_communicate();
+	~client_ts_communicate();
+
+	int establish_connect(LPCTSTR, UINT, UINT nSocketPort = 0);
+	int send_mes(struct CRCLMSG, int mes_length);
+	int recevie_msg(char *buf, int buf_length);
+	void get_text_from_msg(char *Message);
+	void flush_scrollar();
+	int close_socket(int nHow);
+
+	DWORD Rec_ClientID;
+	TRCClientGetGroupInfoR *GetGroupInfoR;
+	struct CRCLClientJoinInGroupR client_mcu_info;
+
+private:
+	CClientSocket client_socket;
+	CSingleComm client_socket_thread;
+	JMutex textview_mutex;
+
+};
+
+#endif

Added: incubator/bluesky/trunk/RealClass/Student-1.0/src/clientsocket.cpp
URL: http://svn.apache.org/viewvc/incubator/bluesky/trunk/RealClass/Student-1.0/src/clientsocket.cpp?rev=819898&view=auto
==============================================================================
--- incubator/bluesky/trunk/RealClass/Student-1.0/src/clientsocket.cpp (added)
+++ incubator/bluesky/trunk/RealClass/Student-1.0/src/clientsocket.cpp Tue Sep 29 12:17:17 2009
@@ -0,0 +1,59 @@
+// ClientSocket.cpp: implementation of the CClientSocket class.
+//
+//////////////////////////////////////////////////////////////////////
+
+#include "stdafx.h"
+#include "clientsocket.h"
+#include "client_communicate.h"
+
+extern client_ts_communicate client_comm;
+
+CClientSocket::CClientSocket()
+{
+
+}
+
+CClientSocket::~CClientSocket()
+{
+}
+
+void CClientSocket::OnEvent()
+{
+	unsigned long len;
+	if (m_lEvent == 0)
+		return;
+	IOCtl(FIONREAD, &len);
+	if (len == 0)
+	{
+		Close();
+		printf("\nA client disconnected.");
+		return;
+	}
+
+	char buffer[10008] =
+	{ '\0' };
+	int receive_length = 0;
+
+	memset(buffer, '\0', 10008);
+	if ((receive_length = Receive(buffer, 10008)) == -1)
+	{
+		perror("Receive failed!");
+		return;
+	}
+
+	CRCLMSG* pM = (CRCLMSG*) buffer;
+	printf("message lenth is %d\n", pM->msglen);
+	int index = receive_length;
+	int to_receive_length = pM->msglen + 8 - receive_length;
+	while (to_receive_length > 0)
+	{
+		receive_length = Receive(buffer + index, to_receive_length);
+		printf("recv a message lenth is %d\n", receive_length);
+		index += receive_length;
+		to_receive_length -= receive_length;
+	}
+
+	client_comm.recevie_msg(buffer, receive_length);
+
+	return;
+}

Added: incubator/bluesky/trunk/RealClass/Student-1.0/src/clientsocket.h
URL: http://svn.apache.org/viewvc/incubator/bluesky/trunk/RealClass/Student-1.0/src/clientsocket.h?rev=819898&view=auto
==============================================================================
--- incubator/bluesky/trunk/RealClass/Student-1.0/src/clientsocket.h (added)
+++ incubator/bluesky/trunk/RealClass/Student-1.0/src/clientsocket.h Tue Sep 29 12:17:17 2009
@@ -0,0 +1,21 @@
+// ClientSocket.h: interface for the CClientSocket class.
+//
+//////////////////////////////////////////////////////////////////////
+
+#if !defined(CLIENTSOCKET_H)
+#define CLIENTSOCKET_H
+
+#include "asyncsocketex.h"
+
+class CClientSocket: public CAsyncSocketEx
+{
+public:
+	CClientSocket();
+	virtual ~CClientSocket();
+
+protected:
+	virtual void OnEvent();
+
+};
+
+#endif // !defined(CLIENTSOCKET_H)



Mime
View raw message