Author: onnerby
Date: Mon May 11 15:56:17 2009
New Revision: 357
Added:
branches/musikPhone/src/flash/core/query/TrackMetadata.as
Modified:
branches/musikPhone/src/flash/core/Cube.as
branches/musikPhone/src/flash/core/Event.as
branches/musikPhone/src/flash/core/Library.as
branches/musikPhone/src/flash/core/query/Base.as
branches/musikPhone/src/flash/core/query/ListSelection.as
branches/musikPhone/src/flash/cube/ListView.as
branches/musikPhone/src/flash/cube/MetakeyList.as
branches/musikPhone/src/flash/cube/MetakeyLister.as
branches/musikPhone/src/flash/cube/TrackList.as
branches/musikPhone/src/flash/musikFlash.fla
branches/musikPhone/src/flash/musikFlash.swf
Log:
Started on TrackMetadata.as for querying for track metadata.
Modified: branches/musikPhone/src/flash/core/Cube.as
==============================================================================
--- branches/musikPhone/src/flash/core/Cube.as (original)
+++ branches/musikPhone/src/flash/core/Cube.as Mon May 11 15:56:17 2009
@@ -23,6 +23,14 @@
trace("Cube::onLoad");
this.library.statusChangeEvent.addListener(this, this.StatusChanged);
+
+ Stage.addListener(this);
+
+ }
+
+ public function onResize():Void {
+ trace("Stage.resize");
+ this.currentView.Resize();
}
private function StatusChanged(status:String, library:core.Library):Void {
@@ -70,6 +78,8 @@
}
public function LoadForm(formMC:MovieClip):Void {
+ trace("LoadForm " + formMC);
+ formMC["password"].password = true;
this.saveData = SharedObject.getLocal("mC2connection");
this.saveData.form = formMC;
SharedObject.addListener("mC2connection", this.SOLoaded);
@@ -83,6 +93,10 @@
if(so.data.httpPort){ formMC["httpport"].text=so.data.httpPort; }
if(so.data.username){ formMC["username"].text=so.data.username; }
if(so.data.password){ formMC["password"].text=so.data.password; }
+
+ formMC["host"].text = "
vallgraven.intermezzon.com";
+ formMC["username"].text = "doep";
+ formMC["password"].text = "doep";
}
}
Modified: branches/musikPhone/src/flash/core/Event.as
==============================================================================
--- branches/musikPhone/src/flash/core/Event.as (original)
+++ branches/musikPhone/src/flash/core/Event.as Mon May 11 15:56:17 2009
@@ -31,7 +31,7 @@
}
}
public function call2(param1, param2):Void {
- trace(" event "+this.listeners.length);
+ //trace(" event "+this.listeners.length);
for (var i = 0; i < this.listeners.length; i++) {
this.listeners[i][1].call(this.listeners[i][0],param1,param2);
}
Modified: branches/musikPhone/src/flash/core/Library.as
==============================================================================
--- branches/musikPhone/src/flash/core/Library.as (original)
+++ branches/musikPhone/src/flash/core/Library.as Mon May 11 15:56:17 2009
@@ -91,14 +91,15 @@
}
public function SocketRecieve(xml:XML):Void {
// trace("Library::SocketRecieve " + xml.firstChild.toString());
- trace("Library::SocketRecieve " );
+// trace("Library::SocketRecieve " );
+_level0["cube"]["thelog"].text = xml.toString();
var queryId:Number = Number(xml.firstChild.attributes["id"]);
// var queryUId:Number = Number(xml.firstChild.attributes["uid"]);
for (var i:Number = 0; i < this.queries.length; i++) {
if (this.queries[i].id == queryId) {
-trace("TJOO");
+
this.queries[i].RecieveResult(xml.firstChild);
//remove query
@@ -122,7 +123,8 @@
this.queries.push(query);
var queryXML:XML = query.SendQuery();
- trace("Library::SendQuery " + queryXML.toString());
+ //trace("Library::SendQuery " + queryXML.toString());
+_level0["cube"]["thelog"].text = queryXML.toString();
this.socket.send(queryXML);
}
Modified: branches/musikPhone/src/flash/core/query/Base.as
==============================================================================
--- branches/musikPhone/src/flash/core/query/Base.as (original)
+++ branches/musikPhone/src/flash/core/query/Base.as Mon May 11 15:56:17
2009
@@ -10,6 +10,8 @@
public var type:String = "";
public var options:Number = 0;
static var uidCounter:Number = 0;
+
+ public var ResultsRecievedEvent:core.Event;
public function Base()
{
@@ -17,6 +19,7 @@
this.id = core.query.Base.uidCounter;
this.uid = core.query.Base.uidCounter;
+ this.ResultsRecievedEvent = new core.Event();
}
public function GenerateQueryXML(xml) {
@@ -25,10 +28,7 @@
public function SendQuery():XML {
var xml:XML = new XML("<query id=\"" +
this.id + "\" uid=\"" + this.uid
+ "\" type=\"" + this.type + "\" options=\"" + this.options
+ "\"></query>");
- trace("query.Base.SendQuery "+xml.toString());
- xml = this.GenerateQueryXML(xml);
- trace("SendQuery "+xml.toString());
- return xml;
+ return this.GenerateQueryXML(xml);
}
Modified: branches/musikPhone/src/flash/core/query/ListSelection.as
==============================================================================
--- branches/musikPhone/src/flash/core/query/ListSelection.as (original)
+++ branches/musikPhone/src/flash/core/query/ListSelection.as Mon May 11
15:56:17 2009
@@ -10,6 +10,7 @@
private var listTracks:Boolean;
public var ListEvent:core.Event;
+ public var TracksEvent:core.Event;
public function ListSelection()
{
@@ -17,6 +18,7 @@
this.listMetaKeys = new Array();
this.selections = new Array();
this.ListEvent = new core.Event();
+ this.TracksEvent = new core.Event();
this.type = "ListSelection";
this.listTracks = false;
}
@@ -41,7 +43,7 @@
}
public function GenerateQueryXML(xml) {
-
trace("GenerateQueryXML "+this.selections.length+" "+this.listMetaKeys.length);
+
//trace("GenerateQueryXML "+this.selections.length+" "+this.listMetaKeys.length);
var selections:XMLNode = xml.createElement("selections");
for (var i = 0; i < this.selections.length; i++) {
var selection:XMLNode = xml.createElement("selection");
@@ -77,7 +79,7 @@
}
public function RecieveResult(xml:XMLNode):Void {
-trace("RecieveResult");
+//trace("RecieveResult");
for (var i:Number = 0; i < xml.childNodes.length; i++) {
if (xml.childNodes[i].nodeName == "metadata") {
var key:String = xml.childNodes[i].attributes["key"];
@@ -87,10 +89,17 @@
values.push({id:xml.childNodes[i].childNodes[j].attributes["id"],text:xml.childNodes[i].childNodes[j].firstChild.nodeValue});
}
}
-trace(" RecieveResult "+key+" "+values.length);
this.ListEvent.call2(key,values);
+ }else if (xml.childNodes[i].nodeName == "tracklist") {
+ // tracks recieved
+ for (var j:Number = 0; j < xml.childNodes[i].childNodes.length; j++) {
+ if (xml.childNodes[i].childNodes[j].nodeName == "tracks") {
+
this.TracksEvent.call1(xml.childNodes[i].childNodes[j].firstChild.nodeValue.split(","));
+ }
+ }
}
}
+ this.ResultsRecievedEvent.call0();
}
}
Added: branches/musikPhone/src/flash/core/query/TrackMetadata.as
==============================================================================
--- (empty file)
+++ branches/musikPhone/src/flash/core/query/TrackMetadata.as Mon May 11
15:56:17 2009
@@ -0,0 +1,54 @@
+/**
+ * ...
+ * @author Daniel Önnerby
+ */
+class core.query.TrackMetadata extends core.query.Base
+{
+
+ private var requestMetakeys:Array;
+ private var requestTracks:Array;
+ public var TrackMetaEvent:core.Event;
+
+ public function TrackMetadata()
+ {
+ super();
+ this.requestMetakeys = new Array();
+ this.TrackMetaEvent = new core.Event();
+ }
+
+ public function RequestMetakeys(metakeys:Array):Void {
+ this.requestMetakeys = metakeys;
+ }
+
+ public function RequestTracks(tracks:Array):Void {
+ //trace("TrackMetadata::RequestTracks "+tracks.length);
+ this.requestTracks = tracks;
+ }
+
+ public function GenerateQueryXML(xml) {
+
//trace("GenerateQueryXML "+this.requestMetakeys.length+" "+this.requestTracks.length);
+ var metakeysXML:XMLNode = xml.createElement("metakeys");
+ var metakeys:String = "";
+ for (var i = 0; i < this.requestMetakeys.length; i++) {
+ metakeys += (i != 0?",":"") + this.requestMetakeys[i];
+ }
+ metakeysXML.appendChild(xml.createTextNode(metakeys));
+ xml.firstChild.appendChild(metakeysXML);
+
+
+ var tracksXML:XMLNode = xml.createElement("tracks");
+ var tracks:String = "";
+ for (var i = 0; i < this.requestTracks.length; i++) {
+ tracks += (i != 0?",":"") + this.requestTracks[i];
+ }
+ tracksXML.appendChild(xml.createTextNode(tracks));
+ xml.firstChild.appendChild(tracksXML);
+ return xml;
+ }
+
+ public function RecieveResult(xml:XMLNode):Void {
+
+ this.ResultsRecievedEvent.call0();
+ }
+
+}
\ No newline at end of file
Modified: branches/musikPhone/src/flash/cube/ListView.as
==============================================================================
--- branches/musikPhone/src/flash/cube/ListView.as (original)
+++ branches/musikPhone/src/flash/cube/ListView.as Mon May 11 15:56:17 2009
@@ -52,7 +52,7 @@
}
public function ScrollToLine(lineNumber):Void {
- trace("ScrollToLine "+this.height+" "+this.itemHeight);
+ //trace("ScrollToLine "+this.height+" "+this.itemHeight);
this.gotoY = lineNumber * this.itemHeight -(this.height -
this.itemHeight) / 2;
if (this.gotoY > this.itemHeight * this.items.length - this.height ) {
@@ -120,13 +120,13 @@
}
private function DeactivateItem(itemIndex:Number):Void {
- trace("DeactivateItem "+itemIndex+" "+this["item" + itemIndex]);
+ //trace("DeactivateItem "+itemIndex+" "+this["item" + itemIndex]);
if (this["item" + itemIndex]) {
this["item" + itemIndex].Deactivate(itemIndex);
}
}
private function ActivateItem(itemIndex:Number):Void {
- trace("ActivateItem "+itemIndex+" "+this["item" + itemIndex]);
+ //trace("ActivateItem "+itemIndex+" "+this["item" + itemIndex]);
if (this["item" + itemIndex]) {
this["item" + itemIndex].Activate(itemIndex);
}
@@ -134,7 +134,7 @@
}
public function onKeyDown():Void {
- trace("keydown " + Key.getCode());
+ //trace("keydown " + Key.getCode());
this.DeactivateItem(this.activeIndex);
switch(Key.getCode()) {
Modified: branches/musikPhone/src/flash/cube/MetakeyList.as
==============================================================================
--- branches/musikPhone/src/flash/cube/MetakeyList.as (original)
+++ branches/musikPhone/src/flash/cube/MetakeyList.as Mon May 11 15:56:17
2009
@@ -12,6 +12,7 @@
super();
this.query = new core.query.ListSelection();
this.query.ListEvent.addListener(this, this.RecieveResults);
+ this.query.ResultsRecievedEvent.addListener(this, this.ResultsRecieved);
}
public function SetMetakey(key:String):Void {
@@ -27,7 +28,7 @@
}
private function RecieveResults(key, values):Void {
- trace("RecieveResults " + key+ " "+this);
+ //trace("RecieveResults " + key+ " "+this);
if (key == this.metaKey) {
if(this.items.length==0){
this.items = values;
@@ -36,9 +37,11 @@
this.items.push(values[i]);
}
}
- this.ScrollToLine(0);
- this.Activate();
}
}
+ private function ResultsRecieved():Void {
+ this.ScrollToLine(0);
+ this.Activate();
+ }
}
Modified: branches/musikPhone/src/flash/cube/MetakeyLister.as
==============================================================================
--- branches/musikPhone/src/flash/cube/MetakeyLister.as (original)
+++ branches/musikPhone/src/flash/cube/MetakeyLister.as Mon May 11 15:56:17
2009
@@ -25,6 +25,10 @@
this.NextView();
}
+ public function Resize():Void {
+ this.listViews[this.currentView].Initialize(Stage.width, Stage.height);
+ }
+
private function NextView():Void {
this.currentView++;
if (this.currentView > this.metakeyOrder.length) {
@@ -81,7 +85,9 @@
}
// remove the old view
- this.listViews[this.currentView+1].removeMovieClip();
+ this.listViews[this.currentView + 1].removeMovieClip();
+
+ this.listViews[this.currentView].Initialize(Stage.width, Stage.height);
this.listViews[this.currentView].Activate();
this.listViews[this.currentView]._visible = true;
this.listViews[this.currentView].SetEnterFrame();
Modified: branches/musikPhone/src/flash/cube/TrackList.as
==============================================================================
--- branches/musikPhone/src/flash/cube/TrackList.as (original)
+++ branches/musikPhone/src/flash/cube/TrackList.as Mon May 11 15:56:17 2009
@@ -5,20 +5,56 @@
class cube.TrackList extends cube.ListView
{
public var query:core.query.ListSelection;
+ private var metadataQuery:core.query.TrackMetadata;
+ private var library:core.Library;
public function TrackList()
{
super();
this.query = new core.query.ListSelection();
- this.query.ListEvent.addListener(this, this.RecieveResults);
+ this.query.TracksEvent.addListener(this, this.RecieveResults);
+ this.query.ResultsRecievedEvent.addListener(this,
this.TrackListRecieved);
this.query.ListTracks();
+
+ this.metadataQuery = new core.query.TrackMetadata();
+ this.metadataQuery.RequestMetakeys(["track", "title"]);
+ this.metadataQuery.ResultsRecievedEvent.addListener(this,
this.TrackMetadataRecieved);
}
public function SendQuery(library:core.Library):Void {
+ //trace("Tracklist::SendQuery");
+ this.library = library;
this.ResetItems();
this.items = new Array();
library.SendQuery(this.query);
+ }
+
+ public function RecieveResults(tracks:Array):Void {
+ //trace("Tracklist::RecieveResults "+tracks.length);
+ for (var i:Number = 0; i < tracks.length; i++) {
+ this.items.push({id:tracks[i],text:"track "+tracks[i]});
+ }
+ }
+
+ public function TrackListRecieved():Void {
+ trace("Tracklist::TrackListRecieved "+this.library);
+
+
+ //lets query for the metadata we want
+ var tracks:Array = new Array();
+ for (var i:Number = 0; i < this.items.length; i++) {
+ tracks.push(this.items[i].id);
+ }
+
+ this.metadataQuery.RequestTracks(tracks);
+ this.library.SendQuery(this.metadataQuery);
+
+ }
+
+ public function TrackMetadataRecieved():Void {
+ this.ScrollToLine(0);
+ this.Activate();
}
}
Modified: branches/musikPhone/src/flash/musikFlash.fla
==============================================================================
Binary files. No diff available.
Modified: branches/musikPhone/src/flash/musikFlash.swf
==============================================================================
Binary files. No diff available.