From 408445cc49f360b979266ea93cf3bcb25a50a8e4 Mon Sep 17 00:00:00 2001 From: guest Date: Mon, 29 Sep 2008 17:27:17 +0000 Subject: fixed crash introtuced in last commit git-svn-id: http://manut.eu/svn/yalp/trunk@7 f059d3a0-6783-47b7-97ff-1fe0bbf25129 --- src/YalpClients/SwtClient/GUI/GUI.java | 7 +- src/YalpClients/SwtClient/Model.java | 70 +++++++++-------- src/YalpInputs/YalpPGSqlInput/PGSqlInput.java | 8 +- .../YalpPGSqlInput/YalpInputPluginImpl.java | 87 ++++++++++++++++------ src/YalpServer/ServerControlImpl.java | 9 ++- 5 files changed, 125 insertions(+), 56 deletions(-) diff --git a/src/YalpClients/SwtClient/GUI/GUI.java b/src/YalpClients/SwtClient/GUI/GUI.java index 4c0e474..475f09b 100644 --- a/src/YalpClients/SwtClient/GUI/GUI.java +++ b/src/YalpClients/SwtClient/GUI/GUI.java @@ -1995,8 +1995,11 @@ public class GUI extends org.eclipse.swt.widgets.Composite { } } returnVal= model.search(search, types, tab); - ArrayListresultList=model.getMedia(tab); - for(int i=0;iresultList = model.getMedia(tab); + for( int i = 0; + (resultList != null) && (i < resultList.size()); + i++ ) + { TableItem item; Media result=resultList.get(i); if (tab==1) item=new TableItem(resultTable1,SWT.NONE); diff --git a/src/YalpClients/SwtClient/Model.java b/src/YalpClients/SwtClient/Model.java index 3c48615..912a3bb 100755 --- a/src/YalpClients/SwtClient/Model.java +++ b/src/YalpClients/SwtClient/Model.java @@ -48,13 +48,13 @@ public class Model { public ServerControlInterface srvCon; private Process vlcPlayer; - private Output actualStream; - private Output streamInfo; - private ArrayList findMedia; - private ArrayList editMedia; - private ArrayList toPlaylist; - private ArrayList playList; - private ArrayList userList; + private Output actualStream = new Output(); + private Output streamInfo = new Output(); + private ArrayList findMedia = new ArrayList(); + private ArrayList editMedia = new ArrayList(); + private ArrayList toPlaylist = new ArrayList(); + private ArrayList playList = new ArrayList(); + private ArrayList userList = new ArrayList(); private ClientConfiguration settings; private String clientIP; private String curPasswd; @@ -62,7 +62,7 @@ public class Model { private String userName; private Boolean playback = false; private Boolean logoff= false; - private Session session; + private Session session = new Session(); /* * Instances srvConnection to Registry, DbConnection, ServerControl * and VlcStreamer. Also instances Class variables @@ -350,9 +350,9 @@ public class Model { */ public Output createOutput(){ /* t.b.d. former createStream */ - this.streamInfo.outputAction = Action.CREATE; + streamInfo.outputAction = Action.CREATE; Media[] a = {}; - this.streamInfo.playlist = this.playList.toArray(a); + streamInfo.playlist = this.playList.toArray(a); return this.streamInfo; } @@ -374,15 +374,16 @@ public class Model { if (kind == 1){ srvCon.search(request, types.toArray(a), result, err); for(int i = 0; i < result.value.length; i++) - this.findMedia.add(result.value[i]); - return this.findMedia.size(); + findMedia.add(result.value[i]); + return findMedia.size(); } else { srvCon.search(request, types.toArray(a), result, err); for(int i = 0; i < result.value.length; i++) - this.editMedia.add(result.value[i]); - return this.editMedia.size(); + editMedia.add(result.value[i]); + return editMedia.size(); } } catch(Exception e){ + e.printStackTrace(); System.out.println("Exceoption in Model search "+ e); return 0; } @@ -489,7 +490,7 @@ public class Model { * stream to srvControl via play, pause, etc */ public void setActualStream(Output aStream){ - this.actualStream = aStream; + actualStream = aStream; } /* @@ -514,7 +515,7 @@ public class Model { "client.Model.startVLC: playback this type is not supported" ); } */ - vlcCmd += this.actualStream.info.params; + vlcCmd += actualStream.info.params; System.out.println(vlcCmd); try { @@ -531,8 +532,9 @@ public class Model { * */ private void stopVLC(){ - this.playback = false; - this.vlcPlayer.destroy(); + playback = false; + if(vlcPlayer != null) + vlcPlayer.destroy(); } /* @@ -542,22 +544,32 @@ public class Model { */ public boolean play(){ - this.playback = true; + playback = true; + + actualStream.outputAction = Action.CREATE; + actualStream.info = new AccessInfo( "bam", + "bam", + "vlc", + "params", + AccessType.STREAM ); - this.actualStream = this.createOutput(); - this.actualStream.destIp = this.clientIP; + Media[] a = new Media[playList.size()]; + actualStream.playlist = playList.toArray(a); + actualStream.destIp = clientIP; YalpErrorHolder err = new YalpErrorHolder(); - OutputHolder tmp = new OutputHolder(this.actualStream); - this.srvCon.control(tmp, err); - this.actualStream = tmp.value; + OutputHolder tmp = new OutputHolder(); + tmp.value = actualStream; + + srvCon.control(tmp, err); + actualStream = tmp.value; - this.actualStream.outputAction = Action.START; - OutputHolder tmp2 = new OutputHolder(this.actualStream); - this.srvCon.control(tmp2, err); - this.actualStream = tmp2.value; - this.startVLC(); + actualStream.outputAction = Action.START; + OutputHolder tmp2 = new OutputHolder(actualStream); + srvCon.control(tmp2, err); + actualStream = tmp2.value; + startVLC(); return true; } diff --git a/src/YalpInputs/YalpPGSqlInput/PGSqlInput.java b/src/YalpInputs/YalpPGSqlInput/PGSqlInput.java index 531f53d..339ee4c 100644 --- a/src/YalpInputs/YalpPGSqlInput/PGSqlInput.java +++ b/src/YalpInputs/YalpPGSqlInput/PGSqlInput.java @@ -108,9 +108,13 @@ public class PGSqlInput { pluginInfo = tmp.value; if(err.value.code != YalpErrorCode.OK) + { System.out.println("registring inputplugin failed"); - else - System.out.println("input plugin registered"); + return; + } + + psql.setInfo(pluginInfo); + System.out.println("input plugin registered"); orb.run(); diff --git a/src/YalpInputs/YalpPGSqlInput/YalpInputPluginImpl.java b/src/YalpInputs/YalpPGSqlInput/YalpInputPluginImpl.java index 573c587..ef18b31 100644 --- a/src/YalpInputs/YalpPGSqlInput/YalpInputPluginImpl.java +++ b/src/YalpInputs/YalpPGSqlInput/YalpInputPluginImpl.java @@ -38,6 +38,12 @@ public class YalpInputPluginImpl extends InputPluginInterfacePOA { logger.debug("YalpInputPluginImpl()"); } + public void setInfo(PluginInfo info) + { + logger.debug("interfaceImpl - setInfo(): "+info.id); + pluginInfo = info; + } + public void setORB(ORB _orb) { orb = _orb; @@ -88,6 +94,13 @@ public class YalpInputPluginImpl extends InputPluginInterfacePOA { logger.debug("search("+str+")"); + YalpError error = new YalpError(); + error.descr = ""; + error.msg = ""; + error.level = YalpErrorLevel.ERROR_LEVEL_INFO; + error.code = YalpErrorCode.OK; + err.value = error; + ArrayList searchWords = stringCut(str); String query = new String(); Boolean first, doIntersect, sound, video, image; @@ -112,7 +125,6 @@ public class YalpInputPluginImpl extends InputPluginInterfacePOA { } } - //for( int i = 0; i < searchWords.size(); i++ ) { for( String pattern : searchWords ) { first = true; @@ -162,42 +174,73 @@ public class YalpInputPluginImpl extends InputPluginInterfacePOA { logger.debug("sending SQL request: "+query); + ArrayList foundMedias = new ArrayList(); + try { Statement stat = con.createStatement(); ResultSet sqlResult = stat.executeQuery(query); System.out.println("found: "); + MediaType type; + while( sqlResult.next() ) { System.out.print(sqlResult.getString(3)+": "); System.out.print(sqlResult.getString(4)+"\t| "); System.out.println(sqlResult.getString(6)); - /* - result.add( - new Result( sqlResult.getInt(1), - sqlResult.getString(2), - ---> - result.getString(3), - result.getString(4), - result.getString(5), - result.getString(6), - result.getString(7), - result.getString(8), - result.getInt(9), - result.getInt(10), - result.getString(11), - result.getInt(12), - result.getString(13), - result.getString(14), - result.getString(15) ) ); - */ - } - System.out.println(); + switch( sqlResult.getString(2).charAt(0) ) { + case 's': + type = MediaType.SOUND; + break; + case 'v': + type = MediaType.VIDEO; + break; + case 'i': + type = MediaType.IMAGE; + break; + default: + type = MediaType.OTHER; + } + + StringProperty[] strProp = new StringProperty[1]; + strProp[0] = new StringProperty("",""); + + IntProperty[] intProp = new IntProperty[1]; + intProp[0] = new IntProperty("", 0); + + String[] tags = new String[1]; + tags[0] = "blubb"; + + YalpUser owner = new YalpUser( 0, // user id + "huhu", // name + "manut", // real name + AccessRights.ADMIN ); + + Media newMedia = new Media( sqlResult.getString(6), + sqlResult.getInt(1), + type, + pluginInfo.id, + owner, + "", // last edit + sqlResult.getString(3), + sqlResult.getString(4), + sqlResult.getString(5), + strProp, + intProp, + tags ); + + foundMedias.add(newMedia); + logger.debug( sqlResult.getString(6) + "added to foundMedias"); + } } catch( SQLException e ) { System.out.println("Exception in PGSqlInput.search: "+e); } + Media[] m = new Media[foundMedias.size()]; + result.value = foundMedias.toArray(m); + + logger.debug("psql search done"); } // == REIMPLEMENTATION NEEDED : == // diff --git a/src/YalpServer/ServerControlImpl.java b/src/YalpServer/ServerControlImpl.java index 3947cdd..44984c7 100755 --- a/src/YalpServer/ServerControlImpl.java +++ b/src/YalpServer/ServerControlImpl.java @@ -186,7 +186,14 @@ public ServerControlImpl() { logger.debug("control()"); YalpError error = new YalpError(); error.code = YalpErrorCode.OK; - err = new YalpErrorHolder(error); + error.descr = "streaming ;-)"; + error.msg = "nice isn't it"; + error.level = YalpErrorLevel.ERROR_LEVEL_INFO; + err.value = error; + + Output out = new Output(); + out = ctlOutput.value; + ctlOutput.value = out; } /* -- cgit v1.2.3