mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2025-12-20 22:28:00 +01:00
Refactor player.js & Changed the install maxVersion to 1.2.0pre
This commit is contained in:
@@ -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]);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -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,56 +693,15 @@ 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 = [];
|
||||||
var items = list.getItemsByProperty(SBProperties.artistName, artist).enumerate();
|
var items = list.getItemsByProperty(SBProperties.artistName, artist).enumerate();
|
||||||
@@ -726,10 +727,10 @@ 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 = [];
|
||||||
var pa = Cc["@songbirdnest.com/Songbird/Properties/MutablePropertyArray;1"]
|
var pa = Cc["@songbirdnest.com/Songbird/Properties/MutablePropertyArray;1"]
|
||||||
@@ -748,6 +749,11 @@ 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:
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user