1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2025-12-20 22:38:00 +01:00

Refactor player.js & Changed the install maxVersion to 1.2.0pre

This commit is contained in:
Prathyush Thota
2009-03-28 05:02:59 +05:30
parent ec6cfad1e0
commit d3a5d3d229
3 changed files with 107 additions and 101 deletions

View File

@@ -1395,17 +1395,17 @@ function Completion() //{{{
if (args.completeArg == 0) if (args.completeArg == 0)
{ {
context.title = ["Artists"]; context.title = ["Artists"];
context.completions = getArtists(); context.completions = player.getArtists();
} }
else if (args.completeArg == 1) else if (args.completeArg == 1)
{ {
context.title = ["Albums by " + args[0]]; context.title = ["Albums by " + args[0]];
context.completions = getAlbums(args[0]); context.completions = player.getAlbums(args[0]);
} }
else if (args.completeArg == 2) else if (args.completeArg == 2)
{ {
context.title = ["Tracks from " + args[1] + " by " + args[0]]; context.title = ["Tracks from " + args[1] + " by " + args[0]];
context.completions = getTracks(args[0], args[1]); context.completions = player.getTracks(args[0], args[1]);
} }
}, },

View File

@@ -1,6 +1,6 @@
// Import Artist List as this can be huge // Import Artist List as this can be huge
var artists = getArtistsArray();
function Player() // {{{ function Player() // {{{
{ {
@@ -15,6 +15,49 @@ function Player() // {{{
// Get the focus to the visible playlist first // Get the focus to the visible playlist first
//window._SBShowMainLibrary(); //window._SBShowMainLibrary();
function getArtistsArray()
{
var list = LibraryUtils.mainLibrary;
// Create an enumeration listener to count each item
var listener = {
count: 0,
onEnumerationBegin: function (aMediaList) {
this.count = 0;
},
onEnumeratedItem: function (aMediaList, aMediaItem) {
this.count++;
},
onEnumerationEnd: function (aMediaList, aStatusCode) {}
};
var artistCounts = {};
var artists = list.getDistinctValuesForProperty(SBProperties.artistName);
var artist;
var artistArray = [];
var i = 0;
// Count the number of media items for each distinct artist
while (artists.hasMore())
{
artist = artists.getNext();
artistArray[i] = [artist, artist];
list.enumerateItemsByProperty(SBProperties.artistName,
artist,
listener,
Ci.sbIMediaList.ENUMERATIONTYPE_LOCKING);
artistCounts[artist] = listener.count;
i++;
}
//liberator.dump("Count : "+artistCounts.toSource());
return artistArray;
}
// Get the artist names before hand.
let artists = getArtistsArray();
const pageService = Components.classes["@songbirdnest.com/Songbird/MediaPageManager;1"] const pageService = Components.classes["@songbirdnest.com/Songbird/MediaPageManager;1"]
.getService(Components.interfaces.sbIMediaPageManager); .getService(Components.interfaces.sbIMediaPageManager);
// Register Callbacks for searching. // Register Callbacks for searching.
@@ -550,7 +593,6 @@ function Player() // {{{
let mediaItemList = currentView.mediaList; let mediaItemList = currentView.mediaList;
let search = _getSearchString(currentView); let search = _getSearchString(currentView);
let searchString = ""; let searchString = "";
let index = 0;
if (search != "") if (search != "")
searchString = args + " " + search; searchString = args + " " + search;
@@ -565,7 +607,7 @@ function Player() // {{{
{ {
lastSearchView = mySearchView; lastSearchView = mySearchView;
lastSearchIndex = 0; lastSearchIndex = 0;
focusTrack(mySearchView.getItemByIndex(index)); focusTrack(mySearchView.getItemByIndex(lastSearchIndex));
} }
else else
{ {
@@ -651,55 +693,14 @@ function Player() // {{{
{ {
if (gMM.sequencer.currentItem) if (gMM.sequencer.currentItem)
gMM.sequencer.currentItem.setProperty(SBProperties.rating, rating); gMM.sequencer.currentItem.setProperty(SBProperties.rating, rating);
}
};
//}}}
} // }}}
function getArtists()
{
return this.artists;
}
function getArtistsArray()
{
var list = LibraryUtils.mainLibrary;
// Create an enumeration listener to count each item
var listener = {
count: 0,
onEnumerationBegin: function (aMediaList) {
this.count = 0;
}, },
onEnumeratedItem: function (aMediaList, aMediaItem) {
this.count++;
},
onEnumerationEnd: function (aMediaList, aStatusCode) {}
};
var artistCounts = {}; getArtists: function getArtists()
var artists = list.getDistinctValuesForProperty(SBProperties.artistName);
var artist;
var artistArray = [];
var i = 0;
// Count the number of media items for each distinct artist
while (artists.hasMore())
{ {
artist = artists.getNext(); return artists;
artistArray[i] = [artist, artist]; },
list.enumerateItemsByProperty(SBProperties.artistName,
artist,
listener,
Ci.sbIMediaList.ENUMERATIONTYPE_LOCKING);
artistCounts[artist] = listener.count;
i++;
}
//liberator.dump("Count : "+artistCounts.toSource()); getAlbums: function getAlbums(artist)
return artistArray;
}
function getAlbums(artist)
{ {
var list = LibraryUtils.mainLibrary; var list = LibraryUtils.mainLibrary;
var albumArray = [], returnArray = []; var albumArray = [], returnArray = [];
@@ -726,9 +727,9 @@ function getAlbums(artist)
} }
return returnArray; return returnArray;
} },
function getTracks(artist, album) getTracks: function getTracks(artist, album)
{ {
var list = LibraryUtils.mainLibrary; var list = LibraryUtils.mainLibrary;
var tracksArray = []; var tracksArray = [];
@@ -750,4 +751,9 @@ function getTracks(artist, album)
return tracksArray; return tracksArray;
} }
};
//}}}
} // }}}
// vim: set fdm=marker sw=4 ts=4 et: // vim: set fdm=marker sw=4 ts=4 et:

View File

@@ -12,7 +12,7 @@
<Description> <Description>
<em:id>songbird@songbirdnest.com</em:id> <em:id>songbird@songbirdnest.com</em:id>
<em:minVersion>0.8.0pre</em:minVersion> <em:minVersion>0.8.0pre</em:minVersion>
<em:maxVersion>1.1.0pre</em:maxVersion> <em:maxVersion>1.2.0pre</em:maxVersion>
</Description> </Description>
</em:targetApplication> </em:targetApplication>
</Description> </Description>