From 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d Mon Sep 17 00:00:00 2001 From: Jef Date: Tue, 24 Sep 2024 14:54:57 +0200 Subject: Initial community commit --- Src/Plugins/Library/ml_webdev/resources/gear.png | Bin 0 -> 265 bytes Src/Plugins/Library/ml_webdev/resources/help.png | Bin 0 -> 288 bytes .../Library/ml_webdev/resources/pages/api2.js | 624 +++++++++++++++++++++ .../ml_webdev/resources/pages/applicationApi.htm | 32 ++ .../resources/pages/asyncDownloaderApi.htm | 42 ++ .../ml_webdev/resources/pages/bookmarkApi.htm | 17 + .../ml_webdev/resources/pages/configApi.htm | 28 + .../ml_webdev/resources/pages/historyApi.htm | 18 + .../ml_webdev/resources/pages/mediaCoreApi.htm | 37 ++ .../ml_webdev/resources/pages/playQueueApi.htm | 74 +++ .../ml_webdev/resources/pages/playlistApi.htm | 118 ++++ .../ml_webdev/resources/pages/podcastApi.htm | 15 + .../ml_webdev/resources/pages/securityApi.htm | 17 + .../ml_webdev/resources/pages/serviceEditor.htm | 31 + .../Library/ml_webdev/resources/pages/skinApi.htm | 40 ++ .../ml_webdev/resources/pages/transportApi.htm | 64 +++ .../resources/pages/transportEventsApi.htm | 25 + .../Library/ml_webdev/resources/pages/webdev.htm | 29 + .../Library/ml_webdev/resources/pages/webdev.js | 97 ++++ .../Library/ml_webdev/resources/pages/welcome.htm | 22 + 20 files changed, 1330 insertions(+) create mode 100644 Src/Plugins/Library/ml_webdev/resources/gear.png create mode 100644 Src/Plugins/Library/ml_webdev/resources/help.png create mode 100644 Src/Plugins/Library/ml_webdev/resources/pages/api2.js create mode 100644 Src/Plugins/Library/ml_webdev/resources/pages/applicationApi.htm create mode 100644 Src/Plugins/Library/ml_webdev/resources/pages/asyncDownloaderApi.htm create mode 100644 Src/Plugins/Library/ml_webdev/resources/pages/bookmarkApi.htm create mode 100644 Src/Plugins/Library/ml_webdev/resources/pages/configApi.htm create mode 100644 Src/Plugins/Library/ml_webdev/resources/pages/historyApi.htm create mode 100644 Src/Plugins/Library/ml_webdev/resources/pages/mediaCoreApi.htm create mode 100644 Src/Plugins/Library/ml_webdev/resources/pages/playQueueApi.htm create mode 100644 Src/Plugins/Library/ml_webdev/resources/pages/playlistApi.htm create mode 100644 Src/Plugins/Library/ml_webdev/resources/pages/podcastApi.htm create mode 100644 Src/Plugins/Library/ml_webdev/resources/pages/securityApi.htm create mode 100644 Src/Plugins/Library/ml_webdev/resources/pages/serviceEditor.htm create mode 100644 Src/Plugins/Library/ml_webdev/resources/pages/skinApi.htm create mode 100644 Src/Plugins/Library/ml_webdev/resources/pages/transportApi.htm create mode 100644 Src/Plugins/Library/ml_webdev/resources/pages/transportEventsApi.htm create mode 100644 Src/Plugins/Library/ml_webdev/resources/pages/webdev.htm create mode 100644 Src/Plugins/Library/ml_webdev/resources/pages/webdev.js create mode 100644 Src/Plugins/Library/ml_webdev/resources/pages/welcome.htm (limited to 'Src/Plugins/Library/ml_webdev/resources') diff --git a/Src/Plugins/Library/ml_webdev/resources/gear.png b/Src/Plugins/Library/ml_webdev/resources/gear.png new file mode 100644 index 00000000..da8a31d9 Binary files /dev/null and b/Src/Plugins/Library/ml_webdev/resources/gear.png differ diff --git a/Src/Plugins/Library/ml_webdev/resources/help.png b/Src/Plugins/Library/ml_webdev/resources/help.png new file mode 100644 index 00000000..b9eab4e1 Binary files /dev/null and b/Src/Plugins/Library/ml_webdev/resources/help.png differ diff --git a/Src/Plugins/Library/ml_webdev/resources/pages/api2.js b/Src/Plugins/Library/ml_webdev/resources/pages/api2.js new file mode 100644 index 00000000..f61eb4bd --- /dev/null +++ b/Src/Plugins/Library/ml_webdev/resources/pages/api2.js @@ -0,0 +1,624 @@ +function startup(){ +} + +function NotImplementedYet(){ + alert("This method has not been implemented yet"); +} + +function tStopClicked(){ + var t_rc = window.external.Transport.Stop(); +} + +function tPlayClicked(){ + var t_rc = window.external.Transport.Play(); +} + +function tPauseClicked(){ + var t_rc = window.external.Transport.Pause(); +} + +function tPrevClicked(){ + var t_rc = window.external.Transport.Prev(); +} + +function tNextClicked(){ + var t_rc = window.external.Transport.Next(); +} + +function tGetMetadataClicked(){ + var metaTag = document.getElementById("t_t_mTag_in").value; + var metadata = window.external.Transport.GetMetadata(metaTag); + document.getElementById("t_t_mTag_Response").value = metadata; +} + +function tGetShuffleClicked(){ + var t_shuffle = window.external.Transport.shuffle; + document.getElementById("t_t_shuffle").value = t_shuffle; +} + +function tSetShuffleClicked(){ + var t_shuffle = document.getElementById("t_t_shuffle_in").value; + if (t_shuffle == "true") window.external.Transport.shuffle = true; + else window.external.Transport.shuffle = false; + tGetShuffleClicked(); +} + +function tGetRepeatClicked(){ + var t_repeat = window.external.Transport.repeat; + document.getElementById("t_t_repeat").value = t_repeat; +} + +function tSetRepeatClicked(){ + var t_repeat = document.getElementById("t_t_repeat_in").value; + if (t_repeat == "true") window.external.Transport.repeat = true; + else window.external.Transport.repeat = false; + tGetRepeatClicked(); +} + +function tGetPositionClicked(){ + var t_position = window.external.Transport.position; + document.getElementById("t_t_position").value = t_position; +} + +function tSetPositionClicked(){ + var t_position = document.getElementById("t_t_position_in").value; + window.external.Transport.position = parseInt(t_position); + tGetPositionClicked(); +} + +function tLengthClicked(){ + var length = window.external.Transport.length; + document.getElementById("t_t_Length").value = length; +} + +function tURLClicked(){ + var url = window.external.Transport.url; + document.getElementById("t_t_URL").value = url; +} + +function tTitleClicked(){ + var title = window.external.Transport.title; + document.getElementById("t_t_Title").value = title; +} + +function tPlayingClicked(){ + var playing = window.external.Transport.playing; + document.getElementById("t_t_Playing").value = playing; +} + +function tPausedClicked(){ + var paused = window.external.Transport.paused; + document.getElementById("t_t_Paused").value = paused; +} + +function pqPlayClicked() { + var myMusic = document.getElementById("pq_t_PlayURL_in").value; + var title = document.getElementById("pq_t_PlayTitle_in").value + var length = document.getElementById("pq_t_PlayLength_in").value; + var ilength = parseInt(length); + if (isNaN(ilength)) {ilength = 0;} + var pq_play = window.external.PlayQueue.Play(myMusic, title, ilength); +} + +function pqEnqueueClicked() { + var myMusic = document.getElementById("pq_t_EnqueueURL_in").value; + var title = document.getElementById("pq_t_EnqueueTitle_in").value + var length = document.getElementById("pq_t_EnqueueLength_in").value; + var ilength = parseInt(length); + if (isNaN(ilength)) {ilength = 0}; + var pq_play = window.external.PlayQueue.Enqueue(myMusic, title, ilength); +} + +function pqInsertClicked() { + var position = document.getElementById("pq_t_InsertPosition_in").value; + var iposition = parseInt(position); + if (isNaN(iposition)) {iposition = 0;} + var myMusic = document.getElementById("pq_t_InsertURL_in").value; + var title = document.getElementById("pq_t_InsertTitle_in").value + var length = document.getElementById("pq_t_InsertLength_in").value; + var ilength = parseInt(length); + if (isNaN(ilength)) {ilength = 0;} + var pq_play = window.external.PlayQueue.Insert(iposition, myMusic, title, ilength); +} + +function pqClearQClicked() { + var pq_rc = window.external.PlayQueue.ClearQueue(); +} + +function pqGetMetadataClicked(){ + var metaPos = document.getElementById("pq_t_MetadataPosition_in").value; + var imetaPos = parseInt(metaPos); + var metaTag = document.getElementById("pq_t_MTag_in").value; + var metadata = window.external.PlayQueue.GetMetadata(imetaPos, metaTag); + document.getElementById("pq_t_MTag_Response").value = metadata; +} + +function pqGetTitleClicked(){ + var position = document.getElementById("pq_t_TitlePosition_in").value; + var iposition = parseInt(position); + var title = window.external.PlayQueue.GetTitle(iposition); + document.getElementById("pq_t_Title").value = title; +} + +function pqGetURLClicked() { + var position = document.getElementById("pq_t_URLPosition_in").value; + var iposition = parseInt(position); + var url = window.external.PlayQueue.GetURL(iposition); + document.getElementById("pq_t_URL").value = url; +} + +function pqGetLengthClicked(){ + var length = window.external.PlayQueue.length; + document.getElementById("pq_t_Length").value = length; +} + +function pqGetCursorClicked(){ + var cursor = window.external.PlayQueue.cursor; + document.getElementById("pq_t_Cursor").value = cursor; +} + +function pqSetCursorClicked(){ + var pq_cursor = document.getElementById("pq_t_Cursor_in").value; + window.external.PlayQueue.cursor = parseInt(pq_cursor); + pqGetCursorClicked(); +} + +var listPlaylists; +function plsGetPlaylists(){ + listPlaylists = window.external.Playlists.GetPlaylists(); + var numPlaylists = listPlaylists.length; + document.getElementById("pls_t_Count").value = numPlaylists; +} + +function plsViewIndexClicked(){ + var view_index = document.getElementById("pls_t_Index_in").value; + var iview_index = parseInt(view_index); + document.getElementById("pls_t_Filename").value = listPlaylists[iview_index].filename; + document.getElementById("pls_t_Title").value = listPlaylists[iview_index].title; + document.getElementById("pls_t_PlaylistId").value = listPlaylists[iview_index].playlistId; + document.getElementById("pls_t_Length").value = listPlaylists[iview_index].length; + document.getElementById("pls_t_NumItems").value = listPlaylists[iview_index].numitems; + document.getElementById("pls_t_OpenPlaylistId_in").value = listPlaylists[iview_index].playlistId; + document.getElementById("pls_t_SavePlaylistId_in").value = listPlaylists[iview_index].playlistId; +} + +var currentPlaylist; +function plsOpenPlaylistClicked(){ + var id = document.getElementById("pls_t_OpenPlaylistId_in").value; + currentPlaylist = window.external.Playlists.OpenPlaylist(id); + document.getElementById("playlist_t_NumItems").value = currentPlaylist.numitems; + plsDisableListMethods(false); + showPlaylist(); +} + +var currentItemIndex = 0; + +function plsDisablePlaylistMethods(disable){ + var playlistSection = document.getElementById("playlistmethods"); + playlistSection.disabled = disable; + for (var i=0; i < playlistSection.childNodes.length; i++){ + if (playlistSection.childNodes[i].nodeType == 1) { + playlistSection.childNodes[i].disabled = disable; + } + } +} + +function plsDisableListMethods(disable){ + var listSection = document.getElementById("listmethods"); + listSection.disabled = disable; + for (var i=0; i < listSection.childNodes.length; i++){ + if (listSection.childNodes[i].nodeType == 1) { + listSection.childNodes[i].disabled = disable; + } + } +} + +function plsPlaylistViewIndexClicked(){ + var view_index = document.getElementById("playlist_t_ItemIndex_in").value; + var iview_index = parseInt(view_index); + currentItemIndex = iview_index; + document.getElementById("playlist_t_Filename").value = currentPlaylist.GetItemFilename(currentItemIndex); + document.getElementById("playlist_t_Title").value = currentPlaylist.GetItemTitle(currentItemIndex); + document.getElementById("playlist_t_Length").value = currentPlaylist.GetItemLength(currentItemIndex); + plsDisablePlaylistMethods(false); + showPlaylist(); +} + +var playlistwin; +var playlistWinShown = false; +function showPlaylist(){ + var output = ""; + for (var i = 0; i < currentPlaylist.numitems; i++) { + var title = currentPlaylist.GetItemTitle(i); + output += i + ":" + title + "\n"; + } + alert(output); +} + +function plsPlaylistSetItemFilenameClicked(){ + var filename = document.getElementById("playlist_t_SetItemFilename_in").value; + currentPlaylist.SetItemFilename(currentItemIndex, filename); + document.getElementById("playlist_t_Filename").value = filename; +} + +function plsPlaylistSetItemTitleClicked(){ + var title = document.getElementById("playlist_t_SetItemTitle_in").value; + currentPlaylist.SetItemTitle(currentItemIndex, title); + document.getElementById("playlist_t_Title").value = title; +} + +function plsPlaylistSetItemLengthClicked(){ + var length = document.getElementById("playlist_t_SetItemLength_in").value; + var iLength = parseInt(length); + currentPlaylist.SetItemLengthMilliseconds(currentItemIndex, iLength); + document.getElementById("playlist_t_Length").value = length; +} + +function plsPlaylistReverseClicked(){ + currentPlaylist.Reverse(); + showPlaylist(); +} + +function plsPlaylistSwapItemsClicked(){ + var swap1 = document.getElementById("playlist_t_Swap1_in").value; + var swap2 = document.getElementById("playlist_t_Swap2_in").value; + var iswap1 = parseInt(swap1); + var iswap2 = parseInt(swap2); + var rc = currentPlaylist.SwapItems(iswap1, iswap2); + showPlaylist(); +} + +function plsPlaylistRandomizeClicked(){ + currentPlaylist.Randomize(); + showPlaylist(); +} + +function plsPlaylistRemoveClicked(){ + alert("Inside Remove, currentItemIndex=" + currentItemIndex); + currentPlaylist.RemoveItem(currentItemIndex); + showPlaylist(); +} + +function plsPlaylistSortByTitleClicked(){ + currentPlaylist.SortByTitle(); + showPlaylist(); +} + +function plsPlaylistSortByFilenameClicked(){ + currentPlaylist.SortByFilename(); + showPlaylist(); +} + +function plsPlaylistInsertUrlClicked(){ + var url = document.getElementById("playlist_t_InsertUrl_in").value; + var title = document.getElementById("playlist_t_InsertTitle_in").value; + var length = document.getElementById("playlist_t_InsertLength_in").value; + var iLength = parseInt(length); + var rc = currentPlaylist.InsertURL(currentItemIndex, url, title, iLength); + showPlaylist(); +} + +function plsPlaylistAppendUrlClicked(){ + var url = document.getElementById("playlist_t_AppendUrl_in").value; + var title = document.getElementById("playlist_t_AppendTitle_in").value; + var length = document.getElementById("playlist_t_AppendLength_in").value; + var iLength = parseInt(length); + var rc = currentPlaylist.AppendURL(url, title, iLength); + showPlaylist(); +} + +function plsPlaylistClearClicked(){ + var rc = currentPlaylist.Clear(); + showPlaylist(); +} + +function plsSavePlaylistClicked() { + var playlistId = document.getElementById("pls_t_SavePlaylistId_in").value; + var rc = window.external.Playlists.SavePlaylist(playlistId, currentPlaylist); + document.getElementById("playlistmethods").disabled = true; +} + +function BMarkAddClicked(){ + var url = document.getElementById("bmark_t_AddURL_in").value; + var title = document.getElementById("bmark_t_AddTitle_in").value; + var rc = window.external.Bookmarks.Add(url, title); +} + +function PodcastSubscribeClicked(){ + var podcUrl = document.getElementById("podc_t_SubscribeURL_in").value; + var rc = window.external.Podcasts.Subscribe(podcUrl); +} + +function ConfigSetPropertyClicked(){ + var inParam = document.getElementById("config_t_SetPropertyName_in").value; + var inValue = document.getElementById("config_t_SetPropertyValue_in").value; + if (pType[0].checked) { + inValue = "'" + inValue + "'"; + } else if (pType[2].checked){ + if (inValue != "false"){ + inValue = "true"; + } + } + var funcBody = "var rc = window.external.Config." + inParam + "=" + inValue; + var configPropSet = new Function(funcBody); + configPropSet(); +} + +function ConfigGetPropertyClicked(){ + var inParam = document.getElementById("config_t_GetPropertyName_in").value; + var funcBody = "return window.external.Config." + inParam; + var configPropGet = new Function(funcBody); + var propValue = configPropGet(); + document.getElementById("config_t_GetPropertyValue").value = propValue; +} + +function ApplicationLaunchURLClicked(){ + var url = document.getElementById("application_t_URL_in").value; + var forceExternal = document.getElementById("application_t_ForceExternal_in").checked; + var rc = window.external.Application.LaunchURL(url, forceExternal); +} + +function ApplicationNumVersionClicked(){ + var numVer = window.external.Application.version; + document.getElementById("application_t_NumVersion").value = parseInt(numVer); +} + +function ApplicationStringVersionClicked(){ + var stringVer = window.external.Application.versionstring; + document.getElementById("application_t_StringVersion").value = stringVer; +} + +function ApplicationLanguageClicked(){ + var lang = window.external.Application.language; + document.getElementById("application_t_Language").value = lang; +} + +function ApplicationLanguagePackClicked(){ + var langPack = window.external.Application.languagepack; + document.getElementById("application_t_LanguagePack").value = langPack; +} + +function SkinGetClassicColorClicked(){ + var colorNum = document.getElementById("skin_t_ClassicColorNumber_in").value; + var iColorNum = parseInt(colorNum); + var classicColor = window.external.Skin.GetClassicColor(iColorNum); + document.getElementById("skin_t_ClassicColor").value = classicColor; +} + +function SkinGetPlaylistColorClicked(){ + var colorNum = document.getElementById("skin_t_PlaylistColorNumber_in").value; + var iColorNum = parseInt(colorNum); + var playlistColor = window.external.Skin.GetPlaylistColor(iColorNum); + document.getElementById("skin_t_PlaylistColor").value = playlistColor; +} + +function SkinGetSkinColorClicked(){ + var colorName = document.getElementById("skin_t_SkinColorName_in").value; + var skinColor = window.external.Skin.GetSkinColor(colorName); + document.getElementById("skin_t_SkinColor").value = skinColor; +} + +function SkinGetNameClicked(){ + var name = window.external.Skin.name; + document.getElementById("skin_t_Name").value = name; +} + +function SkinSetNameClicked() { + var skinName = document.getElementById("skin_t_Name_in").value; + window.external.Skin.name = skinName; +} + +function SkinGetFontClicked(){ + var font = window.external.Skin.font; + document.getElementById("skin_t_Font").value = font; +} + +function SkinGetFontSizeClicked(){ + var fontsize = window.external.Skin.fontsize; + document.getElementById("skin_t_FontSize").value = fontsize; +} + +function mcGetMetadataClicked(){ + var metaFile = document.getElementById("mc_t_MediaCoreFilename_in").value; + var metaTag = document.getElementById("mc_t_MediaCoreTag_in").value; + var metadata = window.external.MediaCore.GetMetadata(metaFile, metaTag); + document.getElementById("mc_t_MediaCoreMetadata_Response").value = metadata; +} + +function mcIsRegisteredExtensionClicked(){ + var extension = document.getElementById("mc_t_MediaCoreExtension_in").value; + var supported = window.external.MediaCore.IsRegisteredExtension(extension); + document.getElementById("mc_t_MediaCoreRegisteredExtension_Response").value = supported; +} + +function mcAddMetadataHookClicked(){ + var mUrl = document.getElementById("mc_t_AddMetadataHookUrl_in").value; + var mTag = document.getElementById("mc_t_AddMetadataHookTag_in").value; + var mValue = document.getElementById("mc_t_AddMetadataHookValue_in").value; + window.external.MediaCore.AddMetadataHook(mUrl,mTag,mValue); +} + +function mcRemoveMetadataHookClicked(){ + var mUrl = document.getElementById("mc_t_RemoveMetadataHookUrl_in").value; + var mTag = document.getElementById("mc_t_RemoveMetadataHookTag_in").value; + window.external.MediaCore.RemoveMetadataHook(mUrl,mTag); +} + +function teRegisterClicked(){ + var rc = window.external.Transport.RegisterForEvents(onEvents); + document.getElementById("teRegister").disabled = true; + document.getElementById("teUnregister").disabled = false; +} + +function teUnregisterClicked(){ + var rc = window.external.Transport.UnregisterFromEvents(onEvents); + document.getElementById("teRegister").disabled = false; + document.getElementById("teUnregister").disabled = true; +} + +var eventsArray = new Array(); +var eventCount = 0; +function onEvents(event){ + eventsArray[eventCount] = event; + + // populate the select box + var eventSelect = document.getElementById("te_s_Select"); + var newOption = new Option((eventCount + 1) + ":" + event.event, event); + eventSelect.options[eventCount] = newOption; + eventCount++; +} + +function teEventSelected(){ + var sel = document.getElementById("te_s_Select"); + var area = document.getElementById("te_ta_Area"); + var tarea = ""; + var obj = eventsArray[sel.selectedIndex]; + for (var prop in obj){ + tarea += "property:" + prop + " value:" + obj[prop] + "\n\n"; + } + area.value = tarea; +} + +function te_AreaCleared(){ + eventCount = 0; + document.getElementById("te_ta_Area").value = ""; + document.getElementById("te_s_Select").options.length = 0; +} + +function hisQueryClicked(){ + var query = document.getElementById("his_t_Query_in").value; + var respArray = window.external.History.Query(query); + alert(respArray[0].filename); + var textOut = ""; + for (var obj in respArray){ + if (textOut != ""){ + textOut += "\n"; + } + textOut += "=============="; + textOut += "\nTitle: " + respArray[obj].title; + textOut += "\nLastPlay: " + respArray[obj].lastplay; + textOut += "\nPlaycount: " + respArray[obj].playcount; + textOut += "\nFilename: " + respArray[obj].filename; + textOut += "\nLength: " + respArray[obj].length; + } + var textAreaOut = document.getElementById("his_t_Query"); + textAreaOut.value = textOut; +} + +function AsyncDownloadMediaClicked(){ + var url = document.getElementById("asyncdownloader_t_URL_in").value; + var destFile = document.getElementById("asyncdownloader_t_DestinationFile_in").value; + document.getElementById("progressbar").firstChild.nodeValue = ""; + document.getElementById("slider").style.clip = "rect(0px 0px 16px 0px)"; + if (destFile) + var rc = window.external.AsyncDownloader.DownloadMedia(url, destFile); + else + var rc = window.external.AsyncDownloader.DownloadMedia(url); +} + +function AsyncDownloadMediaClicked1(){ + var url = document.getElementById("asyncdownloader_t_URL_in_1").value; + var destFile = document.getElementById("asyncdownloader_t_DestinationFile_in_1").value; + document.getElementById("progressbar1").firstChild.nodeValue = ""; + document.getElementById("slider1").style.clip = "rect(0px 0px 16px 0px)"; + if (destFile) + var rc = window.external.AsyncDownloader.DownloadMedia(url, destFile); + else + var rc = window.external.AsyncDownloader.DownloadMedia(url); +} + +function AsyncDownloadMultipleMediaClicked() { + var multipleUrls = document.getElementById("multiple_urls").value; + var urls = multipleUrls.split(";"); + for(index = 0; index < urls.length; index++){ + if (urls[index].length > 0) { + if (urls[index].indexOf("http://") != -1) urls[index] = urls[index].substr(7); + var rc = window.external.AsyncDownloader.DownloadMedia("http://"+escape(urls[index])); + } + } +} + +function downloaderRegisterClicked(){ + var rc = window.external.AsyncDownloader.RegisterForEvents(onDownloaderEvents); + document.getElementById("downloaderRegister").disabled = true; + document.getElementById("downloaderUnregister").disabled = false; +} + +function downloaderUnregisterClicked(){ + var rc = window.external.AsyncDownloader.UnregisterFromEvents(onDownloaderEvents); + document.getElementById("downloaderRegister").disabled = false; + document.getElementById("downloaderUnregister").disabled = true; +} + +var downloaderEventsArray = new Array(); +var downloaderEventCount = 0; +function downloader_AreaCleared(){ + downloaderEventCount = 0; + document.getElementById("downloader_ta_Area").value = ""; + document.getElementById("downloader_s_Select").options.length = 0; +} + +function onDownloaderEvents(event){ + downloaderEventsArray[downloaderEventCount] = event; + + // populate the select box + var eventSelect = document.getElementById("downloader_s_Select"); + var newOption = new Option((downloaderEventCount + 1) + ":" + event.event, event); + eventSelect.options[downloaderEventCount] = newOption; + downloaderEventCount++; + + var progress, slider; + if (event.url == document.getElementById("asyncdownloader_t_URL_in").value) + { + progress = document.getElementById("progressbar"); + slider = document.getElementById("slider"); + } + if (event.url == document.getElementById("asyncdownloader_t_URL_in_1").value) + { + progress = document.getElementById("progressbar1"); + slider = document.getElementById("slider1"); + } + + if (progress && slider) + { + if (event.event == 'OnInit') + { + progress.firstChild.nodeValue = 'Progress: Start downloading ...'; + } + if (event.event == 'OnData') + { + progress.firstChild.nodeValue = 'Progress: Downloading ...'; + var factor = event.downloadedlen/event.totallen; + slider.firstChild.nodeValue = Math.ceil(factor * 100) + '%'; + slider.style.clip = "rect(0px " + parseInt(factor * 417) + "px 16px 0px)"; + } + if (event.event == 'OnFinish') + { + progress.firstChild.nodeValue = 'Progress: Downloading Succeed'; + slider.firstChild.nodeValue = '100%'; + } + if (event.event == 'OnError' || event.event == 'OnCancel') + { + progress.firstChild.nodeValue = 'Progress: Downloading Failed'; + } + } +} + +function downloaderEventSelected(){ + var sel = document.getElementById("downloader_s_Select"); + var area = document.getElementById("downloader_ta_Area"); + var tarea = ""; + var obj = downloaderEventsArray[sel.selectedIndex]; + if (obj.url) + tarea += "property:url value:" + obj.url + "\n\n"; + if (obj.event == 'OnData') + { + tarea += "property:downloadedlen value:" + obj.downloadedlen + "\n\n"; + tarea += "property:totallen value:" + obj.totallen + "\n\n"; + } + if (obj.event == 'OnFinish') + tarea += "property:destfilename value:" + obj.destfilename + "\n\n"; + if (obj.event == 'OnError') + tarea += "property:error value:" + obj.error + "\n\n"; + area.value = tarea; +} \ No newline at end of file diff --git a/Src/Plugins/Library/ml_webdev/resources/pages/applicationApi.htm b/Src/Plugins/Library/ml_webdev/resources/pages/applicationApi.htm new file mode 100644 index 00000000..96bf4137 --- /dev/null +++ b/Src/Plugins/Library/ml_webdev/resources/pages/applicationApi.htm @@ -0,0 +1,32 @@ + + + + JSAPI2::Application Api + + + + +

Application API

+

Methods:

+ +
+     URL: +
+     Force External Browser: +

Properties:

+ + +
+
+ + +
+
+ + +
+
+ + + + \ No newline at end of file diff --git a/Src/Plugins/Library/ml_webdev/resources/pages/asyncDownloaderApi.htm b/Src/Plugins/Library/ml_webdev/resources/pages/asyncDownloaderApi.htm new file mode 100644 index 00000000..4aab77d1 --- /dev/null +++ b/Src/Plugins/Library/ml_webdev/resources/pages/asyncDownloaderApi.htm @@ -0,0 +1,42 @@ + + + + JSAPI2::AsyncDownloader Api + + + + + +

AsyncDownloader API

+

Methods:

+   URL:   Destination File:  +
Progress:
+
+
0%
+
+   URL:   Destination File:  +
Progress:
+
+
0%
+
+
  URLs:  +
+

Events:

+ + +
+     Callback function:  +

+ Events Received +      + clear +
+ + + + \ No newline at end of file diff --git a/Src/Plugins/Library/ml_webdev/resources/pages/bookmarkApi.htm b/Src/Plugins/Library/ml_webdev/resources/pages/bookmarkApi.htm new file mode 100644 index 00000000..c31bacb5 --- /dev/null +++ b/Src/Plugins/Library/ml_webdev/resources/pages/bookmarkApi.htm @@ -0,0 +1,17 @@ + + + + JSAPI2::Bookmarks Api + + + + +

Bookmarks API

+

Methods:

+ +
+     URL: +
+     Title: + + \ No newline at end of file diff --git a/Src/Plugins/Library/ml_webdev/resources/pages/configApi.htm b/Src/Plugins/Library/ml_webdev/resources/pages/configApi.htm new file mode 100644 index 00000000..a114144e --- /dev/null +++ b/Src/Plugins/Library/ml_webdev/resources/pages/configApi.htm @@ -0,0 +1,28 @@ + + + + JSAPI2::Config Api + + + + +

Config API

+

Methods:

+ +
+     Property Name: +
+     Property Type: + string + number + boolean +
+     Property Value: +

+ +
+     Property Value: +
+     Property Name: + + \ No newline at end of file diff --git a/Src/Plugins/Library/ml_webdev/resources/pages/historyApi.htm b/Src/Plugins/Library/ml_webdev/resources/pages/historyApi.htm new file mode 100644 index 00000000..b7732c01 --- /dev/null +++ b/Src/Plugins/Library/ml_webdev/resources/pages/historyApi.htm @@ -0,0 +1,18 @@ + + + + JSAPI2::History Api + + + + +

History API

+

Methods:

+ +
+      +
+      + + \ No newline at end of file diff --git a/Src/Plugins/Library/ml_webdev/resources/pages/mediaCoreApi.htm b/Src/Plugins/Library/ml_webdev/resources/pages/mediaCoreApi.htm new file mode 100644 index 00000000..3daee11f --- /dev/null +++ b/Src/Plugins/Library/ml_webdev/resources/pages/mediaCoreApi.htm @@ -0,0 +1,37 @@ + + + + JSAPI2::MediaCore Api + + + + +

MediaCore API

+

Methods:

+ + +
+     Filename:  +
+     Metadata Tag:  +

+ + +
+     Extension:  +

+ +
+     URL:  +
+     Metadata Tag:  +
+     Metadata Value:  +

+ +
+     URL:  +
+     Metadata Tag:  + + \ No newline at end of file diff --git a/Src/Plugins/Library/ml_webdev/resources/pages/playQueueApi.htm b/Src/Plugins/Library/ml_webdev/resources/pages/playQueueApi.htm new file mode 100644 index 00000000..6fc63c82 --- /dev/null +++ b/Src/Plugins/Library/ml_webdev/resources/pages/playQueueApi.htm @@ -0,0 +1,74 @@ + + + + JSAPI2::PlayQueue Api + + + + +

PlayQueue API

+

Methods:

+ +
+     URL:  +
+     title:  +
+     length:  +
+
+ +
+     URL:  +
+     title:  +
+     length:  +
+
+ +
+     position:  +
+     URL:  +
+     title:  +
+     length:  +
+
+ +
+
+ + +
+     position:  +
+     Metadata Tag:  +
+
+ + +
+     position:  +
+
+ + +
+     position:  +
+
+

Properties

+ + +
+
+ + +
+ + + + \ No newline at end of file diff --git a/Src/Plugins/Library/ml_webdev/resources/pages/playlistApi.htm b/Src/Plugins/Library/ml_webdev/resources/pages/playlistApi.htm new file mode 100644 index 00000000..1553e875 --- /dev/null +++ b/Src/Plugins/Library/ml_webdev/resources/pages/playlistApi.htm @@ -0,0 +1,118 @@ + + + + JSAPI2::Playlists Api + + + + +

Playlists API

+

Since it is hard to obtain a playlist ID to use in the OpenPlaylist and SavePlaylist methods, click "Get Playlists" to get all the playlists and then "Set Index" to choose one of the playlists. This will pre-populate the playlist IDs for the OpenPlaylist and SavePlaylist buttons. +

Methods:

+ +
+   Count (of playlists): +
+    + +
+
+     Playlist Summary Info: +
+     Playlist ID: +
+     Playlist Num Items: +   (cached, may not be current) +
+     Playlist Filename: +
+     Playlist Title: +
+     Playlist (total) Length: +   (cached, may not be current) +
+
+ + (will also display the playlist) +
+ Count (of items in playlist): +
+     Playlist ID: +
+      + +
+
+
+     Get Item Filename: +
+     Get Item Title: +
+     Get Item Length: +
+
+      +
+       Item Filename: +
+      +
+       Item Title: +
+      +
+       Item Length: +
+
+      +
+
+      + (before the currently selected index) +
+       URL: +
+       title: +
+       length: +
+
+
+
+      +
+       URL: +
+       title: +
+       length: +
+
+      +
+
+      +
+       Index #1: +
+       Index #2: +
+
+      +
+
+      +
+
+      +
+
+      +
+
+
+ +
+     Playlist ID: + + \ No newline at end of file diff --git a/Src/Plugins/Library/ml_webdev/resources/pages/podcastApi.htm b/Src/Plugins/Library/ml_webdev/resources/pages/podcastApi.htm new file mode 100644 index 00000000..5008aba7 --- /dev/null +++ b/Src/Plugins/Library/ml_webdev/resources/pages/podcastApi.htm @@ -0,0 +1,15 @@ + + + + JSAPI2::Podcast Api + + + + +

Podcasts API

+

Methods:

+ +
+     URL: + + \ No newline at end of file diff --git a/Src/Plugins/Library/ml_webdev/resources/pages/securityApi.htm b/Src/Plugins/Library/ml_webdev/resources/pages/securityApi.htm new file mode 100644 index 00000000..72850262 --- /dev/null +++ b/Src/Plugins/Library/ml_webdev/resources/pages/securityApi.htm @@ -0,0 +1,17 @@ + + + + JSAPI2::Security Api + + + + +

Security API

+

TBD

+ + + \ No newline at end of file diff --git a/Src/Plugins/Library/ml_webdev/resources/pages/serviceEditor.htm b/Src/Plugins/Library/ml_webdev/resources/pages/serviceEditor.htm new file mode 100644 index 00000000..c23c73a2 --- /dev/null +++ b/Src/Plugins/Library/ml_webdev/resources/pages/serviceEditor.htm @@ -0,0 +1,31 @@ + + + + Online Services Editor + + + + + + + + +

Online Services Editor

+
+
+
Id:
+ +
Name:
+ +
Url:
+ +
Icon:
+ +
+ Preauthorized service
+ + +
+
+ + \ No newline at end of file diff --git a/Src/Plugins/Library/ml_webdev/resources/pages/skinApi.htm b/Src/Plugins/Library/ml_webdev/resources/pages/skinApi.htm new file mode 100644 index 00000000..425c3217 --- /dev/null +++ b/Src/Plugins/Library/ml_webdev/resources/pages/skinApi.htm @@ -0,0 +1,40 @@ + + + + JSAPI2::Skin Api + + + + +

Skin API

+

Methods:

+ + +
+     color number: +

+ + +
+     color number: +

+ + +
+     color name: +
+

Properties:

+ + +
+ + + +

+ + +

+ + + + \ No newline at end of file diff --git a/Src/Plugins/Library/ml_webdev/resources/pages/transportApi.htm b/Src/Plugins/Library/ml_webdev/resources/pages/transportApi.htm new file mode 100644 index 00000000..c2f9d70d --- /dev/null +++ b/Src/Plugins/Library/ml_webdev/resources/pages/transportApi.htm @@ -0,0 +1,64 @@ + + + + JSAPI2::Transport Api + + + + +

Transport API

+

Methods:

+ + + + + +
+
+ + +
+     Metadata Tag:  +
+

Properties

+ + +
+ + +
+
+ + +
+ + +
+
+ + +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + + + \ No newline at end of file diff --git a/Src/Plugins/Library/ml_webdev/resources/pages/transportEventsApi.htm b/Src/Plugins/Library/ml_webdev/resources/pages/transportEventsApi.htm new file mode 100644 index 00000000..61d91e2b --- /dev/null +++ b/Src/Plugins/Library/ml_webdev/resources/pages/transportEventsApi.htm @@ -0,0 +1,25 @@ + + + + JSAPI2::Transport Events Api + + + + +

Transport Events API

+

Methods:

+ + +

+     Callback function:  +


+ Events Received +      + clear +

+ + + + \ No newline at end of file diff --git a/Src/Plugins/Library/ml_webdev/resources/pages/webdev.htm b/Src/Plugins/Library/ml_webdev/resources/pages/webdev.htm new file mode 100644 index 00000000..b48a8515 --- /dev/null +++ b/Src/Plugins/Library/ml_webdev/resources/pages/webdev.htm @@ -0,0 +1,29 @@ + + + + JSAPI2::Main Page + + + + + +

Winamp Online Services API - Test Web Page

+ +

This page is to help with testing the different API methods of the Winamp Javascript API. In order to point Winamp to your own online service, click here and set the URL to the URL of the main page of your service when prompted.

+

Check the Winamp Javascript API for more info on the API methods used on these test web pages.

+ Transport API

+ Transport Events

+ Playqueue API

+ Playlists API

+ Bookmarks API

+ Podcasts API

+ History API

+ Config API

+ Application API

+ Security API

+ Skins API

+ MediaCore API

+ AsyncDownloader API +
+ + \ No newline at end of file diff --git a/Src/Plugins/Library/ml_webdev/resources/pages/webdev.js b/Src/Plugins/Library/ml_webdev/resources/pages/webdev.js new file mode 100644 index 00000000..14f5d199 --- /dev/null +++ b/Src/Plugins/Library/ml_webdev/resources/pages/webdev.js @@ -0,0 +1,97 @@ +function GetUrlParam(name) +{ + name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); + var regexS = "[\\?&]"+name+"=([^&#]*)"; + var regex = new RegExp( regexS ); + var results = regex.exec( window.location.href ); + if( results == null ) + return ""; + else + return results[1]; +} + +function WebDev_OpenService(serviceId, forceUrl) +{ + if (typeof(window.external.WebDev) == "undefined") + alert("Cannot access Webdev Api"); + else if (false == window.external.WebDev.serviceOpen(serviceId, forceUrl)) + alert("Unable to open service"); +} +function WebDev_OpenDocumentation() +{ + WebDev_OpenService(701, null); +} + +function WebDev_OpenJSAPI2Test() +{ + WebDev_OpenService(702, null); +} + +function WebDev_CreateService() +{ + if (typeof(window.external.WebDev) == "undefined") + alert("Cannot access Webdev Api"); + else if (false == window.external.WebDev.serviceCreate()) + alert("Unable to create service"); +} + +function WebDevEditor_Init(url) +{ + var serviceId = parseInt(GetUrlParam("serviceId"), 10); + + if (typeof(window.external.WebDev) == "undefined") + alert("Cannot access Webdev Api"); + else + { + var info = window.external.WebDev.serviceGetInfo(serviceId); + if (null == info) + { + alert("Unable to get service information"); + } + else + { + document.getElementById("scvedt_edt_id").value = info.id; + document.getElementById("scvedt_edt_name").value = info.name; + document.getElementById("scvedt_edt_url").value = info.url; + document.getElementById("scvedt_edt_icon").value = info.icon; + document.getElementById("svcedt_chk_bypass").checked = (true == info.preauthorized) ? "checked" : null; + } + } +} + +function WebDevEditor_Save() +{ + if (typeof(window.external.WebDev) == "undefined") + alert("Cannot access Webdev Api"); + else + { + var serviceId = parseInt(document.getElementById("scvedt_edt_id").value, 10); + if (0 != serviceId) + { + var serviceName = document.getElementById("scvedt_edt_name").value; + var serviceUrl = document.getElementById("scvedt_edt_url").value; + var serviceIcon = document.getElementById("scvedt_edt_icon").value; + var serviceAuth = document.getElementById("svcedt_chk_bypass").checked; + if (false == window.external.WebDev.serviceSetInfo(serviceId, serviceName, serviceIcon, serviceUrl, serviceAuth)) + { + alert("Unable to set service info"); + } + if (false == window.external.WebDev.serviceOpen(serviceId, 1)) + { + alert("Unable to navigate"); + } + } + } +} + +function WebDevEditor_Close() +{ + if (typeof(window.external.WebDev) == "undefined") + alert("Cannot access Webdev Api"); + else + { + var serviceId = parseInt(document.getElementById("scvedt_edt_id").value, 10); + if (0 == serviceId || false == window.external.WebDev.serviceOpen(serviceId, 1)) + alert("Unable to navigate"); + } +} \ No newline at end of file diff --git a/Src/Plugins/Library/ml_webdev/resources/pages/welcome.htm b/Src/Plugins/Library/ml_webdev/resources/pages/welcome.htm new file mode 100644 index 00000000..a89bc2c5 --- /dev/null +++ b/Src/Plugins/Library/ml_webdev/resources/pages/welcome.htm @@ -0,0 +1,22 @@ + + + + WebDev Home Page + + + + + + + +
+
Welcome to WebDev
+
+

The Webdev plug-in is designed to help with the process of creating Online Services for Winamp. The plug-in uses the same browser engine as the Online Media plug-in in the Media Library and also has access to JSAPI2, making it perfect for you to work with.

+

If you have any questions about how to write an Online Service or just want to share knowledge with others - the Online Documentation is your best friend.

+

New to JSAPI? Want to know what it is capable of and see the client web interaction with your own eyes? Then visit the JSAPI2 Test Page.

+

Having your own service is always better than using another, so if you feel like it is time to change the world - Create Your Own Service and make the world a better place!

+
+
+ + \ No newline at end of file -- cgit