plasma-framework/scriptengines/javascript/tests/script-nowplaying/contents/code/main.js
Aaron J. Seigo adf212324f even prettier!
svn path=/trunk/KDE/kdebase/workspace/plasma/scriptengines/javascript/; revision=906400
2009-01-06 07:20:56 +00:00

61 lines
1.5 KiB
JavaScript

// set up the engine, player and controller
engine = dataEngine("nowplaying");
watchingPlayer = engine.sources[0];
controller = service("nowplaying", watchingPlayer);
// define a few functions
plasmoid.dataUpdate = function(a, b)
{
label.text = "Playing " + b.Title + " by " + b.Artist + ". time: " +
Math.floor(b.Position/60) + ":" + (parseInt(b.Position)%60);
progress.value = 100*b.Position/b.Length;
}
plasmoid.stop = function()
{
data = controller.operationDescription("stop");
print(controller.name());
for ( var i in data ) {
print(i + ' -> ' + data[i] );
}
controller.startOperationCall(controller.operationDescription("stop"));
print("stopping");
}
plasmoid.setProgress = function(progress)
{
operation = controller.operationDescription("seek");
operation["seconds"] = progress;
for ( var i in operation ) {
print(i + ' -> ' + operation[i] );
}
controller.startOperationCall(operation);
print("set progress to " + progress);
}
// Set up the UI
layout = new LinearLayout(plasmoid);
layout.setOrientation(QtVertical);
label = new Label();
layout.addItem(label);
stop = new PushButton();
stop.text = "Stop";
layout.addItem(stop);
progress = new Slider();
progress.orientation = QtHorizontal;
layout.addItem(progress);
// Glue things together
stop.clicked.connect(plasmoid.stop);
progress.sliderMoved.connect(plasmoid.setProgress);
controller.associateWidget(stop, "stop");
controller.associateWidget(progress, "progress");
engine.connectSource(watchingPlayer, plasmoid, 500);