|
Changed |
_service
|
[-]
[+]
|
Added |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/README.md
^
|
@@ -0,0 +1,2 @@
+# harbour-bassoontracker
+A WebView wrapper around https://www.stef.be/bassoontracker/
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/harbour-bassoontracker.desktop
^
|
@@ -15,4 +15,4 @@
# Replace with your organization as a reverse domain name
OrganizationName=de.poetaster
ApplicationName=bassoontracker
-Permissions=Permissions=UserDirs;WebView;Audio;Internet
+Permissions=UserDirs;WebView;Audio;Internet
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/index.html
^
|
@@ -49,39 +49,6 @@
<script>var buildNumber = "0.4.2-build20220321.1234"; var versionNumber = "0.4.2";</script>
<script src="script/bassoontracker-min.js?v0.4.2-build20220321.1234"></script>
- <script>
- (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
- (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
- m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
- })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
-
- ga('create', 'UA-2499735-7', 'auto');
- ga('send', 'pageview');
-
- // force HTTPS - it is needed for the Dropbox integration
- if (document.location.href.indexOf("stef.be")>0 && document.location.href.indexOf("https:")<0){
- document.location.href = document.location.href.replace("http:","https:");
- }
-
- if (document.location.href.indexOf("updateversion")<0){
- if (window.XMLHttpRequest) {
- var req = new XMLHttpRequest();
- req.onreadystatechange = function() {
- if (this.readyState === 4 && this.status === 200) {
- var version = this.responseText;
- if (version != versionNumber){
- console.log("update available");
- var char = document.location.href.indexOf("?") > 0 ? "&" : "?";
- document.location.href = document.location.href + char + "updateversion=" + version;
- }
- }
- };
- req.open("GET", "version.txt?r=" + new Date().getTime(), true);
- req.send();
- }
- }
-
- </script>
</head>
<body>
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/app.js
^
|
@@ -1,145 +0,0 @@
-var App = (function(){
- var me = {};
-
- me.buildNumber = (typeof buildNumber === "undefined") ? "" : buildNumber;
-
- me.init = function(){
-
- if (typeof Midi === "object" && SETTINGS && SETTINGS.midi && SETTINGS.midi!=="disabled") Midi.init();
-
- EventBus.on(EVENT.command,function(command){
- window.focus();
-
- switch (command){
- case COMMAND.newFile:
- Tracker.new();
- break;
- case COMMAND.openFile:
- EventBus.trigger(EVENT.showView,"diskop_modules_load");
- break;
- case COMMAND.saveFile:
- EventBus.trigger(EVENT.showView,"diskop_modules_save");
- break;
- case COMMAND.clearTrack:
- Editor.clearTrack();
- break;
- case COMMAND.clearPattern:
- Editor.clearPattern();
- break;
- case COMMAND.clearInstruments:
- Tracker.clearInstruments();
- break;
- case COMMAND.clearSong:
- Editor.clearSong();
- break;
- case COMMAND.showMain:
- EventBus.trigger(EVENT.showView,"main");
- break;
- case COMMAND.showTopMain:
- EventBus.trigger(EVENT.showView,"topmain");
- break;
- case COMMAND.showBottomMain:
- EventBus.trigger(EVENT.showView,"bottommain");
- break;
- case COMMAND.showOptions:
- EventBus.trigger(EVENT.showView,"options");
- break;
- case COMMAND.showFileOperations:
- EventBus.trigger(EVENT.showView,"diskop_load");
- break;
- case COMMAND.showSampleEditor:
- EventBus.trigger(EVENT.showView,"sample");
- break;
- case COMMAND.togglePiano:
- EventBus.trigger(EVENT.toggleView,"piano");
- break;
- case COMMAND.toggleAppSideBar:
- EventBus.trigger(EVENT.toggleView,"sidebar");
- break;
- case COMMAND.showAbout:
- var dialog = UI.modalDialog();
- dialog.setProperties({
- width: UI.mainPanel.width,
- height: UI.mainPanel.height,
- top: 0,
- left: 0,
- ok: true
- });
- dialog.onClick = dialog.close;
-
- var version = Host.getVersionNumber();
- var build = Host.getBuildNumber();
- dialog.setText("BassoonTracker//Old School Amiga MOD and XM tracker/in plain javascript//©2017-2021 by Steffest//version " + version + "//Fork me on Github!");
-
- UI.setModalElement(dialog);
- break;
- case COMMAND.showHelp:
- window.open("https://www.stef.be/bassoontracker/docs/");
- break;
- case COMMAND.randomSong:
- UI.diskOperations.playRandomSong();
- break;
- case COMMAND.randomSongXM:
- UI.diskOperations.playRandomSong("xm");
- break;
- case COMMAND.showGithub:
- window.open("https://github.com/steffest/bassoontracker");
- break;
- case COMMAND.showStats:
- var stats = document.getElementById("MrDStats");
- if (!stats){
- var script=document.createElement('script');
- script.onload=function(){
- var stats=new Stats();
- document.body.appendChild(stats.dom);
- requestAnimationFrame(function loop(){
- stats.update();
- requestAnimationFrame(loop)
- });
- };
- script.src='script/plugins/stats.js';
- document.head.appendChild(script);
- break;
- }
- break;
- case COMMAND.cut:
- UI.cutSelection(true);
- break;
- case COMMAND.copy:
- UI.copySelection(true);
- break;
- case COMMAND.paste:
- UI.pasteSelection(true);
- break;
- case COMMAND.pattern2Sample:
- Editor.renderTrackToBuffer();
- break;
- case COMMAND.undo:
- EventBus.trigger(EVENT.commandUndo);
- break;
- case COMMAND.redo:
- EventBus.trigger(EVENT.commandRedo);
- break;
- case COMMAND.nibbles:
- Plugin.load("Nibbles",function(){
- Nibbles.init({
- UI:UI,
- Input: Input,
- Y: Y,
- EventBus: EventBus,
- EVENT: EVENT,
- COMMAND: COMMAND,
- Layout: Layout
- });
- });
- break;
- }
- });
- };
-
- me.doCommand = function(command){
- EventBus.trigger(EVENT.command,command);
- };
-
- return me;
-})();
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/audio.js
^
|
@@ -1,763 +0,0 @@
-var Audio = (function(){
- var me = {};
-
- window.AudioContext = window.AudioContext||window.webkitAudioContext;
- window.OfflineAudioContext = window.OfflineAudioContext||window.webkitOfflineAudioContext;
-
- var context;
- var masterVolume;
- var cutOffVolume;
- var lowPassfilter;
- var i;
- var filterChains = [];
- var isRecording;
- var recordingAvailable;
- var mediaRecorder;
- var recordingChunks = [];
- var offlineContext;
- var onlineContext;
- var currentStereoSeparation = STEREOSEPARATION.BALANCED;
- var lastMasterVolume = 0;
- var usePanning;
- var hasUI;
- var scheduledNotes = [[],[],[]];
- var scheduledNotesBucket = 0;
- var prevSampleRate = 4143.569;
-
- var filters = {
- volume: true,
- panning: true,
- high: true,
- mid: true,
- low: true,
- lowPass : true,
- reverb: true,
- distortion: false
- };
-
- var isRendering = false;
-
- function createAudioConnections(audioContext,destination){
-
- cutOffVolume = audioContext.createGain();
- cutOffVolume.gain.setValueAtTime(1,0);
-
- // Haas effect stereo expander
- var useStereoExpander = false;
- if (useStereoExpander){
- var splitter = audioContext.createChannelSplitter(2);
- var merger = audioContext.createChannelMerger(2);
- var haasDelay = audioContext.createDelay(1);
- cutOffVolume.connect(splitter);
- splitter.connect(haasDelay, 0);
- haasDelay.connect(merger, 0, 0);
- splitter.connect(merger, 1, 1);
- merger.connect(destination || audioContext.destination);
- window.haasDelay = haasDelay;
- }else{
- cutOffVolume.connect(destination || audioContext.destination);
- }
-
-
-
-
-
-
-
- masterVolume = audioContext.createGain();
- masterVolume.connect(cutOffVolume);
- me.setMasterVolume(1);
-
- lowPassfilter = audioContext.createBiquadFilter();
- lowPassfilter.type = "lowpass";
- lowPassfilter.frequency.setValueAtTime(20000,0);
-
- lowPassfilter.connect(masterVolume);
-
- me.masterVolume = masterVolume;
- me.cutOffVolume = cutOffVolume;
- me.lowPassfilter = lowPassfilter;
- }
-
- if (AudioContext){
- context = new AudioContext();
- }
-
- me.init = function(audioContext,destination){
-
- audioContext = audioContext || context;
- context = audioContext;
- me.context = context;
- if (!audioContext) return;
-
- usePanning = !!Audio.context.createStereoPanner;
- if (!usePanning){
- console.warn("Warning: Your browser does not support StereoPanners ... all mods will be played in mono!")
- }
- hasUI = typeof Editor !== "undefined";
-
- createAudioConnections(audioContext,destination);
-
- var numberOfTracks = Tracker.getTrackCount();
- filterChains = [];
-
- function addFilterChain(){
- var filterChain = FilterChain(filters);
- filterChain.output().connect(lowPassfilter);
- filterChains.push(filterChain);
- }
-
- for (i = 0; i<numberOfTracks;i++)addFilterChain();
-
- me.filterChains = filterChains;
- me.usePanning = usePanning;
-
- if (!isRendering){
- EventBus.on(EVENT.trackStateChange,function(state){
- if (typeof state.track != "undefined" && filterChains[state.track]){
- filterChains[state.track].volumeValue(state.mute?0:70);
- }
- });
-
-
- EventBus.on(EVENT.trackCountChange,function(trackCount){
- for (i = filterChains.length; i<trackCount;i++)addFilterChain();
- EventBus.trigger(EVENT.filterChainCountChange,trackCount);
- me.setStereoSeparation(currentStereoSeparation);
- });
-
- EventBus.on(EVENT.trackerModeChanged,function(mode){
- me.setStereoSeparation();
- });
- }
- };
-
-
- me.enable = function(){
- cutOffVolume.gain.setValueAtTime(1,0);
- me.cutOff = false;
- };
-
- me.disable = function(){
- cutOffVolume.gain.setValueAtTime(0,0);
- me.cutOff = true;
-
- var totalNotes = 0;
- scheduledNotes.forEach(function(bucket,index){
- totalNotes += bucket.length;
- bucket.forEach(function(volume){
- volume.gain.cancelScheduledValues(0);
- volume.gain.setValueAtTime(0,0);
- });
- scheduledNotes[index] = [];
- });
-
- if (totalNotes) console.log(totalNotes + " cleared");
- };
-
- me.checkState = function(){
- if (context){
- if (context.state === "suspended" && context.resume){
- console.warn("Audio context is suspended - trying to resume");
- context.resume();
- }
- }
- };
-
-
- me.playSample = function(index,period,volume,track,effects,time,noteIndex){
-
- var audioContext;
- if (isRendering){
- audioContext = offlineContext;
- }else{
- audioContext = context;
- me.enable();
- }
-
- period = period || 428; // C-3
- if (typeof track === "undefined") track = (hasUI ? Editor.getCurrentTrack() : 0);
- time = time || context.currentTime;
-
- if (noteIndex === NOTEOFF){
- volume = 0; // note off
- }
-
- var instrument = Tracker.getInstrument(index);
- var basePeriod = period;
- var volumeEnvelope;
- var panningEnvelope;
- var scheduled;
- var pan = 0;
-
- if (instrument){
- var sampleBuffer;
- var offset = 0;
- var sampleLength = 0;
-
- volume = typeof volume === "undefined" ? (100*instrument.sample.volume/64) : volume;
-
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/audio/8svx.js
^
|
@@ -1,38 +0,0 @@
-function read8SVXsample(file,sample){
- // format description on http://wiki.amigaos.net/wiki/8SVX_IFF_8-Bit_Sampled_Voice
-
- console.error("reading 8SVX sample");
-
- // IFF file
- function readChuck(){
- var chunk = {};
- chunk.name = file.readString(4);
- chunk.size = file.readDWord();
- return chunk;
- }
-
- file.litteEndian = false;
- file.goto(12);
-
- // look for BODY chunck
- var chunk = readChuck();
- while (chunk.name != "BODY" && !file.isEOF(10)){
-
- if (chunk.name == "NAME"){
- sample.name = file.readString(chunk.size);
- }else{
- file.jump(chunk.size);
-
- // TODO: should we read the header to find loop repeat points?
- // can't seem to find an example file that uses that.
- }
- chunk = readChuck();
- }
-
- if (chunk.name == "BODY"){
- for (var j = 0; j<chunk.size; j++){
- var b = file.readByte();
- sample.data.push(b / 127)
- }
- }
-}
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/audio/detectSampleType.js
^
|
@@ -1,80 +0,0 @@
-function detectSampleType(file,sample,next){
-
- // detects the sample type of a binary stream
- // if sample is given it also reads and decodes it into sample.data
-
- // let's assume it's a 8-bit raw audio file like found on the amiga ST disks by default
- var sampleType = SAMPLETYPE.RAW_8BIT;
- var decoder = readRAWsample;
-
- // if we have original samplerate we can use WebAudio to decode most formats
- var ext = "";
- if (sample && sample.name) {
- ext = sample.name.split(".").pop().toLowerCase();
- }
-
- sample.info = getSamplerate(file, ext);
-
- switch (sample.info.type) {
- case "WAVE_PCM":
- case "RIFF":
- case "MP3":
- case "FLAC":
- case "OGG":
- case "OPUS":
- sampleType = SAMPLETYPE[sample.info.type];
- decoder = decodeFileWithAudioContext; //readRIFFsample;
- break;
- case "FORM":
- file.goto(8);
- var subId = file.readString(4);
- if (subId == "8SVX"){
- sampleType = SAMPLETYPE.IFF_8SVX;
- decoder = read8SVXsample;
- }
- break;
- default:
- console.log('Unknown sample format, expect RAW_8BIT:', sample.info)
- break;
- }
-
-
- if (sample && decoder){
- decoder(file,sample,next);
- }else{
- if (next){
- next(sampleType)
- }else{
- return sampleType;
- }
- }
-}
-
-function decodeFileWithAudioContext(file,sample,next){
- // need to use original samplerate, not the one defined in users OS/Browser
- Audio.converter = new AudioContext( {sampleRate: sample.info.sampleRate} );
- if (Audio.converter.sampleRate !== sample.info.sampleRate) {
- console.log('Could not initiate desired sampleRate of '+ sample.info.sampleRate +' instead got '+ Audio.converter.sampleRate);
- }
- Audio.converter.decodeAudioData(
- file.buffer,
- function(buffer) {
- if (!buffer) {
- alert('error decoding file data: ' + url);
- return;
- }
- // todo: show dialog for stereo samples ?
- sample.data = buffer.getChannelData(0);
- if (sample.data && !sample.data.concat){
- // typed arrays don't have the concat method
- sample.data = Array.from(sample.data);
- }
- sample.length = buffer.length;
- if (next) next();
- },
- function(error) {
- console.error('decodeAudioData error', error);
- if (next) next();
- }
- );
-}
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/audio/filterChain.js
^
|
@@ -1,301 +0,0 @@
-FilterChain = (function(filters) {
-
- var me = {};
-
- filters = filters || {
- volume: true,
- panning: true
- };
-
- // disable for now: sounds muffled;
- var disableFilters = true;
-
- if (disableFilters){
- filters = {
- volume: true,
- panning: true
- };
- }
-
- var useVolume = filters.volume;
- var usePanning = filters.panning && Audio.context.createStereoPanner;
- var useHigh = filters.high;
- var useMid = filters.mid;
- var useLow = filters.low;
- var useLowPass = filters.lowPass;
- var useReverb = filters.reverb;
- var useDistortion = filters.distortion;
-
- var input,output,output2;
-
- var lowValue = 0.0;
- var midValue = 0.0;
- var highValue = 0.0;
- var volumeValue = 70;
- var panningValue = 0;
-
- var FREQ_MUL = 7000;
- var QUAL_MUL = 30;
-
- var context = Audio.context;
-
- var volumeGain,highGain,midGain,lowGain,lowPassfilter,reverb,reverbGain,panner;
-
- // use a simple Gain as input so that we can leave this connected while changing filters
- input = context.createGain();
- input.gain.value=1;
- output = input;
-
-
- function connectFilters(){
-
- output = input;
-
- if (useHigh){
- highGain = highGain || createHigh();
- output.connect(highGain);
- output = highGain;
- }
-
- if (useMid){
- midGain = midGain || createMid();
- output.connect(midGain);
- output = midGain;
- }
-
- if (useLow){
- lowGain = lowGain || createLow();
- output.connect(lowGain);
- output = lowGain;
- }
-
- if (useLowPass){
- lowPassfilter = lowPassfilter || createLowPass();
- output.connect(lowPassfilter);
- output = lowPassfilter;
- }
-
- if (useReverb){
- reverb = reverb || context.createConvolver();
- reverbGain = reverbGain || context.createGain();
- reverbGain.gain.value = 0;
-
- output.connect(reverbGain);
- reverbGain.connect(reverb);
- output2 = reverb;
- }
-
- if (useDistortion){
- var distortion = context.createWaveShaper();
- distortion.curve = distortionCurve(400);
- distortion.oversample = '4x';
- }
-
- if (usePanning){
- panner = panner || Audio.context.createStereoPanner();
- output.connect(panner);
- output = panner;
- }
-
- // always use volume as last node - never disconnect this
-
- volumeGain = volumeGain ||context.createGain();
- output.connect(volumeGain);
- if (output2) output2.connect(volumeGain);
- output = volumeGain;
-
- }
-
- function disConnectFilter(){
- input.disconnect();
- if (highGain) highGain.disconnect();
- if (midGain) midGain.disconnect();
- if (lowGain) lowGain.disconnect();
- if (lowPassfilter) lowPassfilter.disconnect();
- if (reverbGain) reverbGain.disconnect();
- if (panner) panner.disconnect();
- output2 = undefined;
- }
-
-
- function createHigh(){
- var filter = context.createBiquadFilter();
- filter.type = "highshelf";
- filter.frequency.value = 3200.0;
- filter.gain.value = highValue;
- return filter;
- }
-
- function createMid(){
- var filter = context.createBiquadFilter();
- filter.type = "peaking";
- filter.frequency.value = 1000.0;
- filter.Q.value = 0.5;
- filter.gain.value = midValue;
- return filter;
- }
-
- function createLow(){
- var filter = context.createBiquadFilter();
- filter.type = "lowshelf";
- filter.frequency.value = 320.0;
- filter.gain.value = lowValue;
- return filter;
- }
-
- function createLowPass(){
- var filter = context.createBiquadFilter();
- filter.type = "lowpass";
- filter.frequency.value = 5000;
- return filter;
- }
-
- function init(){
- connectFilters();
- me.volumeValue(volumeValue);
- }
-
- function distortionCurve(amount) {
- var k = typeof amount === 'number' ? amount : 50,
- n_samples = 44100,
- curve = new Float32Array(n_samples),
- deg = Math.PI / 180,
- i = 0,
- x;
- for ( ; i < n_samples; ++i ) {
- x = i * 2 / n_samples - 1;
- curve[i] = ( 3 + k ) * x * 20 * deg / ( Math.PI + k * Math.abs(x) );
- }
- return curve;
- }
-
- me.lowValue = function(value) {
- if (!useLow) return;
- if (typeof value !== "undefined"){
- var maxRange = 20;
- lowValue = value;
- lowGain.gain.value = lowValue * maxRange ;
- }
- return lowValue;
- };
-
- me.midValue = function(value) {
- if (!useMid) return;
- if (typeof value !== "undefined"){
- var maxRange = 20;
- midValue = value;
- midGain.gain.value = midValue * maxRange ;
- }
- return midValue;
- };
-
- me.highValue = function(value) {
- if (!useHigh) return;
- if (typeof value !== "undefined"){
- var maxRange = 20;
- highValue = value;
- highGain.gain.value = highValue * maxRange ;
- }
- return highValue;
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/audio/getSamplerate.js
^
|
@@ -1,141 +0,0 @@
-/* getSamplerate adapted for BassoonTracker
- Source: https://gist.github.com/DrSnuggles/5f956f4e210d6716aa764fa8fea4a680
- https://github.com/DrSnuggles/jsGoniometer/blob/master/getSamplerate.js
- License : WTFPL 2.0, Beerware Revision 42
-
- WebAudio lags of information which samplerate was used in original source
- https://github.com/WebAudio/web-audio-api/issues/30
- and always resamples to audio device sample rate
- https://stackoverflow.com/questions/51252732/javascript-getchanneldata-some-out-of-bounds
-*/
-function getSamplerate(file,ext) {
- var ret = {}; // return object
- var sbuf8 = new Uint8Array(file.buffer);
- ret.type = String.fromCharCode(sbuf8[0]) + String.fromCharCode(sbuf8[1]) + String.fromCharCode(sbuf8[2]) + String.fromCharCode(sbuf8[3])
-
- // identify type
- if (ret.type === "RIFF") {
- ret.type = "WAVE_PCM";
- // https://de.wikipedia.org/wiki/RIFF_WAVE
- // http://soundfile.sapp.org/doc/WaveFormat/
- // The default byte ordering assumed for WAVE data files is little-endian. Files written using the big-endian byte ordering scheme have the identifier RIFX instead of RIFF.
- // look for 'fmt '
- //format description: http://soundfile.sapp.org/doc/WaveFormat/
-
- ret.chunkSize = (sbuf8[4]) + (sbuf8[5]<<8) + (sbuf8[6]<<16) + (sbuf8[7]<<24);
- var str = getAsString(sbuf8);
- var fmtStart = str.indexOf("fmt ");
- ret.audioFormat = (sbuf8[fmtStart+8]) + (sbuf8[fmtStart+9]<<8);
- ret.numberOfChannels = (sbuf8[fmtStart+10]) + (sbuf8[fmtStart+11]<<8);
- ret.sampleRate = (sbuf8[fmtStart+12]) + (sbuf8[fmtStart+13]<<8) + (sbuf8[fmtStart+14]<<16) + (sbuf8[fmtStart+15]<<24);
- ret.bits = (sbuf8[fmtStart+22]) + (sbuf8[fmtStart+23]<<8); // per sample
- } else if (ret.type === "fLaC") {
- ret.type = "FLAC";
- // FLAC
- // https://xiph.org/flac/format.html#def_STREAMINFO
- // big-endian
- ret.sampleRate = (sbuf8[18]<<12) + (sbuf8[19]<<4) + ((sbuf8[20] & 0xF0)>>4); // 0b11110000 = 0xF0 uglify problem
- ret.numberOfChannels = ((sbuf8[20] & 0xE)>>1) + 1; // have to add 1 here, 0b00001110=0xE
- ret.bits = ((sbuf8[20] & 0x1)<<4) + ((sbuf8[21] & 0xF0)>>4) + 1; // have to add 1 here
- } else if (ret.type === "OggS") { // Vorbis: OGG or OPUS
- var str = getAsString(sbuf8);
- var opusHead = str.indexOf('OpusHead')
- if (opusHead != -1) {
- opusHead += 8;
- ret.type = "OPUS";
- ret.version = sbuf8[opusHead];
- ret.numberOfChannels = sbuf8[opusHead+1];
- ret.preSkip = (sbuf8[opusHead+2]) + (sbuf8[opusHead+3]<<8);
- ret.sampleRate = (sbuf8[opusHead+4]) + (sbuf8[opusHead+5]<<8) + (sbuf8[opusHead+6]<<16) + (sbuf8[opusHead+7]<<24); // original samplerate
- //ret.sampleRate = 48000; // default opus samplerate
- } else {
- ret.type = "OGG";
- // https://stackoverflow.com/questions/45231773/how-to-get-sample-rate-by-ogg-vorbis-byte-buffer
- // https://xiph.org/vorbis/doc/Vorbis_I_spec.pdf
- ret.numberOfChannels = (sbuf8[39]);
- ret.sampleRate = (sbuf8[40]) + (sbuf8[41]<<8) + (sbuf8[42]<<16) + (sbuf8[43]<<24) + (sbuf8[44]<<32) + (sbuf8[45]<<40) + (sbuf8[46]<<48) + (sbuf8[47]<<56);
- ret.bits = (sbuf8[48]) + (sbuf8[49]<<8) + (sbuf8[50]<<16) + (sbuf8[51]<<24);
- }
- } else if (String.fromCharCode(sbuf8[4]) + String.fromCharCode(sbuf8[5]) + String.fromCharCode(sbuf8[6]) + String.fromCharCode(sbuf8[7]) === "ftyp") {
- ret.type = "MP4";
- // http://xhelmboyx.tripod.com/formats/mp4-layout.txt
- // big endian
- //var subtype = ret.str.substr(8, 4); // "avc1", "iso2", "isom", "mmp4", "mp41", "mp42", "mp71", "msnv", "ndas", "ndsc", "ndsh", "ndsm", "ndsp", "ndss", "ndxc", "ndxh", "ndxm", "ndxp", "ndxs"
- var str = getAsString(sbuf8);
- var mdhdStart = str.indexOf("mdhd");
- var version = sbuf8[mdhdStart+4];
- //console.log("MP4 Version "+ version);
- if (version === 1) {
- ret.sampleRate = (sbuf8[mdhdStart+16+8]<<24) + (sbuf8[mdhdStart+17+8]<<16) + (sbuf8[mdhdStart+18+8]<<8) + sbuf8[mdhdStart+19+8];
- } else {
- ret.sampleRate = (sbuf8[mdhdStart+16]<<24) + (sbuf8[mdhdStart+17]<<16) + (sbuf8[mdhdStart+18]<<8) + sbuf8[mdhdStart+19];
- }
- } else if (ret.type.substring(0, 3) === "ID3") {
- // MP3 is only good identifyable if ID3 is present
- ret = getMP3Header(sbuf8);
- } else {
- // check for MP3 only by file extension, trying to validate header info went often wrong for IFF,RAW samples
- if (ext === 'mp3') {
- ret = getMP3Header(sbuf8);
- }
-
- if (!ret) {
- // unknown format
- console.error("getSamplerate found unknown format", ret.type);
- }
- }
-
- return ret;
-
- //
- // Helper
- //
- function getAsString(buf) {
- var ret = [];
- var strLen = Math.min(buf.length, 1024*1024); // not all the buffer
- for (var i = 0; i < strLen; i++) {
- ret.push( String.fromCharCode(buf[i]) );
- }
- return ret.join("");
- }
- function getMP3Header(buf) {
- /* read samplerate from frame: https://de.wikipedia.org/wiki/MP3#Frame-Header
- https://www.mp3-tech.org/programmer/frame_header.html
- first we need to know ID = MPEG version (2 bits)
- then we another 2bits (sample rate freq index) and we can look in table which samplerate was used
-
- Sampling rate frequency index
- bits MPEG1 MPEG2 MPEG2.5
- 00 44100 Hz 22050 Hz 11025 Hz
- 01 48000 Hz 24000 Hz 12000 Hz
- 10 32000 Hz 16000 Hz 8000 Hz
- 11 reserv. reserv. reserv.
- */
- for (var i = 500; i < buf.length-1; i++) { // before it's not our header
- if (buf[i] === 0xFF && (buf[i+1] & 0xE0) === 0xE0) {
- // header found
- var MP3_translate_ID = ["MPEG Version 2.5", "reserved", "MPEG Version 2", "MPEG Version 1"];
- var MP3_translate_Layer = ["reserved", "Layer III", "Layer II", "Layer I"];
- var MP3_translate_numChannels = /*["Stereo", "Joint Stereo", "2 Mono", "Mono"]*/ [2,2,2,1];
- var MP3_divisor = [4, 0, 2, 1]; // ID=1 -> div=0 !
- var MP3_baseRate = [44100, 48000, 32000]
- var ID = ((buf[i+1] & 0x18)>>3); // 0b00011000
- var Layer = ((buf[i+1] & 6)>>1); // 0b00000110
- var bitrate = ((buf[i+2] & 0xF0)>>4); // 0b11110000
- var srate = ((buf[i+2] & 0xC)>>2); // 0b00001100
- var channels = ((buf[i+3] & 0xC0)>>6); // 0b11000000
-
- return {
- ID: ID,
- Layer: Layer,
- srate: srate,
- type: 'MP3',
- info: MP3_translate_ID[ID] +" "+ MP3_translate_Layer[Layer],
- sampleRate: (!isNaN(MP3_baseRate[srate] / MP3_divisor[ID])) ? MP3_baseRate[srate] / MP3_divisor[ID] : Audio.context.sampleRate,
- numberOfChannels: MP3_translate_numChannels[channels],
- }
- }
- }
- return false;
- }
-}
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/audio/midi.js
^
|
@@ -1,125 +0,0 @@
-var Midi = function(){
- var me = {};
- var inputs;
- var outputs;
- var enabled;
-
-
- me.init = function(){
- if (navigator.requestMIDIAccess) {
- // TODO: does a browser that supports requestMIDIAccess also always support promises?
- navigator.requestMIDIAccess().then(onMIDISuccess, onMIDIFailure);
- function onMIDISuccess(midiAccess) {
- console.log("Midi enabled");
- enabled = true;
- var inputs = midiAccess.inputs;
- var outputs = midiAccess.outputs;
-
- //for (var input of inputs.values()) input.onmidimessage = getMIDIMessage;
- // this barfs on non ES6 browsers -> use Arrays
-
- var _inputs = Array.from(inputs.values());
- _inputs.forEach(function(input){
- input.onmidimessage = getMIDIMessage;
- })
-
- if (_inputs.length){
- EventBus.trigger(EVENT.midiIn);
- }
-
- }
- function onMIDIFailure() {
- console.log('Could not access your MIDI devices.');
- }
- } else {
- console.warn("Midi not supported");
- return false;
- }
- }
-
- me.enable = function(){
- Midi.init();
- }
-
- me.disable = function(){
- enabled = false;
- EventBus.trigger(EVENT.midiIn);
- }
-
- me.isEnabled = function(){
- return !!enabled;
- }
-
- function getMIDIMessage(midiMessage) {
- if (!enabled) return;
- var data = midiMessage.data;
- switch (data[0]){
- case 128:
- case 129:
- noteOff(data[1],data[2]);
- break;
- case 144:
- case 145:
- case 146:
- case 147:
- case 148:
- case 149:
- case 150:
- case 151:
- case 152:
- case 153:
- case 154:
- case 155:
- case 156:
- case 157:
- case 158:
- case 159:
- // TODO: make a difference per midi channel?
- if (data[2]){
- noteOn(data[1],data[2]);
- }else{
- noteOff(data[1],data[2]);
- }
- break;
- case 176:
- console.log("Midi: set effect",data[1],data[2]);
- break;
- case 192:
- // select voice
- var index = data[1];
- Tracker.setCurrentInstrumentIndex(index+1);
- break;
- case 224:
- console.log("Modulator",data[1],data[2]);
- break;
- default:
- //console.log("Midi In:",data);
- }
-
- EventBus.trigger(EVENT.midiIn);
- }
-
- function noteOn(note,value){
- console.log("note on",note,value);
-
- // middle C is 60 - in Bassoon this is 13
- var key = note - 47;
- var octave = Input.getCurrentOctave();
- var volume;
- if (SETTINGS.midi === "enabled"){
- volume = (value+1)>>1;
- }
- Input.handleNoteOn(key + (octave*12),undefined,undefined,volume);
- }
-
- function noteOff(note,value){
- console.log("note off",note,value);
-
- var key = note - 47;
- var octave = Input.getCurrentOctave();
- var register = SETTINGS.midi === "enabled";
- Input.handleNoteOff(key + (octave*12),register);
- }
-
- return me;
-}();
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/audio/raw.js
^
|
@@ -1,7 +0,0 @@
-function readRAWsample(file,sample){
- file.goto(0);
- for (var j = 0; j<sample.length; j++){
- var b = file.readByte();
- sample.data.push(b / 127)
- }
-}
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/audio/riffWave.js
^
|
@@ -1,120 +0,0 @@
-/*
-function readRIFFsample(file,sample,next){
- //format description: http://soundfile.sapp.org/doc/WaveFormat/
- file.litteEndian = true;
- file.goto(4);
-
- var wave = {};
-
- wave.chunkSize = file.readDWord();
- wave.format = file.readString(4); // should be "WAVE"
- wave.subChunk = file.readString(4); // should be "fmt "
- wave.subChuckSize = file.readDWord();
-
- var nextChunkPos = file.index + wave.subChuckSize;
-
- wave.audioFormat = file.readWord(); // should be 1: PCM
- wave.numberOfChannels = file.readWord();
- wave.sampleRate = file.readDWord();
- wave.byteRate = file.readDWord();
- wave.blockalign = file.readWord();
- wave.bits = file.readWord();
-
- file.goto(nextChunkPos);
- wave.dataChunk = file.readString(4); // should be "data"
- wave.dataChuckSize = file.readDWord();
-
- console.error("Wave data:" , wave);
-
- if (wave.bits === 8){
- sample.length = wave.dataChuckSize;
- for (var i = 0; i<sample.length; i++){
- var b = file.readUbyte();
- b=b-128;
- sample.data.push(b / 128)
- }
- }else{
- // let Audio Content do the decoding
- decodeFileWithAudioContext(file,sample,next);
- }
-
-}
-*/
-
-function encodeRIFFsample(sampleData,bits){
-
- var length = sampleData.length;
-
- var sampleRate = 8000; // how can we know this from raw samples?
- var byteRate = sampleRate;
-
- if (bits === 16){
- length = sampleData.length * 2;
- byteRate = sampleRate * 2;
- }
-
- var chunkLength = length;
- if (chunkLength%2 === 1) chunkLength++;
-
- var buffer = new ArrayBuffer(46 + chunkLength);
- var file = new BinaryStream(buffer,false);
- file.goto(0);
-
- /* RIFF identifier */
- file.writeString('RIFF');
-
- /* RIFF chunk length */
- file.writeDWord(38 + chunkLength);
-
- /* RIFF type */
- file.writeString('WAVE');
-
- /* format chunk identifier */
- file.writeString('fmt ');
-
- /* format chunk length */
- file.writeDWord(18);
-
- /* sample format (PCM) */
- file.writeWord(1);
-
- /* channel count */
- file.writeWord(1);
-
- /* sample rate */
- file.writeDWord(sampleRate);
-
- /* byte rate (sample rate * block align) */
- file.writeDWord(byteRate);
-
- /* block align (channel count * bytes per sample) */
- file.writeWord(Math.floor(bits/8));
-
- /* bits per sample */
- file.writeWord(bits);
-
- /* padding (optional, most wave writers seem to prefer this) */
- file.writeWord(0);
-
- /* data chunk identifier */
- file.writeString('data');
-
- /* data chunk length */
- file.writeDWord(length);
-
- if (bits === 16){
- for (var i = 0; i<sampleData.length; i++){
- file.writeWord((sampleData[i]*32767));
- }
- }else{
- for (var i = 0; i<sampleData.length; i++){
- file.writeUByte(Math.round(sampleData[i]*127) + 127);
- }
- }
-
- // pad byte
- if (length<chunkLength) file.writeUByte(0);
-
- return file;
-
-}
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/editor.js
^
|
@@ -1,638 +0,0 @@
-var Editor = (function(){
-
- var me = {};
-
-
- var currentTrack = 0;
- var currentTrackPosition = 0;
- var currentCursorPosition = 0;
- var prevCursorPosition;
-
- var currentPattern = 0;
- var currentPatternPos = 0;
-
- var pasteBuffer = {};
-
- me.getStepsPerTrack = function(){
- return Tracker.inFTMode() ? 8 : 6;
- };
-
- me.setCurrentCursorPosition = function(index){
- currentCursorPosition = index;
-
- var stepsPerTrack = me.getStepsPerTrack();
-
- currentTrack = Math.floor(currentCursorPosition / stepsPerTrack);
- currentTrackPosition = currentCursorPosition % stepsPerTrack;
- if (prevCursorPosition!==currentCursorPosition) {
- EventBus.trigger(EVENT.cursorPositionChange,currentCursorPosition);
- }
- prevCursorPosition = currentCursorPosition;
- };
- me.getCurrentCursorPosition = function(){
- return currentCursorPosition;
- };
- me.moveCursorPosition = function(amount){
- var stepsPerTrack = me.getStepsPerTrack();
-
- var newPosition = currentCursorPosition+amount;
- var max = Tracker.getTrackCount()*stepsPerTrack - 1;
- if (newPosition > max) newPosition=0;
- if (newPosition < 0) newPosition=max;
- me.setCurrentCursorPosition(newPosition);
- };
- me.getCurrentTrack = function(){
- return currentTrack;
- };
- me.setCurrentTrack = function(track){
- var stepsPerTrack = me.getStepsPerTrack();
- me.setCurrentCursorPosition(track*stepsPerTrack + currentTrackPosition);
- };
- me.getCurrentTrackPosition = function(){
- return currentTrackPosition;
- };
- me.setCurrentTrackPosition = function(position){
- var stepsPerTrack = me.getStepsPerTrack();
- me.setCurrentCursorPosition(currentTrack*stepsPerTrack + position);
- };
-
-
- me.putNote = function(instrument,period,noteIndex,volume){
- var note = Tracker.getSong().patterns[currentPattern][currentPatternPos][currentTrack] || new Note();
- var editAction = StateManager.createNoteUndo(currentPattern,currentTrack,currentPatternPos,note);
-
- if (note){
- note.instrument = instrument;
- if (noteIndex){
- note.setIndex(noteIndex);
- }else{
- note.setPeriod(period);
- }
- if (typeof volume === "number"){
- if (Tracker.inFTMode()){
- note.volumeEffect = volume + 16;
- }else{
- note.effect = 12;
- note.param = volume;
- }
-
- }
- }
-
- editAction.data[0].to = note.duplicate();
- StateManager.registerEdit(editAction);
-
- Tracker.getSong().patterns[currentPattern][currentPatternPos][currentTrack] = note;
- EventBus.trigger(EVENT.patternChange,currentPattern);
- };
-
- me.putNoteParam = function(pos,value){
- var x,y;
- var note = Tracker.getSong().patterns[currentPattern][currentPatternPos][currentTrack];
- var editAction = StateManager.createNoteUndo(currentPattern,currentTrack,currentPatternPos,note);
- if (note){
- if (pos == 1 || pos == 2){
- var instrument = note.instrument;
- x = instrument >> 4;
- y = instrument & 0x0f;
- if (pos == 1) x = value;
- if (pos == 2) y = value;
- note.instrument = (x << 4) + y;
- }
-
- var xmOffset = 0;
- if (Tracker.inFTMode()){
- xmOffset = 2;
-
- if (pos == 3 || pos == 4){
- var vparam = note.volumeEffect;
- x = (vparam >> 4) || 1;
- y = vparam & 0x0f;
- if (pos == 3) x = value+1;
- if (pos == 4) y = value;
- note.volumeEffect = (x << 4) + y;
- if (note.volumeEffect<16){note.volumeEffect=0}
- }
- }
-
- if (pos == 3 + xmOffset) note.effect = value;
- if (pos == 4 + xmOffset || pos == 5 + xmOffset){
- var param = note.param;
- x = param >> 4;
- y = param & 0x0f;
- if (pos == 4 + xmOffset) x = value;
- if (pos == 5 + xmOffset) y = value;
- note.param = (x << 4) + y;
- }
- }
-
- editAction.data[0].to = note.duplicate();
- StateManager.registerEdit(editAction);
-
- Tracker.getSong().patterns[currentPattern][currentPatternPos][currentTrack] = note;
- EventBus.trigger(EVENT.patternChange,currentPattern);
- };
-
-
- me.clearTrack = function(){
- var length = Tracker.getCurrentPatternData().length;
- var editAction = StateManager.createTrackUndo(currentPattern);
- editAction.name = "Clear Track";
- for (var i = 0; i<length;i++){
- var note = Tracker.getSong().patterns[currentPattern][i][currentTrack];
- if (note) {
- StateManager.addNote(editAction,currentTrack,i,note);
- note.clear();
- }
- }
- StateManager.registerEdit(editAction);
- EventBus.trigger(EVENT.patternChange,currentPattern);
- };
- me.clearPattern = function(){
- var length = Tracker.getCurrentPatternData().length;
- var editAction = StateManager.createPatternUndo(currentPattern);
- editAction.name = "Clear Pattern";
- for (var i = 0; i<length;i++){
- for (var j = 0; j<Tracker.getTrackCount(); j++){
- var note = Tracker.getSong().patterns[currentPattern][i][j];
- if (note) {
- StateManager.addNote(editAction,j,i,note);
- note.clear();
- }
- }
- }
- StateManager.registerEdit(editAction);
- EventBus.trigger(EVENT.patternChange,currentPattern);
- };
- me.clearSong = function(){
- var song = Tracker.getSong();
- Tracker.setCurrentPattern(0);
- me.clearPattern();
- var pattern = song.patterns[0];
-
- song.patterns = [pattern];
- song.length = 1;
- song.restartPosition = 0;
-
- var patternTable = [];
- for (var i = 0; i < 128; ++i) {
- patternTable[i] = 0;
- }
- song.patternTable = patternTable;
-
- Tracker.setAmigaSpeed(6);
- Tracker.setBPM(125);
- Tracker.setCurrentSongPosition(1);
-
- EventBus.trigger(EVENT.songPropertyChange,song);
- EventBus.trigger(EVENT.patternTableChange);
- };
-
- me.copyTrack = function(trackNumber){
- var hasTracknumber = typeof trackNumber != "undefined";
- if (!hasTracknumber) trackNumber = currentTrack;
- var length = Tracker.getCurrentPatternData().length;
- var data = [];
-
- for (var i = 0; i<length;i++){
- var note = Tracker.getSong().patterns[currentPattern][i][trackNumber] || new Note();
- data.push(note.duplicate());
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/enum.js
^
|
@@ -1,605 +0,0 @@
-var cachedAssets = {
- images:{},
- audio:{},
- json:{},
- arrayBuffer:{}
-};
-
-var sprites = {};
-var UI = undefined;
-
-var PRELOADTYPE = {
- "image": 1,
- "audio":2,
- "json":3,
- "binary":4
-};
-
-var EVENT = {
- instrumentChange:1,
- patternChange:2,
- patternPosChange:3,
- patternTableChange:4,
- recordingChange:5,
- cursorPositionChange:6,
- trackStateChange:7,
- playingChange:8,
- playTypeChange: 9,
- songPositionChange:10,
- songSpeedChange:11,
- songBPMChange:12,
- samplePlay:13,
- screenRefresh: 14,
- screenRender: 15,
- songPropertyChange: 16,
- instrumentNameChange:17,
- command: 18,
- pianoNoteOn : 19,
- pianoNoteOff : 20,
- statusChange: 21,
- diskOperationTargetChange: 22,
- diskOperationActionChange: 23,
- trackCountChange:24,
- patternHorizontalScrollChange:25,
- songLoaded: 26,
- songLoading: 27,
- trackerModeChanged: 28,
- instrumentListChange:29,
- showView: 30,
- toggleView: 31,
- visibleTracksCountChange:32,
- filterChainCountChange:33,
- fxPanelToggle:34,
- samplePropertyChange:35,
- sampleIndexChange:36,
- second:37,
- minute:38,
- dropboxConnect: 39,
- dropboxConnectCancel: 40,
- trackScopeClick: 41,
- octaveChanged: 42,
- skipFrameChanged: 43,
- showContextMenu: 44,
- hideContextMenu: 45,
- clockEventExpired: 46,
- commandUndo: 50,
- commandRedo: 51,
- commandSelectAll: 52,
- songEnd: 53,
- patternEnd: 54,
- songSpeedChangeIgnored:55,
- songBPMChangeIgnored:56,
- commandProcessSample: 57,
- pluginRenderHook: 58,
- menuLayoutChanged: 59,
- midiIn: 60
-};
-
-var COMMAND = {
- newFile: 1,
- openFile: 2,
- saveFile: 3,
- clearTrack : 4,
- clearPattern : 5,
- clearSong : 6,
- clearInstruments : 7,
- showMain : 8,
- showOptions : 9,
- showFileOperations : 10,
- showSampleEditor : 11,
- showAbout : 12,
- showHelp : 13,
- togglePiano : 14,
- showTopMain : 15,
- showBottomMain: 16,
- randomSong: 17,
- randomSongXM: 18,
- showGithub: 19,
- showStats: 20,
- cut: 21,
- copy: 22,
- paste: 23,
- pattern2Sample: 24,
- toggleAppSideBar: 25,
- undo: 26,
- redo: 27,
- nibbles: 28,
- generator: 29
-};
-
-var PLAYTYPE = {
- song:1,
- pattern:2
-};
-
-var FILETYPE = {
- module:1,
- sample:2,
- pattern:3,
- track: 4
-};
-
-var MODULETYPE = {
- mod: 1,
- xm: 2
-};
-
-var SAMPLETYPE = {
- RAW_8BIT:1,
- WAVE_PCM:2,
- IFF_8SVX:3,
- MP3:4,
- RIFF_8BIT: 5,
- RIFF_16BIT: 6,
- FLAC: 5,
- OGG: 9,
- OPUS: 10
-};
-
-var STEREOSEPARATION = {
- FULL: 1,
- BALANCED: 2,
- NONE: 3
-};
-
-var FREQUENCYTABLE = {
- AMIGA: 1,
- LINEAR : 2
-};
-
-var LOOPTYPE = {
- NONE: 0,
- FORWARD : 1,
- PINGPONG : 2
-};
-
-var SELECTION = {
- RESET : 1,
- CLEAR: 2,
- CUT: 3,
- COPY : 4,
- PASTE : 5,
- POSITION: 6,
- DELETE: 7,
- REPLACE: 8
-
-};
-
-var EDITACTION = {
- PATTERN: 1,
- TRACK: 2,
- NOTE: 3,
- RANGE: 4,
- VALUE: 5,
- DATA: 6,
- SAMPLE: 7
-};
-
-
-// Amiga Frequency
-//var PALFREQUENCY = 7093789.2;
-var AMIGA_PALFREQUENCY = 7093790; // not that my ears can hear the difference but this seems to be the correct value ftp://ftp.modland.com/pub/documents/format_documentation/Protracker%20effects%20(MODFIL12.TXT)%20(.mod).txt
-
-// Frequency used by Fast Tracker in Amiga mode
-var PC_FREQUENCY = 7158728;
-
-var AMIGA_PALFREQUENCY_HALF = AMIGA_PALFREQUENCY/2;
-var PC_FREQUENCY_HALF = PC_FREQUENCY/2;
-
-var LAYOUTS = {
- column4:4,
- column5:5,
- column5Full:6,
- column6:7
-};
-
-
-
-// used in Protracker mode
-var NOTEPERIOD = {
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/eventBus.js
^
|
@@ -1,33 +0,0 @@
-var EventBus = (function() {
-
- var allEventHandlers = {};
-
- var me = {};
-
- me.on = function(event, listener) {
- var eventHandlers = allEventHandlers[event];
- if (!eventHandlers) {
- eventHandlers = [];
- allEventHandlers[event] = eventHandlers;
- }
- eventHandlers.push(listener);
- return eventHandlers.length;
- };
-
- me.off = function(event,index){
- var eventHandlers = allEventHandlers[event];
- if (eventHandlers) eventHandlers[index-1]=undefined;
- }
-
- me.trigger = function(event, context) {
- var eventHandlers = allEventHandlers[event];
- if (eventHandlers) {
- var i, len = eventHandlers.length;
- for (i = 0; i < len; i++) {
- if (eventHandlers[i]) eventHandlers[i](context,event);
- }
- }
- };
-
- return me;
-}());
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/fetchService.js
^
|
@@ -1,135 +0,0 @@
-var FetchService = (function() {
-
- // somewhat Jquery syntax compatible for easy portability
-
- var me = {};
-
- var defaultAjaxTimeout = 30000;
-
- me.get = function(url,next){
- me.ajax({
- url : url,
- success: function(data){next(data)},
- error: function(xhr){next(undefined,xhr)}
- });
- };
-
- //<!--
- me.post = function(url,data,next){
- var sData = data;
- if (typeof data === "object"){
- sData = "";
- for (var key in data){
- if (data.hasOwnProperty(key)){
- sData += "&" + key + "=" + encodeURIComponent(data[key]);
- }
- }
- if (sData.length) sData = sData.substr(1);
- }
- me.ajax({
- method: "POST",
- url : url,
- data: sData,
- datatype: "form",
- success: function(data){next(data)},
- error: function(xhr){next(undefined,xhr)}
- })
- };
-
- me.sendBinary = function(url,data,next){
- me.ajax({
- method: "POST",
- url : url,
- data: data,
- success: function(data){next(data)},
- error: function(xhr){next(undefined,xhr)}
- })
- };
- //-->
-
- me.json = function(url,next){
- if (typeof next == "undefined") next=function(){};
- me.ajax({
- url : url,
- cache: false,
- datatype: "json",
- headers: [{key:"Accept", value:"application/json"}],
- success: function(data){next(data)},
- error: function(xhr){next(undefined,xhr)}
- });
- };
-
- me.html = function(url,next){
- me.ajax({
- url : url,
- cache: false,
- datatype: "html",
- success: function(data){next(data)},
- error: function(xhr){next(undefined,xhr)}
- });
- };
-
-
- me.ajax = function(config){
-
- var xhr = new XMLHttpRequest();
-
- config.error = config.error || function(){config.success(false)};
-
- if (config.datatype === "jsonp"){
- console.error(log.error() + " ERROR: JSONP is not supported!");
- config.error(xhr);
- }
-
- var url = config.url;
-
- if (typeof config.cache === "boolean" && !config.cache && Host.useUrlParams){
- var r = new Date().getTime();
- url += url.indexOf("?")>0 ? "&r=" + r : "?r=" + r;
- }
-
- var method = config.method || "GET";
-
- xhr.onreadystatechange = function(){
- if(xhr.readyState < 4) {
- return;
- }
- if(xhr.readyState === 4) {
- if(xhr.status !== 200 && xhr.status !== 201) {
- config.error(xhr);
- }else{
- var result = xhr.responseText;
- if (config.datatype === "json") result = JSON.parse(result);
- if (config.datatype === "html"){
- result = document.createElement("div");
- result.innerHTML = xhr.responseText;
- }
- config.success(result);
- }
- }
- };
-
- xhr.ontimeout = function (e) {
- console.error(log.error() + "timeout while getting " + url);
- };
-
- xhr.open(method, url, true);
- xhr.timeout = config.timeout || defaultAjaxTimeout;
-
- if (config.headers){
- config.headers.forEach(function(header){
- xhr.setRequestHeader(header.key, header.value);
- })
- }
-
- var data = config.data || '';
- if (method === "POST" && config.data && config.datatype === "form"){
- xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
- }
-
- xhr.send(data);
- };
-
- return me;
-}());
-
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/fileformats/detect.js
^
|
@@ -1,123 +0,0 @@
-var FileDetector = function(){
- var me = {};
-
- var fileType = {
- unknown: {name: "UNKNOWN"},
- unsupported: {name: "UNSUPPORTED"},
- mod_ProTracker: {name: "PROTRACKER", isMod: true, loader: function(){return ProTracker()}},
- mod_SoundTracker: {name: "SOUNDTRACKER", isMod: true, loader: function(){return SoundTracker()}},
- mod_FastTracker: {name: "FASTTRACKER", isMod: true, loader: function(){return FastTracker()}},
- sample: {name: "SAMPLE",isSample:true},
- zip: {name: "ZIP"}
- };
-
- me.detect = function(file,name){
- var length = file.length;
- var id = "";
-
- id = file.readString(17,0);
- if (id == "Extended Module: "){
- return fileType.mod_FastTracker;
- }
-
-
- if (length>1100){
- id = file.readString(4,1080); // M.K.
- }
- console.log("Format ID: " + id);
-
- if (id == "M.K.") return fileType.mod_ProTracker;
- if (id == "M!K!") return fileType.mod_ProTracker; // more then 64 patterns
- if (id == "M&K!") return fileType.mod_ProTracker; // what's different? example https://modarchive.org/index.php?request=view_by_moduleid&query=76607
- if (id == "FLT4") return fileType.mod_ProTracker;
- if (id == "2CHN") return fileType.mod_ProTracker;
- if (id == "3CHN") return fileType.mod_ProTracker;
- if (id == "5CHN") return fileType.mod_ProTracker;
- if (id == "6CHN") return fileType.mod_ProTracker;
- if (id == "7CHN") return fileType.mod_ProTracker;
- if (id == "8CHN") return fileType.mod_ProTracker;
- if (id == "9CHN") return fileType.mod_ProTracker;
- if (id == "10CH") return fileType.mod_ProTracker;
- if (id == "11CH") return fileType.mod_ProTracker;
- if (id == "12CH") return fileType.mod_ProTracker;
- if (id == "13CH") return fileType.mod_ProTracker;
- if (id == "14CH") return fileType.mod_ProTracker;
- if (id == "15CH") return fileType.mod_ProTracker;
- if (id == "16CH") return fileType.mod_ProTracker;
- if (id == "18CH") return fileType.mod_ProTracker;
- if (id == "20CH") return fileType.mod_ProTracker;
- if (id == "22CH") return fileType.mod_ProTracker;
- if (id == "24CH") return fileType.mod_ProTracker;
- if (id == "26CH") return fileType.mod_ProTracker;
- if (id == "28CH") return fileType.mod_ProTracker;
- if (id == "30CH") return fileType.mod_ProTracker;
- if (id == "32CH") return fileType.mod_ProTracker;
-
- var ext = "";
- if (name && name.length>4) ext = name.substr(name.length-4);
- ext = ext.toLowerCase();
-
- if (ext == ".wav") return fileType.sample;
- if (ext == ".mp3") return fileType.sample;
- if (ext == ".iff") return fileType.sample;
- if (ext == "flac") return fileType.sample;
- if (ext == ".ogg") return fileType.sample;
- if (ext == "opus") return fileType.sample;
- if (ext == ".zip") return fileType.zip;
-
- var zipId = file.readString(2,0);
- if (zipId == "PK") return fileType.zip;
-
-
- // might be an 15 instrument mod?
- // filename should at least contain a "." this avoids checking all ST-XX samples
-
- // example: https://modarchive.org/index.php?request=view_by_moduleid&query=35902 or 36954
- // more info: ftp://ftp.modland.com/pub/documents/format_documentation/Ultimate%20Soundtracker%20(.mod).txt
-
-
- if (name && name.indexOf(".")>=0 && length>1624){
- // check for ascii
- function isAcii(byte){
- return byte<128;
- }
-
- function isST(){
- console.log("Checking for old 15 instrument soundtracker format");
- file.goto(0);
- for (var i = 0; i<20;i++) if (!isAcii(file.readByte())) return false;
-
- console.log("First 20 chars are ascii, checking Samples");
-
- // check samples
- var totalSampleLength = 0;
- var probability =0;
- for (var s = 0; s<15;s++) {
- for (i = 0; i<22;i++) if (!isAcii(file.readByte())) return false;
- file.jump(-22);
- var name = file.readString(22);
- if (name.toLowerCase().substr(0,3) == "st-") probability += 10;
- if (probability>20) return true;
- totalSampleLength += file.readWord();
- file.jump(6);
- }
-
- if (totalSampleLength*2 + 1624 > length) return false;
-
- return true;
- }
-
- var isSoundTracker = isST();
- if (isSoundTracker){
- return fileType.mod_SoundTracker;
- }
- }
-
-
- // fallback to sample
- return fileType.sample;
-
- };
-
- return me;
-}();
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/fileformats/fasttracker.js
^
|
@@ -1,594 +0,0 @@
-var FastTracker = function(){
- var me = {};
-
- // see ftp://ftp.modland.com/pub/documents/format_documentation/FastTracker%202%20v2.04%20(.xm).html
- me.load = function(file,name){
-
- console.log("loading FastTracker");
- Tracker.setTrackerMode(TRACKERMODE.FASTTRACKER,true);
- Tracker.clearInstruments(1);
-
- var mod = {};
- var song = {
- patterns:[],
- instruments:[]
- };
-
- file.litteEndian = true;
-
- file.goto(17);
- song.title = file.readString(20);
- file.jump(1); //$1a
-
- mod.trackerName = file.readString(20);
- mod.trackerVersion = file.readByte();
- mod.trackerVersion = file.readByte() + "." + mod.trackerVersion;
- mod.headerSize = file.readDWord(); // is this always 276?
- mod.songlength = file.readWord();
- mod.restartPosition = file.readWord();
- mod.numberOfChannels = file.readWord();
- mod.numberOfPatterns = file.readWord(); // this is sometimes more then the actual number? should we scan for highest pattern? -> YES! -> NO!
- mod.numberOfInstruments = file.readWord();
- mod.flags = file.readWord();
- if (mod.flags%2 === 1){
- Tracker.useLinearFrequency = true;
- }else{
- Tracker.useLinearFrequency = false;
- }
-
- mod.defaultTempo = file.readWord();
- mod.defaultBPM = file.readWord();
-
- console.log("File was made in " + mod.trackerName + " version " + mod.trackerVersion);
-
-
- var patternTable = [];
- var highestPattern = 0;
- for (var i = 0; i < mod.songlength; ++i) {
- patternTable[i] = file.readUbyte();
- if (highestPattern < patternTable[i]) highestPattern = patternTable[i];
- }
- song.patternTable = patternTable;
- song.length = mod.songlength;
- song.channels = mod.numberOfChannels;
- song.restartPosition = (mod.restartPosition + 1);
-
- var fileStartPos = 60 + mod.headerSize;
- file.goto(fileStartPos);
-
-
- for (i = 0; i < mod.numberOfPatterns; i++) {
-
- var patternData = [];
- var thisPattern = {};
-
- thisPattern.headerSize = file.readDWord();
- thisPattern.packingType = file.readUbyte(); // always 0
- thisPattern.patternLength = file.readWord();
- thisPattern.patternSize = file.readWord();
-
- fileStartPos += thisPattern.headerSize;
- file.goto(fileStartPos);
-
- for (var step = 0; step<thisPattern.patternLength; step++){
- var row = [];
- var channel;
- for (channel = 0; channel < mod.numberOfChannels; channel++){
- var note = Note();
- var v = file.readUbyte();
-
- if (v & 128) {
- if (v & 1) note.setIndex(file.readUbyte());
- if (v & 2) note.instrument = file.readUbyte();
- if (v & 4) note.volumeEffect = file.readUbyte();
- if (v & 8) note.effect = file.readUbyte();
- if (v & 16) note.param = file.readUbyte();
- } else {
- note.setIndex(v);
- note.instrument = file.readUbyte();
- note.volumeEffect = file.readUbyte();
- note.effect = file.readUbyte();
- note.param = file.readUbyte();
- }
-
- row.push(note);
-
-
- }
- patternData.push(row);
- }
-
- fileStartPos += thisPattern.patternSize;
- file.goto(fileStartPos);
-
- song.patterns.push(patternData);
- }
-
- var instrumentContainer = [];
-
- for (i = 1; i <= mod.numberOfInstruments; ++i) {
-
-
- var instrument = Instrument();
-
- try{
- instrument.filePosition = file.index;
- instrument.headerSize = file.readDWord();
-
- instrument.name = file.readString(22);
- instrument.type = file.readUbyte();
- instrument.numberOfSamples = file.readWord();
- instrument.samples = [];
- instrument.sampleHeaderSize = 0;
-
- if (instrument.numberOfSamples>0){
- instrument.sampleHeaderSize = file.readDWord();
-
- // some files report incorrect sampleheadersize (18, without the samplename)
- // e.g. dubmood - cybernostra weekends.xm
- // sample header should be at least 40 bytes
- instrument.sampleHeaderSize = Math.max(instrument.sampleHeaderSize,40);
-
- // and not too much ... (Files saved with sk@letracker)
- if (instrument.sampleHeaderSize>200) instrument.sampleHeaderSize=40;
-
- //should we assume it's always 40? not according to specs ...
-
-
- for (var si = 0; si<96; si++) instrument.sampleNumberForNotes.push(file.readUbyte());
- for (si = 0; si<24; si++) instrument.volumeEnvelope.raw.push(file.readWord());
- for (si = 0; si<24; si++) instrument.panningEnvelope.raw.push(file.readWord());
-
- instrument.volumeEnvelope.count = file.readUbyte();
- instrument.panningEnvelope.count = file.readUbyte();
- instrument.volumeEnvelope.sustainPoint = file.readUbyte();
- instrument.volumeEnvelope.loopStartPoint = file.readUbyte();
- instrument.volumeEnvelope.loopEndPoint = file.readUbyte();
- instrument.panningEnvelope.sustainPoint = file.readUbyte();
- instrument.panningEnvelope.loopStartPoint = file.readUbyte();
- instrument.panningEnvelope.loopEndPoint = file.readUbyte();
- instrument.volumeEnvelope.type = file.readUbyte();
- instrument.panningEnvelope.type = file.readUbyte();
- instrument.vibrato.type = file.readUbyte();
- instrument.vibrato.sweep = file.readUbyte();
- instrument.vibrato.depth = Math.min(file.readUbyte(),15); // some trackers have a different scale here? (e.g. Ambrozia)
- instrument.vibrato.rate = file.readUbyte();
- instrument.fadeout = file.readWord();
- instrument.reserved = file.readWord();
-
- function processEnvelope(envelope){
- envelope.points = [];
- for (si = 0; si < 12; si++) envelope.points.push(envelope.raw.slice(si*2,si*2+2));
- if (envelope.type & 1){ // on
- envelope.enabled = true;
- }
-
- if (envelope.type & 2){
- // sustain
- envelope.sustain = true;
- }
-
- if (envelope.type & 4){
- // loop
- envelope.loop = true;
- }
-
- return envelope;
-
- }
-
- instrument.volumeEnvelope = processEnvelope(instrument.volumeEnvelope);
- instrument.panningEnvelope = processEnvelope(instrument.panningEnvelope);
-
- }
- }catch (e) {
- console.error("error",e);
- }
-
- fileStartPos += instrument.headerSize;
- file.goto(fileStartPos);
-
-
- if (instrument.numberOfSamples === 0){
- var sample = Sample();
- instrument.samples.push(sample);
- }else{
- if (file.isEOF(1)){
- console.error("seek past EOF");
- console.error(instrument);
- break;
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/fileformats/protracker.js
^
|
@@ -1,323 +0,0 @@
-var ProTracker = function(){
- var me = {};
-
- me.load = function(file,name){
-
- Tracker.setTrackerMode(TRACKERMODE.PROTRACKER,true);
- Tracker.useLinearFrequency = false;
- Tracker.clearInstruments(31);
-
- var song = {
- patterns:[],
- restartPosition: 1
- };
-
- var patternLength = 64;
- var instrumentCount = 31;
- var channelCount = 4;
-
-
- //see https://www.aes.id.au/modformat.html
-
- song.typeId = file.readString(4,1080);
- song.title = file.readString(20,0);
-
- if (song.typeId === "2CHN") channelCount = 2;
- if (song.typeId === "3CHN") channelCount = 3;
- if (song.typeId === "5CHN") channelCount = 5;
- if (song.typeId === "6CHN") channelCount = 6;
- if (song.typeId === "7CHN") channelCount = 7;
- if (song.typeId === "8CHN") channelCount = 8;
- if (song.typeId === "9CHN") channelCount = 9;
- if (song.typeId === "10CH") channelCount = 10;
- if (song.typeId === "11CH") channelCount = 11;
- if (song.typeId === "12CH") channelCount = 12;
- if (song.typeId === "13CH") channelCount = 13;
- if (song.typeId === "14CH") channelCount = 14;
- if (song.typeId === "15CH") channelCount = 15;
- if (song.typeId === "16CH") channelCount = 16;
- if (song.typeId === "18CH") channelCount = 18;
- if (song.typeId === "20CH") channelCount = 20;
- if (song.typeId === "22CH") channelCount = 22;
- if (song.typeId === "24CH") channelCount = 24;
- if (song.typeId === "26CH") channelCount = 26;
- if (song.typeId === "28CH") channelCount = 28;
- if (song.typeId === "30CH") channelCount = 30;
- if (song.typeId === "32CH") channelCount = 32;
-
- song.channels = channelCount;
-
- var sampleDataOffset = 0;
- for (i = 1; i <= instrumentCount; ++i) {
- var instrumentName = file.readString(22);
- var sampleLength = file.readWord(); // in words
-
- var instrument = Instrument();
- instrument.name = instrumentName;
-
- instrument.sample.length = instrument.sample.realLen = sampleLength << 1;
- var finetune = file.readUbyte();
- if (finetune>16) finetune = finetune%16;
- if (finetune>7) finetune -= 16;
- instrument.setFineTune(finetune);
- instrument.sample.volume = file.readUbyte();
- instrument.sample.loop.start = file.readWord() << 1;
- instrument.sample.loop.length = file.readWord() << 1;
-
- instrument.sample.loop.enabled = instrument.sample.loop.length>2;
- instrument.sample.loop.type = LOOPTYPE.FORWARD;
-
- instrument.pointer = sampleDataOffset;
- sampleDataOffset += instrument.sample.length;
- instrument.setSampleIndex(0);
- Tracker.setInstrument(i,instrument);
-
-
- }
- song.instruments = Tracker.getInstruments();
-
-
- file.goto(950);
- song.length = file.readUbyte();
- file.jump(1); // 127 byte
-
- var patternTable = [];
- var highestPattern = 0;
- for (var i = 0; i < 128; ++i) {
- patternTable[i] = file.readUbyte();
- if (patternTable[i] > highestPattern) highestPattern = patternTable[i];
- }
- song.patternTable = patternTable;
-
- file.goto(1084);
-
- // pattern data
-
- for (i = 0; i <= highestPattern; ++i) {
-
- var patternData = [];
-
- for (var step = 0; step<patternLength; step++){
- var row = [];
- var channel;
- for (channel = 0; channel < channelCount; channel++){
- var note = Note();
- var trackStepInfo = file.readUint();
-
- note.setPeriod((trackStepInfo >> 16) & 0x0fff);
- note.effect = (trackStepInfo >> 8) & 0x0f;
- note.instrument = (trackStepInfo >> 24) & 0xf0 | (trackStepInfo >> 12) & 0x0f;
- note.param = trackStepInfo & 0xff;
-
- row.push(note);
- }
-
- // fill with empty data for other channels
- // TODO: not needed anymore ?
- for (channel = channelCount; channel < Tracker.getTrackCount(); channel++){
- row.push(Note())
- }
-
-
- patternData.push(row);
- }
- song.patterns.push(patternData);
-
- //file.jump(1024);
- }
-
- var instrumentContainer = [];
-
- for(i=1; i <= instrumentCount; i++) {
- instrument = Tracker.getInstrument(i);
- if (instrument){
- console.log(
- "Reading sample from 0x" + file.index + " with length of " + instrument.sample.length + " bytes and repeat length of " + instrument.sample.loop.length);
-
-
- var sampleEnd = instrument.sample.length;
-
- if (instrument.sample.loop.length>2 && SETTINGS.unrollShortLoops && instrument.sample.loop.length<1000){
- // cut off trailing bytes for short looping samples
- sampleEnd = Math.min(sampleEnd,instrument.sample.loop.start + instrument.sample.loop.length);
- instrument.sample.length = sampleEnd;
- }
-
- for (j = 0; j<sampleEnd; j++){
- var b = file.readByte();
- // ignore first 2 bytes
- if (j<2)b=0;
- instrument.sample.data.push(b / 127)
- }
-
- // unroll short loops?
- // web audio loop start/end is in seconds
- // doesn't work that well with tiny loops
-
- if ((SETTINGS.unrollShortLoops || SETTINGS.unrollLoops) && instrument.sample.loop.length>2){
-
- var loopCount = Math.ceil(40000 / instrument.sample.loop.length) + 1;
-
- if (!SETTINGS.unrollLoops) loopCount = 0;
-
- var resetLoopNumbers = false;
- var loopLength = 0;
- if (SETTINGS.unrollShortLoops && instrument.sample.loop.length<1600){
-
- loopCount = Math.floor(1000/instrument.sample.loop.length);
- resetLoopNumbers = true;
- }
-
- for (var l=0;l<loopCount;l++){
- var start = instrument.sample.loop.start;
- var end = start + instrument.sample.loop.length;
- for (j=start; j<end; j++){
- instrument.sample.data.push(instrument.sample.data[j]);
- }
- loopLength += instrument.sample.loop.length;
- }
-
- if (resetLoopNumbers && loopLength){
- instrument.sample.loop.length += loopLength;
- instrument.sample.length += loopLength;
- }
- }
-
- instrumentContainer.push({label: i + " " + instrument.name, data: i});
- }
- }
- EventBus.trigger(EVENT.instrumentListChange,instrumentContainer);
-
- return song;
- };
-
- //<!--
- me.write = function(next){
-
- var song = Tracker.getSong();
- var instruments = Tracker.getInstruments();
- var trackCount = Tracker.getTrackCount();
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/fileformats/soundtracker.js
^
|
@@ -1,128 +0,0 @@
-var SoundTracker = function(){
- var me = {};
-
- me.load = function(file,name){
-
- Tracker.setTrackerMode(TRACKERMODE.PROTRACKER,true);
- Tracker.useLinearFrequency = false;
- Tracker.clearInstruments(15);
-
- var song = {
- patterns:[],
- restartPosition: 1
- };
-
- var patternLength = 64;
- var instrumentCount = 15;
-
-
- //see https://www.aes.id.au/modformat.html
- // and ftp://ftp.modland.com/pub/documents/format_documentation/Ultimate%20Soundtracker%20(.mod).txt for differences
-
- song.typeId = "ST";
- song.channels = 4;
- song.title = file.readString(20,0);
-
- var sampleDataOffset = 0;
- for (i = 1; i <= instrumentCount; ++i) {
- var sampleName = file.readString(22);
- var sampleLength = file.readWord(); // in words
-
- var instrument = Instrument();
- instrument.name = sampleName;
-
- instrument.sample.length = instrument.realLen = sampleLength << 1;
- instrument.sample.volume = file.readWord();
- // NOTE: does the high byte of the volume sometimes contain finetune data?
- instrument.setFineTune(0);
- instrument.sample.loop.start = file.readWord(); // in bytes!
- instrument.sample.loop.length = file.readWord() << 1;
-
- instrument.sample.loop.enabled = instrument.sample.loop.length>2;
- instrument.sample.loop.type = LOOPTYPE.FORWARD;
-
- // if an instrument contains a loops, only the loop part is played
- // TODO
-
- instrument.pointer = sampleDataOffset;
- sampleDataOffset += instrument.sample.length;
- instrument.setSampleIndex(0);
- Tracker.setInstrument(i,instrument);
-
- }
- song.instruments = Tracker.getInstruments();
-
- file.goto(470);
-
- song.length = file.readUbyte();
- song.speed = file.readUbyte();
-
- var patternTable = [];
- var highestPattern = 0;
- for (var i = 0; i < 128; ++i) {
- patternTable[i] = file.readUbyte();
- if (patternTable[i] > highestPattern) highestPattern = patternTable[i];
- }
- song.patternTable = patternTable;
-
- file.goto(600);
-
- // pattern data
-
- for (i = 0; i <= highestPattern; ++i) {
-
- var patternData = [];
-
- for (var step = 0; step<patternLength; step++){
- var row = [];
- var channel;
- for (channel = 0; channel < 4; channel++){
- var trackStep = {};
- var trackStepInfo = file.readUint();
-
- trackStep.period = (trackStepInfo >> 16) & 0x0fff;
- trackStep.effect = (trackStepInfo >> 8) & 0x0f;
- trackStep.instrument = (trackStepInfo >> 24) & 0xf0 | (trackStepInfo >> 12) & 0x0f;
- trackStep.param = trackStepInfo & 0xff;
-
- row.push(trackStep);
- }
-
- // fill with empty data for other channels
- for (channel = 4; channel < Tracker.getTrackCount(); channel++){
- row.push({note:0,effect:0,instrument:0,param:0});
- }
-
- patternData.push(row);
- }
- song.patterns.push(patternData);
-
- //file.jump(1024);
- }
-
- var instrumentContainer = [];
-
- for(i=1; i <= instrumentCount; i++) {
- instrument = Tracker.getInstrument(i);
- if (instrument){
- console.log("Reading sample from 0x" + file.index + " with length of " + instrument.sample.length + " bytes and repeat length of " + instrument.sample.loop.length);
-
- var sampleEnd = instrument.sample.length;
-
- for (j = 0; j<sampleEnd; j++){
- var b = file.readByte();
- // ignore first 2 bytes
- if (j<2)b=0;
- instrument.sample.data.push(b / 127)
- }
-
- instrumentContainer.push({label: i + " " + instrument.name, data: i});
- }
- }
- EventBus.trigger(EVENT.instrumentListChange,instrumentContainer);
-
- return song;
- };
-
- return me;
-};
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/filesystem.js
^
|
@@ -1,193 +0,0 @@
-function loadFile(url,next) {
- var req = new XMLHttpRequest();
- req.open("GET", url, true);
- req.responseType = "arraybuffer";
- req.onload = function (event) {
- var arrayBuffer = req.response;
- if (arrayBuffer && req.status === 200) {
- if (next) next(arrayBuffer);
- } else {
- console.error("unable to load", url);
- // do not call if player only
- if (typeof Editor !== "undefined") {
- if (next) next(false);
- }
- }
- };
- req.send(null);
-}
-
-function saveFile(b,filename){
- //<!--
- var a = document.createElement("a");
- document.body.appendChild(a);
- a.style = "display: none";
- url = window.URL.createObjectURL(b);
- a.href = url;
- a.download = filename;
- a.click();
- window.URL.revokeObjectURL(url);
- //-->
-}
-
-function BinaryStream(arrayBuffer, bigEndian){
- var obj = {
- index: 0,
- litteEndian : !bigEndian
- };
-
- obj.goto = function(value){
- setIndex(value);
- };
-
- obj.jump = function(value){
- this.goto(this.index + value);
- };
-
- obj.readByte = function(position){
- setIndex(position);
- var b = this.dataView.getInt8(this.index);
- this.index++;
- return b;
- };
-
- obj.writeByte = function(value,position){
- setIndex(position);
- this.dataView.setInt8(this.index,value);
- this.index++;
- };
-
- obj.readUbyte = function(position){
- setIndex(position);
- var b = this.dataView.getUint8(this.index);
- this.index++;
- return b;
- };
-
- obj.writeUByte = function(value,position){
- setIndex(position);
- this.dataView.setUint8(this.index,value);
- this.index++;
- };
-
- obj.readUint = function(position){
- setIndex(position);
- var i = this.dataView.getUint32(this.index,this.litteEndian);
- this.index+=4;
- return i;
- };
-
- obj.writeUint = function(value,position){
- setIndex(position);
- this.dataView.setUint32(this.index,value,this.litteEndian);
- this.index+=4;
- };
-
- obj.readBytes = function(len,position) {
- setIndex(position);
- var buffer = new Uint8Array(len);
- var i = this.index;
- var src = this.dataView;
- if ((len += i) > this.length) len = this.length;
- var offset = 0;
-
- for (; i < len; ++i)
- buffer.setUint8(offset++, this.dataView.getUint8(i));
- this.index = len;
- return buffer;
- };
-
- obj.readString = function(len,position){
- setIndex(position);
- var i = this.index;
- var src = this.dataView;
- var text = "";
-
- if ((len += i) > this.length) len = this.length;
-
- for (; i < len; ++i){
- var c = src.getUint8(i);
- if (c == 0) break;
- text += String.fromCharCode(c);
- }
-
- this.index = len;
- return text;
- };
-
- obj.writeString = function(value,position){
- setIndex(position);
- var src = this.dataView;
- var len = value.length;
- for (var i = 0; i < len; i++) src.setUint8(this.index + i,value.charCodeAt(i));
- this.index += len;
- };
-
- obj.writeStringSection = function(value,max,paddValue,position){
- setIndex(position);
- max = max || 1;
- value = value || "";
- paddValue = paddValue || 0;
- var len = value.length;
- if (len>max) value = value.substr(0,max);
- obj.writeString(value);
- obj.fill(paddValue,max-len);
- };
-
- // same as readUshort
- obj.readWord = function(position){
- setIndex(position);
- var w = this.dataView.getUint16(this.index, this.litteEndian);
- this.index += 2;
- return w;
- };
-
- obj.writeWord = function(value,position){
- setIndex(position);
- this.dataView.setUint16(this.index,value,this.litteEndian);
- this.index += 2;
- };
-
- obj.readLong = obj.readDWord = obj.readUint;
- obj.writeLong = obj.writeDWord = obj.writeUint;
-
- obj.readShort = function(value,position){
- setIndex(position);
- var w = this.dataView.getInt16(this.index, this.litteEndian);
- this.index += 2;
- return w;
- };
-
- obj.clear = function(length){
- obj.fill(0,length);
- };
-
- obj.fill = function(value,length){
- value = value || 0;
- length = length || 0;
- for (var i = 0; i<length; i++){
- obj.writeByte(value);
- }
- };
-
- obj.isEOF = function(margin){
- margin = margin || 0;
- return this.index >= (this.length-margin);
- };
-
- function setIndex(value){
- value = value === 0 ? value : value || obj.index;
- if (value<0) value = 0;
- if (value >= obj.length) value = obj.length-1;
-
- obj.index = value;
- }
-
- if (arrayBuffer) {
- obj.buffer = arrayBuffer;
- obj.dataView = new DataView(arrayBuffer);
- obj.length = arrayBuffer.byteLength;
- }
-
- return obj;
-}
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/host.js
^
|
@@ -1,72 +0,0 @@
-/*
- Bridges Host functions BassoonTracker is running in.
- Currently supports
- Web
- WebPlugin
- FriendUp
-*/
-
-var Host = function(){
- var me = {};
- var hostBridge;
-
- me.useUrlParams = true;
- me.useDropbox = true;
- me.showInternalMenu = true;
- me.useWebWorkers = true;
- me.useInitialLoad = true;
-
- me.init = function(){
- if (typeof HostBridge === "object"){
- hostBridge = HostBridge;
- hostBridge.init();
-
- if (typeof hostBridge.useUrlParams === "boolean") me.useUrlParams = hostBridge.useUrlParams;
- if (typeof hostBridge.useDropbox === "boolean") me.useDropbox = hostBridge.useDropboxs;
- if (typeof hostBridge.showInternalMenu === "boolean") me.showInternalMenu = hostBridge.showInternalMenu;
- if (typeof hostBridge.useWebWorkers === "boolean") me.useWebWorkers = hostBridge.useWebWorkers;
- }
- };
-
- me.getBaseUrl = function(){
- if (hostBridge && hostBridge.getBaseUrl){
- return hostBridge.getBaseUrl();
- }
-
- // Settings.baseUrl ... hmm ... can't remember where that is coming from
- if (typeof Settings === "undefined"){
- return "";
- }else{
- return Settings.baseUrl || "";
- }
- };
-
- me.getRemoteUrl = function(){
- if (hostBridge && hostBridge.getRemoteUrl){
- return hostBridge.getRemoteUrl();
- }
- return "";
- };
-
- me.getVersionNumber = function(){
- if (typeof versionNumber !== "undefined") return versionNumber;
- if (hostBridge && hostBridge.getVersionNumber) return hostBridge.getVersionNumber();
- return "dev";
- };
-
- me.getBuildNumber = function(){
- if (typeof buildNumber !== "undefined") return buildNumber;
- if (hostBridge && hostBridge.getBuildNumber) return hostBridge.getBuildNumber();
- return new Date().getTime();
- };
-
- me.signalReady = function(){
- if (hostBridge && hostBridge.signalReady) hostBridge.signalReady();
- };
-
- me.putFile = function(filename,file){
-
- };
-
- return me;
-}();
\ No newline at end of file
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/lib/UZIP.depacker_pack_20200308.js
^
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/lib/audioBufferToWav.js
^
|
@@ -1,102 +0,0 @@
-// based on https://github.com/Jam3/audiobuffer-to-wav/
-
-function audioBufferToWav (buffer, opt) {
- opt = opt || {};
-
- var numChannels = buffer.numberOfChannels;
- var sampleRate = buffer.sampleRate;
- var format = opt.float32 ? 3 : 1;
- var bitDepth = format === 3 ? 32 : 16;
-
-
- function interleave (inputL, inputR) {
- var length = inputL.length + inputR.length;
- var interleaveResult = new Float32Array(length);
-
- var index = 0;
- var inputIndex = 0;
-
- while (index < length) {
- interleaveResult [index++] = inputL[inputIndex];
- interleaveResult [index++] = inputR[inputIndex];
- inputIndex++
- }
- return interleaveResult;
- }
-
- var result;
- if (numChannels === 2) {
- result = interleave(buffer.getChannelData(0), buffer.getChannelData(1))
- } else {
- result = buffer.getChannelData(0)
- }
-
- return encodeWAV(result, format, sampleRate, numChannels, bitDepth);
-
-}
-
-
-
-function encodeWAV (samples, format, sampleRate, numChannels, bitDepth) {
-
-
- var bytesPerSample = bitDepth / 8;
- var blockAlign = numChannels * bytesPerSample;
-
- var bufferLength = 44 + samples.length * bytesPerSample;
-
- var buffer = new ArrayBuffer(bufferLength);
- var view = new DataView(buffer);
-
- /* RIFF identifier */
- writeString(view, 0, 'RIFF');
- /* RIFF chunk length */
- view.setUint32(4, 36 + samples.length * bytesPerSample, true);
- /* RIFF type */
- writeString(view, 8, 'WAVE');
- /* format chunk identifier */
- writeString(view, 12, 'fmt ');
- /* format chunk length */
- view.setUint32(16, 16, true);
- /* sample format (raw) */
- view.setUint16(20, format, true);
- /* channel count */
- view.setUint16(22, numChannels, true);
- /* sample rate */
- view.setUint32(24, sampleRate, true);
- /* byte rate (sample rate * block align) */
- view.setUint32(28, sampleRate * blockAlign, true);
- /* block align (channel count * bytes per sample) */
- view.setUint16(32, blockAlign, true);
- /* bits per sample */
- view.setUint16(34, bitDepth, true);
- /* data chunk identifier */
- writeString(view, 36, 'data');
- /* data chunk length */
- view.setUint32(40, samples.length * bytesPerSample, true);
-
- var offset = 44;
- var i;
-
- if (format === 1) { // Raw PCM
- for (i = 0; i < samples.length; i++, offset += 2) {
- var s = Math.max(-1, Math.min(1, samples[i]));
- view.setInt16(offset, s < 0 ? s * 0x8000 : s * 0x7FFF, true)
- }
- } else {
-
- for (i = 0; i < samples.length; i++, offset += 4) {
- view.setFloat32(offset, samples[i], true)
- }
- }
-
- function writeString (view, offset, string) {
- for (var i = 0; i < string.length; i++) {
- view.setUint8(offset + i, string.charCodeAt(i))
- }
- }
-
- return buffer
-}
-
-
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/lib/dropbox.js
^
|
@@ -1,171 +0,0 @@
-//https://github.com/JamesMaroney/dropbox-js - MIT license
-// updates by Steffest
-
-(function (root, factory) {
- 'use strict';
- if (typeof define === 'function' && define.amd) {
- // AMD
- define(factory);
- } else if (typeof exports === 'object') {
- // Node, CommonJS-like
- module.exports = factory();
- } else {
- // Browser globals (root is window)
- root[root.__dropbox_export || 'dropboxService'] = factory();
- }
-}(this, function () {
- 'use strict';
-
- var toString = ({}).toString;
- function isFunction(x, type){ return toString.call(x) == '[object Function]'; }
- function isString(x, type){ return toString.call(x) == '[object String]'; }
- function isObject(x, type){ return toString.call(x) == '[object Object]'; }
- function paramsFromUrlHash(){
- return window.location.hash.replace(/^#/,'').split('&').reduce(function(o,entry){ if(entry=='') return o; entry=entry.split('='); o[decodeURIComponent(entry[0])] = decodeURIComponent(entry[1]); return o;},{});
- }
-
-
- var api = 'https://api.dropboxapi.com/2/',
- content = 'https://content.dropboxapi.com/2/',
- tokenStore = function(key, val){ return ( arguments.length > 1 ) ? (localStorage[key] = val) : localStorage[key]; },
- globalErrorHandler = undefined;
-
- var endpointMapping = {
- 'auth/token/revoke': { contentType: null },
- 'users/get_current_account': { contentType: 'application/json' },
- 'files/upload': { baseUri: content, format: 'content-upload' },
- 'files/get_thumbnail': { baseUri: content, format: 'content-download' },
- 'files/download' : { baseUri: content, format: 'content-download' },
- 'files/get_preview': {baseUri: content, format: 'content-download' },
- 'files/upload_session/append': {baseUri: content, format: 'content-upload'},
- 'files/upload_session/append_v2': {baseUri: content, format: 'content-upload'},
- 'files/upload_session/finish': {baseUri: content, format: 'content-upload'},
- 'files/upload_session/start': {baseUri: content, format: 'content-upload'},
- 'files/get_shared_link_file': {baseUri: content, format: 'content-download'}
- };
- var contentTypeMapping = {
- 'rpc' : 'application/json',
- 'content-upload' : 'application/octet-stream'
- };
-
- var dropbox = function(endpoint, apiArgs){
- var args = [].slice.call(arguments);
-
- var config = endpointMapping[endpoint] || {},
- baseUri = config.baseUri || api,
- format = config.format || 'rpc',
- contentType = config.contentType || (config.contentType === null) ? null : contentTypeMapping[format];
-
- var lastArg = args[args.length - 1];
- var handlers = (args.length > 2 && (isObject(lastArg) || isFunction(lastArg))) ? lastArg : {};
- if(isFunction(handlers)) handlers = { onComplete: handlers };
-
- var promise,promisectl = {};
- if(Promise){
- promise = new Promise(function(resolve,reject){ promisectl.resolve = resolve; promisectl.reject = reject });
- }
-
- var r = new XMLHttpRequest();
-
- r.open('POST', baseUri+endpoint, true);
- r.setRequestHeader('Authorization', 'Bearer '+ (tokenStore('__dbat') || '000000000000000000000000_00000-000000000000000000000000000000000') );
-
- if(format == 'content-download') r.responseType = 'blob';
- if(apiArgs && apiArgs.responseType){
- r.responseType = apiArgs.responseType;
- delete apiArgs.responseType;
- }
-
- if(contentType) r.setRequestHeader('Content-Type', contentType);
- if(apiArgs && (format == 'content-upload' || format == 'content-download'))
- r.setRequestHeader('Dropbox-API-Arg', JSON.stringify(apiArgs));
-
- if(handlers.onDownloadProgress) r.addEventListener("progress", handlers.onDownloadProgress);
- if(handlers.onUploadProgress && r.upload) r.upload.addEventListener("progress", handlers.onUploadProgress);
- if(handlers.onError || globalErrorHandler) r.addEventListener("error", function(e){
- var er = handlers.onError && handlers.onError(e.target);
- promise && promisectl.reject && promisectl.reject(e.target);
- globalErrorHandler && globalErrorHandler(e.target, er);
- });
-
- r.onreadystatechange = function () {
- if (r.readyState != 4 ) return;
- if (r.status == 200) {
- var apiResponse = JSON.parse( r.getResponseHeader('dropbox-api-result') || r.responseText );
- if(endpoint=='auth/token/revoke') tokenStore('__dbat', '');
- handlers.onComplete && handlers.onComplete( apiResponse, r.response, r);
- promise && promisectl.resolve && promisectl.resolve( apiResponse, r.response, r );
- } else {
- var er = handlers.onError && handlers.onError(r);
- promise && promisectl.reject && promisectl.reject(r);
- globalErrorHandler && globalErrorHandler(r, er);
- }
- };
-
- var requestPayload = (args.length > 2 && format == 'content-upload') ? args[2] : undefined;
- requestPayload = requestPayload || ( (apiArgs && format == 'rpc') ? JSON.stringify(apiArgs) : null );
- if(requestPayload){
- r.send(requestPayload);
- } else {
- r.send();
- }
-
- return promise;
- };
-
-
- dropbox.setGlobalErrorHandler = function(handler){ globalErrorHandler = handler; };
- dropbox.setTokenStore = function(store){ tokenStore = store; };
- dropbox.authenticate = function(apiArgs, handlers){
- handlers = handlers || {};
- if(isFunction(handlers)) handlers = { onComplete: handlers };
- apiArgs = apiArgs || {};
- if(isString(apiArgs)) apiArgs = { client_id: apiArgs };
- apiArgs.redirect_uri = apiArgs.redirect_uri || window.location.href;
-
- var promise,promisectl = {};
- if(Promise){
- promise = new Promise(function(resolve,reject){ promisectl.resolve = resolve; promisectl.reject = reject });
- }
-
- // if we already have an access token, return immediately
- if( tokenStore('__dbat') ){
- handlers.onComplete();
- promise && promise.resolve && promise.resolve();
- return promise
- }
-
- var params = paramsFromUrlHash(),
- csrfToken = tokenStore('__dbcsrf');
-
- if(params.state && csrfToken && params.state == csrfToken){
- // we are returning from authentication redirect
- if(params.access_token){
- // the authentcation was successful
- tokenStore('__dbat', params.access_token);
- tokenStore('__dbcsrf', '');
- window.location.replace( window.location.href.replace(/#.*/,'') );
- } else {
- // the authentication was not successful
- var er = handlers.onError && handlers.onError(params);
- promise && promise.reject && promise.reject(params);
- globalErrorHandler && globalErrorHandler(params, er);
- }
- } else {
- // initiate authentication
- csrfToken = ""+Math.floor(Math.random()*100000);
- tokenStore('__dbcsrf', csrfToken);
-
- window.location = "https://www.dropbox.com/1/oauth2/authorize?response_type=token&"
- + "client_id="+ encodeURIComponent(apiArgs.client_id) +"&"
- + "redirect_uri="+ encodeURIComponent(apiArgs.redirect_uri) + "&"
- + "state="+ encodeURIComponent(csrfToken);
- }
-
- return promise;
- };
- dropbox.getAccessToken = function(){return tokenStore('__dbat');};
- dropbox.clearAccessToken = function(){return tokenStore('__dbat','');};
-
- return dropbox;
-}));
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/lib/filesaver.js
^
|
@@ -1,7 +0,0 @@
-/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */
-var saveAs=saveAs||function(e)
-{
- //<!--
- "use strict";if(typeof e==="undefined"||typeof navigator!=="undefined"&&/MSIE [1-9]\./.test(navigator.userAgent)){return}var t=e.document,n=function(){return e.URL||e.webkitURL||e},r=t.createElementNS("http://www.w3.org/1999/xhtml","a"),o="download"in r,a=function(e){var t=new MouseEvent("click");e.dispatchEvent(t)},i=/constructor/i.test(e.HTMLElement)||e.safari,f=/CriOS\/[\d]+/.test(navigator.userAgent),u=function(t){(e.setImmediate||e.setTimeout)(function(){throw t},0)},s="application/octet-stream",d=1e3*40,c=function(e){var t=function(){if(typeof e==="string"){n().revokeObjectURL(e)}else{e.remove()}};setTimeout(t,d)},l=function(e,t,n){t=[].concat(t);var r=t.length;while(r--){var o=e["on"+t[r]];if(typeof o==="function"){try{o.call(e,n||e)}catch(a){u(a)}}}},p=function(e){if(/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)){return new Blob([String.fromCharCode(65279),e],{type:e.type})}return e},v=function(t,u,d){if(!d){t=p(t)}var v=this,w=t.type,m=w===s,y,h=function(){l(v,"writestart progress write writeend".split(" "))},S=function(){if((f||m&&i)&&e.FileReader){var r=new FileReader;r.onloadend=function(){var t=f?r.result:r.result.replace(/^data:[^;]*;/,"data:attachment/file;");var n=e.open(t,"_blank");if(!n)e.location.href=t;t=undefined;v.readyState=v.DONE;h()};r.readAsDataURL(t);v.readyState=v.INIT;return}if(!y){y=n().createObjectURL(t)}if(m){e.location.href=y}else{var o=e.open(y,"_blank");if(!o){e.location.href=y}}v.readyState=v.DONE;h();c(y)};v.readyState=v.INIT;if(o){y=n().createObjectURL(t);setTimeout(function(){r.href=y;r.download=u;a(r);h();c(y);v.readyState=v.DONE});return}S()},w=v.prototype,m=function(e,t,n){return new v(e,t||e.name||"download",n)};if(typeof navigator!=="undefined"&&navigator.msSaveOrOpenBlob){return function(e,t,n){t=t||e.name||"download";if(!n){e=p(e)}return navigator.msSaveOrOpenBlob(e,t)}}w.abort=function(){};w.readyState=w.INIT=0;w.WRITING=1;w.DONE=2;w.error=w.onwritestart=w.onprogress=w.onwrite=w.onabort=w.onerror=w.onwriteend=null;return m
- //-->
-}(typeof self!=="undefined"&&self||typeof window!=="undefined"&&window||this.content);if(typeof module!=="undefined"&&module.exports){module.exports.saveAs=saveAs}else if(typeof define!=="undefined"&&define!==null&&define.amd!==null){define("FileSaver.js",function(){return saveAs})}
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/lib/util.js
^
|
@@ -1,38 +0,0 @@
-function getUrlParameter(param){
- if (window.location.getParameter){
- return window.location.getParameter(param);
- } else if (location.search) {
- var parts = location.search.substring(1).split('&');
- for (var i = 0; i < parts.length; i++) {
- var nv = parts[i].split('=');
- if (!nv[0]) continue;
- if (nv[0] == param) {
- return nv[1] || true;
- }
- }
- }
-}
-
-function formatFileSize(size){
- var unit = "k";
- if (isNaN(size)) size=0;
- size = Math.round(size/1000);
- if (size>1000){
- size = Math.round(size/100)/10;
- unit = "MB"
- }
- return size + unit;
-}
-
-//<!--
-function createSlug(s){
- var latin_map={"Á":"A","Ă":"A","Ắ":"A","Ặ":"A","Ằ":"A","Ẳ":"A","Ẵ":"A","Ǎ":"A","Â":"A","Ấ":"A","Ậ":"A","Ầ":"A","Ẩ":"A","Ẫ":"A","Ä":"A","Ǟ":"A","Ȧ":"A","Ǡ":"A","Ạ":"A","Ȁ":"A","À":"A","Ả":"A","Ȃ":"A","Ā":"A","Ą":"A","Å":"A","Ǻ":"A","Ḁ":"A","Ⱥ":"A","Ã":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ḃ":"B","Ḅ":"B","Ɓ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ć":"C","Č":"C","Ç":"C","Ḉ":"C","Ĉ":"C","Ċ":"C","Ƈ":"C","Ȼ":"C","Ď":"D","Ḑ":"D","Ḓ":"D","Ḋ":"D","Ḍ":"D","Ɗ":"D","Ḏ":"D","Dz":"D","Dž":"D","Đ":"D","Ƌ":"D","DZ":"DZ","DŽ":"DZ","É":"E","Ĕ":"E","Ě":"E","Ȩ":"E","Ḝ":"E","Ê":"E","Ế":"E","Ệ":"E","Ề":"E","Ể":"E","Ễ":"E","Ḙ":"E","Ë":"E","Ė":"E","Ẹ":"E","Ȅ":"E","È":"E","Ẻ":"E","Ȇ":"E","Ē":"E","Ḗ":"E","Ḕ":"E","Ę":"E","Ɇ":"E","Ẽ":"E","Ḛ":"E","Ꝫ":"ET","Ḟ":"F","Ƒ":"F","Ǵ":"G","Ğ":"G","Ǧ":"G","Ģ":"G","Ĝ":"G","Ġ":"G","Ɠ":"G","Ḡ":"G","Ǥ":"G","Ḫ":"H","Ȟ":"H","Ḩ":"H","Ĥ":"H","Ⱨ":"H","Ḧ":"H","Ḣ":"H","Ḥ":"H","Ħ":"H","Í":"I","Ĭ":"I","Ǐ":"I","Î":"I","Ï":"I","Ḯ":"I","İ":"I","Ị":"I","Ȉ":"I","Ì":"I","Ỉ":"I","Ȋ":"I","Ī":"I","Į":"I","Ɨ":"I","Ĩ":"I","Ḭ":"I","Ꝺ":"D","Ꝼ":"F","Ᵹ":"G","Ꞃ":"R","Ꞅ":"S","Ꞇ":"T","Ꝭ":"IS","Ĵ":"J","Ɉ":"J","Ḱ":"K","Ǩ":"K","Ķ":"K","Ⱪ":"K","Ꝃ":"K","Ḳ":"K","Ƙ":"K","Ḵ":"K","Ꝁ":"K","Ꝅ":"K","Ĺ":"L","Ƚ":"L","Ľ":"L","Ļ":"L","Ḽ":"L","Ḷ":"L","Ḹ":"L","Ⱡ":"L","Ꝉ":"L","Ḻ":"L","Ŀ":"L","Ɫ":"L","Lj":"L","Ł":"L","LJ":"LJ","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ń":"N","Ň":"N","Ņ":"N","Ṋ":"N","Ṅ":"N","Ṇ":"N","Ǹ":"N","Ɲ":"N","Ṉ":"N","Ƞ":"N","Nj":"N","Ñ":"N","NJ":"NJ","Ó":"O","Ŏ":"O","Ǒ":"O","Ô":"O","Ố":"O","Ộ":"O","Ồ":"O","Ổ":"O","Ỗ":"O","Ö":"O","Ȫ":"O","Ȯ":"O","Ȱ":"O","Ọ":"O","Ő":"O","Ȍ":"O","Ò":"O","Ỏ":"O","Ơ":"O","Ớ":"O","Ợ":"O","Ờ":"O","Ở":"O","Ỡ":"O","Ȏ":"O","Ꝋ":"O","Ꝍ":"O","Ō":"O","Ṓ":"O","Ṑ":"O","Ɵ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Õ":"O","Ṍ":"O","Ṏ":"O","Ȭ":"O","Ƣ":"OI","Ꝏ":"OO","Ɛ":"E","Ɔ":"O","Ȣ":"OU","Ṕ":"P","Ṗ":"P","Ꝓ":"P","Ƥ":"P","Ꝕ":"P","Ᵽ":"P","Ꝑ":"P","Ꝙ":"Q","Ꝗ":"Q","Ŕ":"R","Ř":"R","Ŗ":"R","Ṙ":"R","Ṛ":"R","Ṝ":"R","Ȑ":"R","Ȓ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꜿ":"C","Ǝ":"E","Ś":"S","Ṥ":"S","Š":"S","Ṧ":"S","Ş":"S","Ŝ":"S","Ș":"S","Ṡ":"S","Ṣ":"S","Ṩ":"S","Ť":"T","Ţ":"T","Ṱ":"T","Ț":"T","Ⱦ":"T","Ṫ":"T","Ṭ":"T","Ƭ":"T","Ṯ":"T","Ʈ":"T","Ŧ":"T","Ɐ":"A","Ꞁ":"L","Ɯ":"M","Ʌ":"V","Ꜩ":"TZ","Ú":"U","Ŭ":"U","Ǔ":"U","Û":"U","Ṷ":"U","Ü":"U","Ǘ":"U","Ǚ":"U","Ǜ":"U","Ǖ":"U","Ṳ":"U","Ụ":"U","Ű":"U","Ȕ":"U","Ù":"U","Ủ":"U","Ư":"U","Ứ":"U","Ự":"U","Ừ":"U","Ử":"U","Ữ":"U","Ȗ":"U","Ū":"U","Ṻ":"U","Ų":"U","Ů":"U","Ũ":"U","Ṹ":"U","Ṵ":"U","Ꝟ":"V","Ṿ":"V","Ʋ":"V","Ṽ":"V","Ꝡ":"VY","Ẃ":"W","Ŵ":"W","Ẅ":"W","Ẇ":"W","Ẉ":"W","Ẁ":"W","Ⱳ":"W","Ẍ":"X","Ẋ":"X","Ý":"Y","Ŷ":"Y","Ÿ":"Y","Ẏ":"Y","Ỵ":"Y","Ỳ":"Y","Ƴ":"Y","Ỷ":"Y","Ỿ":"Y","Ȳ":"Y","Ɏ":"Y","Ỹ":"Y","Ź":"Z","Ž":"Z","Ẑ":"Z","Ⱬ":"Z","Ż":"Z","Ẓ":"Z","Ȥ":"Z","Ẕ":"Z","Ƶ":"Z","IJ":"IJ","Œ":"OE","ᴀ":"A","ᴁ":"AE","ʙ":"B","ᴃ":"B","ᴄ":"C","ᴅ":"D","ᴇ":"E","ꜰ":"F","ɢ":"G","ʛ":"G","ʜ":"H","ɪ":"I","ʁ":"R","ᴊ":"J","ᴋ":"K","ʟ":"L","ᴌ":"L","ᴍ":"M","ɴ":"N","ᴏ":"O","ɶ":"OE","ᴐ":"O","ᴕ":"OU","ᴘ":"P","ʀ":"R","ᴎ":"N","ᴙ":"R","ꜱ":"S","ᴛ":"T","ⱻ":"E","ᴚ":"R","ᴜ":"U","ᴠ":"V","ᴡ":"W","ʏ":"Y","ᴢ":"Z","á":"a","ă":"a","ắ":"a","ặ":"a","ằ":"a","ẳ":"a","ẵ":"a","ǎ":"a","â":"a","ấ":"a","ậ":"a","ầ":"a","ẩ":"a","ẫ":"a","ä":"a","ǟ":"a","ȧ":"a","ǡ":"a","ạ":"a","ȁ":"a","à":"a","ả":"a","ȃ":"a","ā":"a","ą":"a","ᶏ":"a","ẚ":"a","å":"a","ǻ":"a","ḁ":"a","ⱥ":"a","ã":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ḃ":"b","ḅ":"b","ɓ":"b","ḇ":"b","ᵬ":"b","ᶀ":"b","ƀ":"b","ƃ":"b","ɵ":"o","ć":"c","č":"c","ç":"c","ḉ":"c","ĉ":"c","ɕ":"c","ċ":"c","ƈ":"c","ȼ":"c","ď":"d","ḑ":"d","ḓ":"d","ȡ":"d","ḋ":"d","ḍ":"d","ɗ":"d","ᶑ":"d","ḏ":"d","ᵭ":"d","ᶁ":"d","đ":"d","ɖ":"d","ƌ":"d","ı":"i","ȷ":"j","ɟ":"j","ʄ":"j","dz":"dz","dž":"dz","é":"e","ĕ":"e","ě":"e","ȩ":"e","ḝ":"e","ê":"e","ế":"e","ệ":"e","ề":"e","ể":"e","ễ":"e","ḙ":"e","ë":"e","ė":"e","ẹ":"e","ȅ":"e","è":"e","ẻ":"e","ȇ":"e","ē":"e","ḗ":"e","ḕ":"e","ⱸ":"e","ę":"e","ᶒ":"e","ɇ":"e","ẽ":"e","ḛ":"e","ꝫ":"et","ḟ":"f","ƒ":"f","ᵮ":"f","ᶂ":"f","ǵ":"g","ğ":"g","ǧ":"g","ģ":"g","ĝ":"g","ġ":"g","ɠ":"g","ḡ":"g","ᶃ":"g","ǥ":"g","ḫ":"h","ȟ":"h","ḩ":"h","ĥ":"h","ⱨ":"h","ḧ":"h","ḣ":"h","ḥ":"h","ɦ":"h","ẖ":"h","ħ":"h","ƕ":"hv","í":"i","ĭ":"i","ǐ":"i","î":"i","ï":"i","ḯ":"i","ị":"i","ȉ":"i","ì":"i","ỉ":"i","ȋ":"i","ī":"i","į":"i","ᶖ":"i","ɨ":"i","ĩ":"i","ḭ":"i","ꝺ":"d","ꝼ":"f","ᵹ":"g","ꞃ":"r","ꞅ":"s","ꞇ":"t","ꝭ":"is","ǰ":"j","ĵ":"j","ʝ":"j","ɉ":"j","ḱ":"k","ǩ":"k","ķ":"k","ⱪ":"k","ꝃ":"k","ḳ":"k","ƙ":"k","ḵ":"k","ᶄ":"k","ꝁ":"k","ꝅ":"k","ĺ":"l","ƚ":"l","ɬ":"l","ľ":"l","ļ":"l","ḽ":"l","ȴ":"l","ḷ":"l","ḹ":"l","ⱡ":"l","ꝉ":"l","ḻ":"l","ŀ":"l","ɫ":"l","ᶅ":"l","ɭ":"l","ł":"l","lj":"lj","ſ":"s","ẜ":"s","ẛ":"s","ẝ":"s","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ᵯ":"m","ᶆ":"m","ń":"n","ň":"n","ņ":"n","ṋ":"n","ȵ":"n","ṅ":"n","ṇ":"n","ǹ":"n","ɲ":"n","ṉ":"n","ƞ":"n","ᵰ":"n","ᶇ":"n","ɳ":"n","ñ":"n","nj":"nj","ó":"o","ŏ":"o","ǒ":"o","ô":"o","ố":"o","ộ":"o","ồ":"o","ổ":"o","ỗ":"o","ö":"o","ȫ":"o","ȯ":"o","ȱ":"o","ọ":"o","ő":"o","ȍ":"o","ò":"o","ỏ":"o","ơ":"o","ớ":"o","ợ":"o","ờ":"o","ở":"o","ỡ":"o","ȏ":"o","ꝋ":"o","ꝍ":"o","ⱺ":"o","ō":"o","ṓ":"o","ṑ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","õ":"o","ṍ":"o","ṏ":"o","ȭ":"o","ƣ":"oi","ꝏ":"oo","ɛ":"e","ᶓ":"e","ɔ":"o","ᶗ":"o","ȣ":"ou","ṕ":"p","ṗ":"p","ꝓ":"p","ƥ":"p","ᵱ":"p","ᶈ":"p","ꝕ":"p","ᵽ":"p","ꝑ":"p","ꝙ":"q","ʠ":"q","ɋ":"q","ꝗ":"q","ŕ":"r","ř":"r","ŗ":"r","ṙ":"r","ṛ":"r","ṝ":"r","ȑ":"r","ɾ":"r","ᵳ":"r","ȓ":"r","ṟ":"r","ɼ":"r","ᵲ":"r","ᶉ":"r","ɍ":"r","ɽ":"r","ↄ":"c","ꜿ":"c","ɘ":"e","ɿ":"r","ś":"s","ṥ":"s","š":"s","ṧ":"s","ş":"s","ŝ":"s","ș":"s","ṡ":"s","ṣ":"s","ṩ":"s","ʂ":"s","ᵴ":"s","ᶊ":"s","ȿ":"s","ɡ":"g","ᴑ":"o","ᴓ":"o","ᴝ":"u","ť":"t","ţ":"t","ṱ":"t","ț":"t","ȶ":"t","ẗ":"t","ⱦ":"t","ṫ":"t","ṭ":"t","ƭ":"t","ṯ":"t","ᵵ":"t","ƫ":"t","ʈ":"t","ŧ":"t","ᵺ":"th","ɐ":"a","ᴂ":"ae","ǝ":"e","ᵷ":"g","ɥ":"h","ʮ":"h","ʯ":"h","ᴉ":"i","ʞ":"k","ꞁ":"l","ɯ":"m","ɰ":"m","ᴔ":"oe","ɹ":"r","ɻ":"r","ɺ":"r","ⱹ":"r","ʇ":"t","ʌ":"v","ʍ":"w","ʎ":"y","ꜩ":"tz","ú":"u","ŭ":"u","ǔ":"u","û":"u","ṷ":"u","ü":"u","ǘ":"u","ǚ":"u","ǜ":"u","ǖ":"u","ṳ":"u","ụ":"u","ű":"u","ȕ":"u","ù":"u","ủ":"u","ư":"u","ứ":"u","ự":"u","ừ":"u","ử":"u","ữ":"u","ȗ":"u","ū":"u","ṻ":"u","ų":"u","ᶙ":"u","ů":"u","ũ":"u","ṹ":"u","ṵ":"u","ᵫ":"ue","ꝸ":"um","ⱴ":"v","ꝟ":"v","ṿ":"v","ʋ":"v","ᶌ":"v","ⱱ":"v","ṽ":"v","ꝡ":"vy","ẃ":"w","ŵ":"w","ẅ":"w","ẇ":"w","ẉ":"w","ẁ":"w","ⱳ":"w","ẘ":"w","ẍ":"x","ẋ":"x","ᶍ":"x","ý":"y","ŷ":"y","ÿ":"y","ẏ":"y","ỵ":"y","ỳ":"y","ƴ":"y","ỷ":"y","ỿ":"y","ȳ":"y","ẙ":"y","ɏ":"y","ỹ":"y","ź":"z","ž":"z","ẑ":"z","ʑ":"z","ⱬ":"z","ż":"z","ẓ":"z","ȥ":"z","ẕ":"z","ᵶ":"z","ᶎ":"z","ʐ":"z","ƶ":"z","ɀ":"z","ff":"ff","ffi":"ffi","ffl":"ffl","fi":"fi","fl":"fl","ij":"ij","œ":"oe","st":"st","ₐ":"a","ₑ":"e","ᵢ":"i","ⱼ":"j","ₒ":"o","ᵣ":"r","ᵤ":"u","ᵥ":"v","ₓ":"x"};
-
- s = s.split(" ").join("-");
- s = s.replace(/[^A-Za-z0-9\[\] ]/g,function(a){return latin_map[a]||a});
- s = s.toLowerCase();
- s = s.replace(/[^a-z0-9\-]+/g,"");
-
- return s;
-}
-//-->
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/lib/waaclock.js
^
|
@@ -1,283 +0,0 @@
-//https://github.com/sebpiq/WAAClock/
-
-;(function(e,t,n){function i(n,s){if(!t[n]){if(!e[n]){var o=typeof require=="function"&&require;if(!s&&o)return o(n,!0);if(r)return r(n,!0);throw new Error("Cannot find module '"+n+"'")}var u=t[n]={exports:{}};e[n][0].call(u.exports,function(t){var r=e[n][1][t];return i(r?r:t)},u,u.exports)}return t[n].exports}var r=typeof require=="function"&&require;for(var s=0;s<n.length;s++)i(n[s]);return i})({1:[function(require,module,exports){
- var WAAClock = require('./lib/WAAClock')
-
- module.exports = WAAClock
- if (typeof window !== 'undefined') window.WAAClock = WAAClock
-
-},{"./lib/WAAClock":2}],3:[function(require,module,exports){
-// shim for using process in browser
-
- var process = module.exports = {};
-
- process.nextTick = (function () {
- var canSetImmediate = typeof window !== 'undefined'
- && window.setImmediate;
- var canPost = typeof window !== 'undefined'
- && window.postMessage && window.addEventListener
- ;
-
- if (canSetImmediate) {
- return function (f) { return window.setImmediate(f) };
- }
-
- if (canPost) {
- var queue = [];
- window.addEventListener('message', function (ev) {
- var source = ev.source;
- if ((source === window || source === null) && ev.data === 'process-tick') {
- ev.stopPropagation();
- if (queue.length > 0) {
- var fn = queue.shift();
- fn();
- }
- }
- }, true);
-
- return function nextTick(fn) {
- queue.push(fn);
- window.postMessage('process-tick', '*');
- };
- }
-
- return function nextTick(fn) {
- setTimeout(fn, 0);
- };
- })();
-
- process.title = 'browser';
- process.browser = true;
- process.env = {};
- process.argv = [];
-
- process.binding = function (name) {
- throw new Error('process.binding is not supported');
- }
-
-// TODO(shtylman)
- process.cwd = function () { return '/' };
- process.chdir = function (dir) {
- throw new Error('process.chdir is not supported');
- };
-
-},{}],2:[function(require,module,exports){
- var process=require("__browserify_process");var isBrowser = (typeof window !== 'undefined')
-
- if (isBrowser && !AudioContext)
- throw new Error('This browser doesn\'t seem to support web audio API')
-
- var CLOCK_DEFAULTS = {
- toleranceLate: 0.10,
- toleranceEarly: 0.001
- }
-
-// ==================== Event ==================== //
- var Event = function(clock, deadline, func) {
- this.clock = clock
- this.func = func
- this.repeatTime = null
- this.toleranceLate = CLOCK_DEFAULTS.toleranceLate
- this.toleranceEarly = CLOCK_DEFAULTS.toleranceEarly
- this._armed = false
- this._latestTime = null
- this._earliestTime = null
- this.schedule(deadline)
- }
-
-// Unschedules the event
- Event.prototype.clear = function() {
- this.clock._removeEvent(this)
- return this
- }
-
-// Sets the event to repeat every `time` seconds.
- Event.prototype.repeat = function(time) {
- if (time === 0)
- throw new Error('delay cannot be 0')
- this.repeatTime = time
- return this
- }
-
-// Sets the time tolerance of the event.
-// The event will be executed in the interval `[deadline - early, deadline + late]`
-// If the clock fails to execute the event in time, the event will be dropped.
- Event.prototype.tolerance = function(values) {
- if (typeof values.late === 'number')
- this.toleranceLate = values.late
- if (typeof values.early === 'number')
- this.toleranceEarly = values.early
- this._update()
- return this
- }
-
-// Returns true if the event is repeated, false otherwise
- Event.prototype.isRepeated = function() { return this.repeatTime !== null }
-
-// Schedules the event to be ran before `deadline`.
-// If the time is within the event tolerance, we handle the event immediately
- Event.prototype.schedule = function(deadline) {
- this._armed = true
- this.deadline = deadline
- this._update()
- if (this.clock.context.currentTime >= this._earliestTime) {
- this.clock._removeEvent(this)
- this._execute()
- }
- }
-
-// Executes the event
- Event.prototype._execute = function() {
- this._armed = false
- if (this.clock.context.currentTime < this._latestTime)
- this.func(this);
- else {
- //if (this.onexpired) this.onexpired(this)
- console.warn('event expired');
- if (EventBus) EventBus.trigger(EVENT.clockEventExpired);
- }
- // In the case `schedule` is called inside `func`, we need to avoid
- // overrwriting with yet another `schedule`
- if (this._armed === false && this.isRepeated())
- this.schedule(this.deadline + this.repeatTime)
- };
-
-// This recalculates some cached values and re-insert the event in the clock's list
-// to maintain order.
- Event.prototype._update = function() {
- this._latestTime = this.deadline + this.toleranceLate
- this._earliestTime = this.deadline - this.toleranceEarly
- this.clock._removeEvent(this)
- this.clock._insertEvent(this)
- }
-
-// ==================== WAAClock ==================== //
- var WAAClock = module.exports = function(context, opts) {
- var self = this
- opts = opts || {}
- this.toleranceEarly = opts.toleranceEarly || CLOCK_DEFAULTS.toleranceEarly
- this.toleranceLate = opts.toleranceLate || CLOCK_DEFAULTS.toleranceLate
- this.context = context
- this._events = []
- this._started = false
- }
-
-// ---------- Public API ---------- //
-// Schedules `func` to run after `delay` seconds.
- WAAClock.prototype.setTimeout = function(func, delay) {
- return this._createEvent(func, this._absTime(delay))
- }
-
-// Schedules `func` to run before `deadline`.
- WAAClock.prototype.callbackAtTime = function(func, deadline) {
- return this._createEvent(func, deadline)
- }
-
-// Stretches `deadline` and `repeat` of all scheduled `events` by `ratio`, keeping
-// their relative distance to `tRef`. In fact this is equivalent to changing the tempo.
- WAAClock.prototype.timeStretch = function(tRef, events, ratio) {
- var self = this
- , currentTime = self.context.currentTime
-
- events.forEach(function(event) {
- if (event.isRepeated()) event.repeat(event.repeatTime * ratio)
-
- var deadline = tRef + ratio * (event.deadline - tRef)
- // If the deadline is too close or past, and the event has a repeat,
- // we calculate the next repeat possible in the stretched space.
- if (event.isRepeated()) {
- while (currentTime >= deadline - event.toleranceEarly)
- deadline += event.repeatTime
- }
- event.schedule(deadline)
-
-
- })
- return events
- }
-
-// ---------- Private ---------- //
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/lib/zip.js
^
|
@@ -1,1016 +0,0 @@
-/*
- Copyright (c) 2013 Gildas Lormeau. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the distribution.
-
- 3. The names of the authors may not be used to endorse or promote products
- derived from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
- INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-(function(obj) {
- "use strict";
-
- var ERR_BAD_FORMAT = "File format is not recognized.";
- var ERR_CRC = "CRC failed.";
- var ERR_ENCRYPTED = "File contains encrypted entry.";
- var ERR_ZIP64 = "File is using Zip64 (4gb+ file size).";
- var ERR_READ = "Error while reading zip file.";
- var ERR_WRITE = "Error while writing zip file.";
- var ERR_WRITE_DATA = "Error while writing file data.";
- var ERR_READ_DATA = "Error while reading file data.";
- var ERR_DUPLICATED_NAME = "File already exists.";
- var CHUNK_SIZE = 512 * 1024;
-
- var TEXT_PLAIN = "text/plain";
-
- var appendABViewSupported;
- try {
- appendABViewSupported = new Blob([ new DataView(new ArrayBuffer(0)) ]).size === 0;
- } catch (e) {
- }
-
- function Crc32() {
- this.crc = -1;
- }
- Crc32.prototype.append = function append(data) {
- var crc = this.crc | 0, table = this.table;
- for (var offset = 0, len = data.length | 0; offset < len; offset++)
- crc = (crc >>> 8) ^ table[(crc ^ data[offset]) & 0xFF];
- this.crc = crc;
- };
- Crc32.prototype.get = function get() {
- return ~this.crc;
- };
- Crc32.prototype.table = (function() {
- var i, j, t, table = []; // Uint32Array is actually slower than []
- for (i = 0; i < 256; i++) {
- t = i;
- for (j = 0; j < 8; j++)
- if (t & 1)
- t = (t >>> 1) ^ 0xEDB88320;
- else
- t = t >>> 1;
- table[i] = t;
- }
- return table;
- })();
-
- // "no-op" codec
- function NOOP() {}
- NOOP.prototype.append = function append(bytes, onprogress) {
- return bytes;
- };
- NOOP.prototype.flush = function flush() {};
-
- function blobSlice(blob, index, length) {
- if (index < 0 || length < 0 || index + length > blob.size)
- throw new RangeError('offset:' + index + ', length:' + length + ', size:' + blob.size);
- if (blob.slice)
- return blob.slice(index, index + length);
- else if (blob.webkitSlice)
- return blob.webkitSlice(index, index + length);
- else if (blob.mozSlice)
- return blob.mozSlice(index, index + length);
- else if (blob.msSlice)
- return blob.msSlice(index, index + length);
- }
-
- function getDataHelper(byteLength, bytes) {
- var dataBuffer, dataArray;
- dataBuffer = new ArrayBuffer(byteLength);
- dataArray = new Uint8Array(dataBuffer);
- if (bytes)
- dataArray.set(bytes, 0);
- return {
- buffer : dataBuffer,
- array : dataArray,
- view : new DataView(dataBuffer)
- };
- }
-
- // Readers
- function Reader() {
- }
-
- function TextReader(text) {
- var that = this, blobReader;
-
- function init(callback, onerror) {
- var blob = new Blob([ text ], {
- type : TEXT_PLAIN
- });
- blobReader = new BlobReader(blob);
- blobReader.init(function() {
- that.size = blobReader.size;
- callback();
- }, onerror);
- }
-
- function readUint8Array(index, length, callback, onerror) {
- blobReader.readUint8Array(index, length, callback, onerror);
- }
-
- that.size = 0;
- that.init = init;
- that.readUint8Array = readUint8Array;
- }
- TextReader.prototype = new Reader();
- TextReader.prototype.constructor = TextReader;
-
- function Data64URIReader(dataURI) {
- var that = this, dataStart;
-
- function init(callback) {
- var dataEnd = dataURI.length;
- while (dataURI.charAt(dataEnd - 1) == "=")
- dataEnd--;
- dataStart = dataURI.indexOf(",") + 1;
- that.size = Math.floor((dataEnd - dataStart) * 0.75);
- callback();
- }
-
- function readUint8Array(index, length, callback) {
- var i, data = getDataHelper(length);
- var start = Math.floor(index / 3) * 4;
- var end = Math.ceil((index + length) / 3) * 4;
- var bytes = obj.atob(dataURI.substring(start + dataStart, end + dataStart));
- var delta = index - Math.floor(start / 4) * 3;
- for (i = delta; i < delta + length; i++)
- data.array[i - delta] = bytes.charCodeAt(i);
- callback(data.array);
- }
-
- that.size = 0;
- that.init = init;
- that.readUint8Array = readUint8Array;
- }
- Data64URIReader.prototype = new Reader();
- Data64URIReader.prototype.constructor = Data64URIReader;
-
- function BlobReader(blob) {
- var that = this;
-
- function init(callback) {
- that.size = blob.size;
- callback();
- }
-
- function readUint8Array(index, length, callback, onerror) {
- var reader = new FileReader();
- reader.onload = function(e) {
- callback(new Uint8Array(e.target.result));
- };
- reader.onerror = onerror;
- try {
- reader.readAsArrayBuffer(blobSlice(blob, index, length));
- } catch (e) {
- onerror(e);
- }
- }
-
- that.size = 0;
- that.init = init;
- that.readUint8Array = readUint8Array;
- }
- BlobReader.prototype = new Reader();
- BlobReader.prototype.constructor = BlobReader;
-
-
- function ArrayBufferReader(arrayBuffer) {
- var that = this;
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/lib/zip/deflate.js
^
|
@@ -1,2060 +0,0 @@
-/*
- Copyright (c) 2013 Gildas Lormeau. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the distribution.
-
- 3. The names of the authors may not be used to endorse or promote products
- derived from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
- INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * This program is based on JZlib 1.0.2 ymnk, JCraft,Inc.
- * JZlib is based on zlib-1.1.3, so all credit should go authors
- * Jean-loup Gailly(jloup@gzip.org) and Mark Adler(madler@alumni.caltech.edu)
- * and contributors of zlib.
- */
-
-(function(global) {
- "use strict";
-
- // Global
-
- var MAX_BITS = 15;
- var D_CODES = 30;
- var BL_CODES = 19;
-
- var LENGTH_CODES = 29;
- var LITERALS = 256;
- var L_CODES = (LITERALS + 1 + LENGTH_CODES);
- var HEAP_SIZE = (2 * L_CODES + 1);
-
- var END_BLOCK = 256;
-
- // Bit length codes must not exceed MAX_BL_BITS bits
- var MAX_BL_BITS = 7;
-
- // repeat previous bit length 3-6 times (2 bits of repeat count)
- var REP_3_6 = 16;
-
- // repeat a zero length 3-10 times (3 bits of repeat count)
- var REPZ_3_10 = 17;
-
- // repeat a zero length 11-138 times (7 bits of repeat count)
- var REPZ_11_138 = 18;
-
- // The lengths of the bit length codes are sent in order of decreasing
- // probability, to avoid transmitting the lengths for unused bit
- // length codes.
-
- var Buf_size = 8 * 2;
-
- // JZlib version : "1.0.2"
- var Z_DEFAULT_COMPRESSION = -1;
-
- // compression strategy
- var Z_FILTERED = 1;
- var Z_HUFFMAN_ONLY = 2;
- var Z_DEFAULT_STRATEGY = 0;
-
- var Z_NO_FLUSH = 0;
- var Z_PARTIAL_FLUSH = 1;
- var Z_FULL_FLUSH = 3;
- var Z_FINISH = 4;
-
- var Z_OK = 0;
- var Z_STREAM_END = 1;
- var Z_NEED_DICT = 2;
- var Z_STREAM_ERROR = -2;
- var Z_DATA_ERROR = -3;
- var Z_BUF_ERROR = -5;
-
- // Tree
-
- // see definition of array dist_code below
- var _dist_code = [ 0, 1, 2, 3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
- 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 16, 17, 18, 18, 19, 19,
- 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
- 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
- 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29 ];
-
- function Tree() {
- var that = this;
-
- // dyn_tree; // the dynamic tree
- // max_code; // largest code with non zero frequency
- // stat_desc; // the corresponding static tree
-
- // Compute the optimal bit lengths for a tree and update the total bit
- // length
- // for the current block.
- // IN assertion: the fields freq and dad are set, heap[heap_max] and
- // above are the tree nodes sorted by increasing frequency.
- // OUT assertions: the field len is set to the optimal bit length, the
- // array bl_count contains the frequencies for each bit length.
- // The length opt_len is updated; static_len is also updated if stree is
- // not null.
- function gen_bitlen(s) {
- var tree = that.dyn_tree;
- var stree = that.stat_desc.static_tree;
- var extra = that.stat_desc.extra_bits;
- var base = that.stat_desc.extra_base;
- var max_length = that.stat_desc.max_length;
- var h; // heap index
- var n, m; // iterate over the tree elements
- var bits; // bit length
- var xbits; // extra bits
- var f; // frequency
- var overflow = 0; // number of elements with bit length too large
-
- for (bits = 0; bits <= MAX_BITS; bits++)
- s.bl_count[bits] = 0;
-
- // In a first pass, compute the optimal bit lengths (which may
- // overflow in the case of the bit length tree).
- tree[s.heap[s.heap_max] * 2 + 1] = 0; // root of the heap
-
- for (h = s.heap_max + 1; h < HEAP_SIZE; h++) {
- n = s.heap[h];
- bits = tree[tree[n * 2 + 1] * 2 + 1] + 1;
- if (bits > max_length) {
- bits = max_length;
- overflow++;
- }
- tree[n * 2 + 1] = bits;
- // We overwrite tree[n*2+1] which is no longer needed
-
- if (n > that.max_code)
- continue; // not a leaf node
-
- s.bl_count[bits]++;
- xbits = 0;
- if (n >= base)
- xbits = extra[n - base];
- f = tree[n * 2];
- s.opt_len += f * (bits + xbits);
- if (stree)
- s.static_len += f * (stree[n * 2 + 1] + xbits);
- }
- if (overflow === 0)
- return;
-
- // This happens for example on obj2 and pic of the Calgary corpus
- // Find the first bit length which could increase:
- do {
- bits = max_length - 1;
- while (s.bl_count[bits] === 0)
- bits--;
- s.bl_count[bits]--; // move one leaf down the tree
- s.bl_count[bits + 1] += 2; // move one overflow item as its brother
- s.bl_count[max_length]--;
- // The brother of the overflow item also moves one step up,
- // but this does not affect bl_count[max_length]
- overflow -= 2;
- } while (overflow > 0);
-
- for (bits = max_length; bits !== 0; bits--) {
- n = s.bl_count[bits];
- while (n !== 0) {
- m = s.heap[--h];
- if (m > that.max_code)
- continue;
- if (tree[m * 2 + 1] != bits) {
- s.opt_len += (bits - tree[m * 2 + 1]) * tree[m * 2];
- tree[m * 2 + 1] = bits;
- }
- n--;
- }
- }
- }
-
- // Reverse the first len bits of a code, using straightforward code (a
- // faster
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/lib/zip/inflate.js
^
|
@@ -1,2155 +0,0 @@
-/*
- Copyright (c) 2013 Gildas Lormeau. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the distribution.
-
- 3. The names of the authors may not be used to endorse or promote products
- derived from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
- INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * This program is based on JZlib 1.0.2 ymnk, JCraft,Inc.
- * JZlib is based on zlib-1.1.3, so all credit should go authors
- * Jean-loup Gailly(jloup@gzip.org) and Mark Adler(madler@alumni.caltech.edu)
- * and contributors of zlib.
- */
-
-(function(global) {
- "use strict";
-
- // Global
- var MAX_BITS = 15;
-
- var Z_OK = 0;
- var Z_STREAM_END = 1;
- var Z_NEED_DICT = 2;
- var Z_STREAM_ERROR = -2;
- var Z_DATA_ERROR = -3;
- var Z_MEM_ERROR = -4;
- var Z_BUF_ERROR = -5;
-
- var inflate_mask = [ 0x00000000, 0x00000001, 0x00000003, 0x00000007, 0x0000000f, 0x0000001f, 0x0000003f, 0x0000007f, 0x000000ff, 0x000001ff, 0x000003ff,
- 0x000007ff, 0x00000fff, 0x00001fff, 0x00003fff, 0x00007fff, 0x0000ffff ];
-
- var MANY = 1440;
-
- // JZlib version : "1.0.2"
- var Z_NO_FLUSH = 0;
- var Z_FINISH = 4;
-
- // InfTree
- var fixed_bl = 9;
- var fixed_bd = 5;
-
- var fixed_tl = [ 96, 7, 256, 0, 8, 80, 0, 8, 16, 84, 8, 115, 82, 7, 31, 0, 8, 112, 0, 8, 48, 0, 9, 192, 80, 7, 10, 0, 8, 96, 0, 8, 32, 0, 9, 160, 0, 8, 0,
- 0, 8, 128, 0, 8, 64, 0, 9, 224, 80, 7, 6, 0, 8, 88, 0, 8, 24, 0, 9, 144, 83, 7, 59, 0, 8, 120, 0, 8, 56, 0, 9, 208, 81, 7, 17, 0, 8, 104, 0, 8, 40,
- 0, 9, 176, 0, 8, 8, 0, 8, 136, 0, 8, 72, 0, 9, 240, 80, 7, 4, 0, 8, 84, 0, 8, 20, 85, 8, 227, 83, 7, 43, 0, 8, 116, 0, 8, 52, 0, 9, 200, 81, 7, 13,
- 0, 8, 100, 0, 8, 36, 0, 9, 168, 0, 8, 4, 0, 8, 132, 0, 8, 68, 0, 9, 232, 80, 7, 8, 0, 8, 92, 0, 8, 28, 0, 9, 152, 84, 7, 83, 0, 8, 124, 0, 8, 60,
- 0, 9, 216, 82, 7, 23, 0, 8, 108, 0, 8, 44, 0, 9, 184, 0, 8, 12, 0, 8, 140, 0, 8, 76, 0, 9, 248, 80, 7, 3, 0, 8, 82, 0, 8, 18, 85, 8, 163, 83, 7,
- 35, 0, 8, 114, 0, 8, 50, 0, 9, 196, 81, 7, 11, 0, 8, 98, 0, 8, 34, 0, 9, 164, 0, 8, 2, 0, 8, 130, 0, 8, 66, 0, 9, 228, 80, 7, 7, 0, 8, 90, 0, 8,
- 26, 0, 9, 148, 84, 7, 67, 0, 8, 122, 0, 8, 58, 0, 9, 212, 82, 7, 19, 0, 8, 106, 0, 8, 42, 0, 9, 180, 0, 8, 10, 0, 8, 138, 0, 8, 74, 0, 9, 244, 80,
- 7, 5, 0, 8, 86, 0, 8, 22, 192, 8, 0, 83, 7, 51, 0, 8, 118, 0, 8, 54, 0, 9, 204, 81, 7, 15, 0, 8, 102, 0, 8, 38, 0, 9, 172, 0, 8, 6, 0, 8, 134, 0,
- 8, 70, 0, 9, 236, 80, 7, 9, 0, 8, 94, 0, 8, 30, 0, 9, 156, 84, 7, 99, 0, 8, 126, 0, 8, 62, 0, 9, 220, 82, 7, 27, 0, 8, 110, 0, 8, 46, 0, 9, 188, 0,
- 8, 14, 0, 8, 142, 0, 8, 78, 0, 9, 252, 96, 7, 256, 0, 8, 81, 0, 8, 17, 85, 8, 131, 82, 7, 31, 0, 8, 113, 0, 8, 49, 0, 9, 194, 80, 7, 10, 0, 8, 97,
- 0, 8, 33, 0, 9, 162, 0, 8, 1, 0, 8, 129, 0, 8, 65, 0, 9, 226, 80, 7, 6, 0, 8, 89, 0, 8, 25, 0, 9, 146, 83, 7, 59, 0, 8, 121, 0, 8, 57, 0, 9, 210,
- 81, 7, 17, 0, 8, 105, 0, 8, 41, 0, 9, 178, 0, 8, 9, 0, 8, 137, 0, 8, 73, 0, 9, 242, 80, 7, 4, 0, 8, 85, 0, 8, 21, 80, 8, 258, 83, 7, 43, 0, 8, 117,
- 0, 8, 53, 0, 9, 202, 81, 7, 13, 0, 8, 101, 0, 8, 37, 0, 9, 170, 0, 8, 5, 0, 8, 133, 0, 8, 69, 0, 9, 234, 80, 7, 8, 0, 8, 93, 0, 8, 29, 0, 9, 154,
- 84, 7, 83, 0, 8, 125, 0, 8, 61, 0, 9, 218, 82, 7, 23, 0, 8, 109, 0, 8, 45, 0, 9, 186, 0, 8, 13, 0, 8, 141, 0, 8, 77, 0, 9, 250, 80, 7, 3, 0, 8, 83,
- 0, 8, 19, 85, 8, 195, 83, 7, 35, 0, 8, 115, 0, 8, 51, 0, 9, 198, 81, 7, 11, 0, 8, 99, 0, 8, 35, 0, 9, 166, 0, 8, 3, 0, 8, 131, 0, 8, 67, 0, 9, 230,
- 80, 7, 7, 0, 8, 91, 0, 8, 27, 0, 9, 150, 84, 7, 67, 0, 8, 123, 0, 8, 59, 0, 9, 214, 82, 7, 19, 0, 8, 107, 0, 8, 43, 0, 9, 182, 0, 8, 11, 0, 8, 139,
- 0, 8, 75, 0, 9, 246, 80, 7, 5, 0, 8, 87, 0, 8, 23, 192, 8, 0, 83, 7, 51, 0, 8, 119, 0, 8, 55, 0, 9, 206, 81, 7, 15, 0, 8, 103, 0, 8, 39, 0, 9, 174,
- 0, 8, 7, 0, 8, 135, 0, 8, 71, 0, 9, 238, 80, 7, 9, 0, 8, 95, 0, 8, 31, 0, 9, 158, 84, 7, 99, 0, 8, 127, 0, 8, 63, 0, 9, 222, 82, 7, 27, 0, 8, 111,
- 0, 8, 47, 0, 9, 190, 0, 8, 15, 0, 8, 143, 0, 8, 79, 0, 9, 254, 96, 7, 256, 0, 8, 80, 0, 8, 16, 84, 8, 115, 82, 7, 31, 0, 8, 112, 0, 8, 48, 0, 9,
- 193, 80, 7, 10, 0, 8, 96, 0, 8, 32, 0, 9, 161, 0, 8, 0, 0, 8, 128, 0, 8, 64, 0, 9, 225, 80, 7, 6, 0, 8, 88, 0, 8, 24, 0, 9, 145, 83, 7, 59, 0, 8,
- 120, 0, 8, 56, 0, 9, 209, 81, 7, 17, 0, 8, 104, 0, 8, 40, 0, 9, 177, 0, 8, 8, 0, 8, 136, 0, 8, 72, 0, 9, 241, 80, 7, 4, 0, 8, 84, 0, 8, 20, 85, 8,
- 227, 83, 7, 43, 0, 8, 116, 0, 8, 52, 0, 9, 201, 81, 7, 13, 0, 8, 100, 0, 8, 36, 0, 9, 169, 0, 8, 4, 0, 8, 132, 0, 8, 68, 0, 9, 233, 80, 7, 8, 0, 8,
- 92, 0, 8, 28, 0, 9, 153, 84, 7, 83, 0, 8, 124, 0, 8, 60, 0, 9, 217, 82, 7, 23, 0, 8, 108, 0, 8, 44, 0, 9, 185, 0, 8, 12, 0, 8, 140, 0, 8, 76, 0, 9,
- 249, 80, 7, 3, 0, 8, 82, 0, 8, 18, 85, 8, 163, 83, 7, 35, 0, 8, 114, 0, 8, 50, 0, 9, 197, 81, 7, 11, 0, 8, 98, 0, 8, 34, 0, 9, 165, 0, 8, 2, 0, 8,
- 130, 0, 8, 66, 0, 9, 229, 80, 7, 7, 0, 8, 90, 0, 8, 26, 0, 9, 149, 84, 7, 67, 0, 8, 122, 0, 8, 58, 0, 9, 213, 82, 7, 19, 0, 8, 106, 0, 8, 42, 0, 9,
- 181, 0, 8, 10, 0, 8, 138, 0, 8, 74, 0, 9, 245, 80, 7, 5, 0, 8, 86, 0, 8, 22, 192, 8, 0, 83, 7, 51, 0, 8, 118, 0, 8, 54, 0, 9, 205, 81, 7, 15, 0, 8,
- 102, 0, 8, 38, 0, 9, 173, 0, 8, 6, 0, 8, 134, 0, 8, 70, 0, 9, 237, 80, 7, 9, 0, 8, 94, 0, 8, 30, 0, 9, 157, 84, 7, 99, 0, 8, 126, 0, 8, 62, 0, 9,
- 221, 82, 7, 27, 0, 8, 110, 0, 8, 46, 0, 9, 189, 0, 8, 14, 0, 8, 142, 0, 8, 78, 0, 9, 253, 96, 7, 256, 0, 8, 81, 0, 8, 17, 85, 8, 131, 82, 7, 31, 0,
- 8, 113, 0, 8, 49, 0, 9, 195, 80, 7, 10, 0, 8, 97, 0, 8, 33, 0, 9, 163, 0, 8, 1, 0, 8, 129, 0, 8, 65, 0, 9, 227, 80, 7, 6, 0, 8, 89, 0, 8, 25, 0, 9,
- 147, 83, 7, 59, 0, 8, 121, 0, 8, 57, 0, 9, 211, 81, 7, 17, 0, 8, 105, 0, 8, 41, 0, 9, 179, 0, 8, 9, 0, 8, 137, 0, 8, 73, 0, 9, 243, 80, 7, 4, 0, 8,
- 85, 0, 8, 21, 80, 8, 258, 83, 7, 43, 0, 8, 117, 0, 8, 53, 0, 9, 203, 81, 7, 13, 0, 8, 101, 0, 8, 37, 0, 9, 171, 0, 8, 5, 0, 8, 133, 0, 8, 69, 0, 9,
- 235, 80, 7, 8, 0, 8, 93, 0, 8, 29, 0, 9, 155, 84, 7, 83, 0, 8, 125, 0, 8, 61, 0, 9, 219, 82, 7, 23, 0, 8, 109, 0, 8, 45, 0, 9, 187, 0, 8, 13, 0, 8,
- 141, 0, 8, 77, 0, 9, 251, 80, 7, 3, 0, 8, 83, 0, 8, 19, 85, 8, 195, 83, 7, 35, 0, 8, 115, 0, 8, 51, 0, 9, 199, 81, 7, 11, 0, 8, 99, 0, 8, 35, 0, 9,
- 167, 0, 8, 3, 0, 8, 131, 0, 8, 67, 0, 9, 231, 80, 7, 7, 0, 8, 91, 0, 8, 27, 0, 9, 151, 84, 7, 67, 0, 8, 123, 0, 8, 59, 0, 9, 215, 82, 7, 19, 0, 8,
- 107, 0, 8, 43, 0, 9, 183, 0, 8, 11, 0, 8, 139, 0, 8, 75, 0, 9, 247, 80, 7, 5, 0, 8, 87, 0, 8, 23, 192, 8, 0, 83, 7, 51, 0, 8, 119, 0, 8, 55, 0, 9,
- 207, 81, 7, 15, 0, 8, 103, 0, 8, 39, 0, 9, 175, 0, 8, 7, 0, 8, 135, 0, 8, 71, 0, 9, 239, 80, 7, 9, 0, 8, 95, 0, 8, 31, 0, 9, 159, 84, 7, 99, 0, 8,
- 127, 0, 8, 63, 0, 9, 223, 82, 7, 27, 0, 8, 111, 0, 8, 47, 0, 9, 191, 0, 8, 15, 0, 8, 143, 0, 8, 79, 0, 9, 255 ];
- var fixed_td = [ 80, 5, 1, 87, 5, 257, 83, 5, 17, 91, 5, 4097, 81, 5, 5, 89, 5, 1025, 85, 5, 65, 93, 5, 16385, 80, 5, 3, 88, 5, 513, 84, 5, 33, 92, 5,
- 8193, 82, 5, 9, 90, 5, 2049, 86, 5, 129, 192, 5, 24577, 80, 5, 2, 87, 5, 385, 83, 5, 25, 91, 5, 6145, 81, 5, 7, 89, 5, 1537, 85, 5, 97, 93, 5,
- 24577, 80, 5, 4, 88, 5, 769, 84, 5, 49, 92, 5, 12289, 82, 5, 13, 90, 5, 3073, 86, 5, 193, 192, 5, 24577 ];
-
- // Tables for deflate from PKZIP's appnote.txt.
- var cplens = [ // Copy lengths for literal codes 257..285
- 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0 ];
-
- // see note #13 above about 258
- var cplext = [ // Extra bits for literal codes 257..285
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 112, 112 // 112==invalid
- ];
-
- var cpdist = [ // Copy offsets for distance codes 0..29
- 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 ];
-
- var cpdext = [ // Extra bits for distance codes
- 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13 ];
-
- // If BMAX needs to be larger than 16, then h and x[] should be uLong.
- var BMAX = 15; // maximum bit length of any code
-
- function InfTree() {
- var that = this;
-
- var hn; // hufts used in space
- var v; // work area for huft_build
- var c; // bit length count table
- var r; // table entry for structure assignment
- var u; // table stack
- var x; // bit offsets, then code stack
-
- function huft_build(b, // code lengths in bits (all assumed <=
- // BMAX)
- bindex, n, // number of codes (assumed <= 288)
- s, // number of simple-valued codes (0..s-1)
- d, // list of base values for non-simple codes
- e, // list of extra bits for non-simple codes
- t, // result: starting table
- m, // maximum lookup bits, returns actual
- hp,// space for trees
- hn,// hufts used in space
- v // working area: values in order of bit length
- ) {
- // Given a list of code lengths and a maximum table size, make a set of
- // tables to decode that set of codes. Return Z_OK on success,
- // Z_BUF_ERROR
- // if the given code set is incomplete (the tables are still built in
- // this
- // case), Z_DATA_ERROR if the input is invalid (an over-subscribed set
- // of
- // lengths), or Z_MEM_ERROR if not enough memory.
-
- var a; // counter for codes of length k
- var f; // i repeats in table every f entries
- var g; // maximum code length
- var h; // table level
- var i; // counter, current code
- var j; // counter
- var k; // number of bits in current code
- var l; // bits per table (returned in m)
- var mask; // (1 << w) - 1, to avoid cc -O bug on HP
- var p; // pointer into c[], b[], or v[]
- var q; // points to current table
- var w; // bits before this table == (l * h)
- var xp; // pointer into x
- var y; // number of dummy codes added
- var z; // number of entries in current table
-
- // Generate counts for each bit length
-
- p = 0;
- i = n;
- do {
- c[b[bindex + p]]++;
- p++;
- i--; // assume all entries <= BMAX
- } while (i !== 0);
-
- if (c[0] == n) { // null input--all zero length codes
- t[0] = -1;
- m[0] = 0;
- return Z_OK;
- }
-
- // Find minimum and maximum length, bound *m by those
- l = m[0];
- for (j = 1; j <= BMAX; j++)
- if (c[j] !== 0)
- break;
- k = j; // minimum code length
- if (l < j) {
- l = j;
- }
- for (i = BMAX; i !== 0; i--) {
- if (c[i] !== 0)
- break;
- }
- g = i; // maximum code length
- if (l > i) {
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/lib/zip/z-worker.js
^
|
@@ -1,153 +0,0 @@
-/* jshint worker:true */
-(function main(global) {
- "use strict";
-
- if (global.zWorkerInitialized)
- //throw new Error('z-worker.js should be run only once');
- global.zWorkerInitialized = true;
-
- addEventListener("message", function(event) {
- var message = event.data, type = message.type, sn = message.sn;
- var handler = handlers[type];
- if (handler) {
- try {
- handler(message);
- } catch (e) {
- onError(type, sn, e);
- }
- }
- //for debug
- //postMessage({type: 'echo', originalType: type, sn: sn});
- });
-
- var handlers = {
- importScripts: doImportScripts,
- newTask: newTask,
- append: processData,
- flush: processData,
- };
-
- // deflater/inflater tasks indexed by serial numbers
- var tasks = {};
-
- function doImportScripts(msg) {
- if (msg.scripts && msg.scripts.length > 0)
- importScripts.apply(undefined, msg.scripts);
- postMessage({type: 'importScripts'});
- }
-
- function newTask(msg) {
- var CodecClass = global[msg.codecClass];
- var sn = msg.sn;
- if (tasks[sn])
- throw Error('duplicated sn');
- tasks[sn] = {
- codec: new CodecClass(msg.options),
- crcInput: msg.crcType === 'input',
- crcOutput: msg.crcType === 'output',
- crc: new Crc32(),
- };
- postMessage({type: 'newTask', sn: sn});
- }
-
- // performance may not be supported
- var now = global.performance ? global.performance.now.bind(global.performance) : Date.now;
-
- function processData(msg) {
- var sn = msg.sn, type = msg.type, input = msg.data;
- var task = tasks[sn];
- // allow creating codec on first append
- if (!task && msg.codecClass) {
- newTask(msg);
- task = tasks[sn];
- }
- var isAppend = type === 'append';
- var start = now();
- var output;
- if (isAppend) {
- try {
- output = task.codec.append(input, function onprogress(loaded) {
- postMessage({type: 'progress', sn: sn, loaded: loaded});
- });
- } catch (e) {
- delete tasks[sn];
- throw e;
- }
- } else {
- delete tasks[sn];
- output = task.codec.flush();
- }
- var codecTime = now() - start;
-
- start = now();
- if (input && task.crcInput)
- task.crc.append(input);
- if (output && task.crcOutput)
- task.crc.append(output);
- var crcTime = now() - start;
-
- var rmsg = {type: type, sn: sn, codecTime: codecTime, crcTime: crcTime};
- var transferables = [];
- if (output) {
- rmsg.data = output;
- transferables.push(output.buffer);
- }
- if (!isAppend && (task.crcInput || task.crcOutput))
- rmsg.crc = task.crc.get();
-
- // posting a message with transferables will fail on IE10
- try {
- postMessage(rmsg, transferables);
- } catch(ex) {
- postMessage(rmsg); // retry without transferables
- }
- }
-
- function onError(type, sn, e) {
- var msg = {
- type: type,
- sn: sn,
- error: formatError(e)
- };
- postMessage(msg);
- }
-
- function formatError(e) {
- return { message: e.message, stack: e.stack };
- }
-
- // Crc32 code copied from file zip.js
- function Crc32() {
- this.crc = -1;
- }
- Crc32.prototype.append = function append(data) {
- var crc = this.crc | 0, table = this.table;
- for (var offset = 0, len = data.length | 0; offset < len; offset++)
- crc = (crc >>> 8) ^ table[(crc ^ data[offset]) & 0xFF];
- this.crc = crc;
- };
- Crc32.prototype.get = function get() {
- return ~this.crc;
- };
- Crc32.prototype.table = (function() {
- var i, j, t, table = []; // Uint32Array is actually slower than []
- for (i = 0; i < 256; i++) {
- t = i;
- for (j = 0; j < 8; j++)
- if (t & 1)
- t = (t >>> 1) ^ 0xEDB88320;
- else
- t = t >>> 1;
- table[i] = t;
- }
- return table;
- })();
-
- // "no-op" codec
- function NOOP() {}
- global.NOOP = NOOP;
- NOOP.prototype.append = function append(bytes, onprogress) {
- return bytes;
- };
- NOOP.prototype.flush = function flush() {};
-})(this);
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/log.js
^
|
@@ -1,26 +0,0 @@
-var Logger = function(){
- var me = {};
-
- var baseUrl = "https://www.stef.be/bassoontracker/api/log/";
-
- me.info = function(message){log("info",message)};
- me.warn = function(message){
- console.warn(message);
- log("warn",message)
- };
- me.error = function(message){
- console.error(message);
- log("error",message)
- };
-
- var log = function(scope,message){
- var stats = UI.stats();
- var version = typeof versionNumber == "undefined" ? "dev" : versionNumber;
- message = createSlug(message);
- FetchService.get(baseUrl + scope + "/" + message + "/" + stats.averageFps + "/" + stats.skipRenderSteps + "/" + version + "/" + canvas.width + "x" + canvas.height + "/" + stats.averageRenderFps + "/" + devicePixelRatio,function(result){
- //console.log(result);
- });
- };
-
- return me;
-}();
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/main.js
^
|
@@ -1,44 +0,0 @@
-var debug = false;
-
-var Main = function(){
- var me = {};
-
- me.init = function(){
- console.log("initialising");
- Host.init();
- Tracker.init();
- Audio.init();
-
- UI.startMeasure();
- UI.init(function(){
- window.focus();
- me.isBrowserSupported = Audio.context && window.requestAnimationFrame;
- if (!me.isBrowserSupported){
- console.error("Browser not supported");
- var dialog = UI.modalDialog();
- dialog.setProperties({
- width: UI.mainPanel.width,
- height: UI.mainPanel.height,
- top: 0,
- left: 0,
- ok:true
- });
- dialog.onDown = function(){window.location.href="https://www.google.com/chrome/"};
- dialog.setText("Sorry//Your browser does not support WebAudio//Supported browsers are/Chrome,Firefox,Safari and Edge");
-
- UI.setModalElement(dialog);
- }else{
- Settings.readSettings();
- if (debug) UI.measure("Read & Apply Settings");
- App.init();
- Host.signalReady();
- Editor.loadInitialFile();
- if (debug) UI.endMeasure();
- }
- });
- };
-
- return me;
-}();
-
-if (!Host.customConfig && document.addEventListener) document.addEventListener('DOMContentLoaded', Main.init);
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/models/instrument.js
^
|
@@ -1,328 +0,0 @@
-var Instrument = function(){
- var me = {};
-
- me.type = "sample";
- me.name = "";
- me.instrumentIndex = 0;
- me.sampleIndex = -1;
- me.fadeout = 128;
- me.data = [];
- me.samples = [Sample()];
- me.sample = me.samples[0];
-
- me.volumeEnvelope = {raw: [], enabled: false, points: [[0,48],[10,64],[20,40],[30,18],[40,28],[50,18]], count:6};
- me.panningEnvelope = {raw: [], enabled: false, points: [[0,32],[20,40],[40,24],[60,32],[80,32]], count:5};
- me.vibrato = {};
-
- me.sampleNumberForNotes = [];
-
- me.play = function(noteIndex,notePeriod,volume,track,trackEffects,time){
- if (Tracker.inFTMode()) {
- notePeriod = me.getPeriodForNote(noteIndex);
- }
- return Audio.playSample(me.instrumentIndex,notePeriod,volume,track,trackEffects,time,noteIndex);
- };
-
- me.noteOn = function(time){
- var volumeEnvelope;
- var panningEnvelope;
- var scheduled = {};
-
- if (me.volumeEnvelope.enabled){
- volumeEnvelope = Audio.context.createGain();
- var envelope = me.volumeEnvelope;
- var scheduledTime = processEnvelop(envelope,volumeEnvelope,time);
- if (scheduledTime) scheduled.volume = (time + scheduledTime);
- }
-
- if (me.panningEnvelope.enabled && Audio.usePanning){
- panningEnvelope = Audio.context.createStereoPanner();
- envelope = me.panningEnvelope;
- scheduledTime = processEnvelop(envelope,panningEnvelope,time);
- if (scheduledTime) scheduled.panning = (time + scheduledTime);
- }
-
- if (me.vibrato.rate && me.vibrato.depth){
- scheduled.ticks = 0;
- scheduled.vibrato = time;
- scheduled.vibratoFunction = me.getAutoVibratoFunction();
- }
-
- return {volume: volumeEnvelope, panning: panningEnvelope, scheduled: scheduled};
- };
-
- me.noteOff = function(time,noteInfo){
- if (!noteInfo || !noteInfo.volume) return;
-
- function cancelScheduledValues(){
- // Note: we should cancel Volume and Panning scheduling independently ...
- noteInfo.volume.gain.cancelScheduledValues(time);
- noteInfo.volumeFadeOut.gain.cancelScheduledValues(time);
-
- if (noteInfo.volumeEnvelope) noteInfo.volumeEnvelope.gain.cancelScheduledValues(time);
- if (noteInfo.panningEnvelope) noteInfo.panningEnvelope.pan.cancelScheduledValues(time);
- noteInfo.scheduled = undefined;
- }
-
-
- if (Tracker.inFTMode()){
- var tickTime = Tracker.getProperties().tickTime;
-
- if (me.volumeEnvelope.enabled){
-
- if (me.volumeEnvelope.sustain && noteInfo.volumeEnvelope){
- cancelScheduledValues();
- var timeOffset = 0;
- var startPoint = me.volumeEnvelope.points[me.volumeEnvelope.sustainPoint];
- if (startPoint) timeOffset = startPoint[0]*tickTime;
- for (var p = me.volumeEnvelope.sustainPoint; p< me.volumeEnvelope.count;p++){
- var point = me.volumeEnvelope.points[p];
- if (point) noteInfo.volumeEnvelope.gain.linearRampToValueAtTime(point[1]/64,time + (point[0]*tickTime) - timeOffset);
- }
- }
-
- if (me.fadeout){
- var fadeOutTime = (65536/me.fadeout) * tickTime / 2;
- noteInfo.volumeFadeOut.gain.linearRampToValueAtTime(0,time + fadeOutTime);
- }
-
- }else{
- cancelScheduledValues();
- noteInfo.volumeFadeOut.gain.linearRampToValueAtTime(0,time + 0.1)
- }
-
- if (me.panningEnvelope.enabled && Audio.usePanning && noteInfo.panningEnvelope){
- timeOffset = 0;
- startPoint = me.panningEnvelope.points[me.panningEnvelope.sustainPoint];
- if (startPoint) timeOffset = startPoint[0]*tickTime;
- for (p = me.panningEnvelope.sustainPoint; p< me.panningEnvelope.count;p++){
- point = me.panningEnvelope.points[p];
- if (point) noteInfo.panningEnvelope.pan.linearRampToValueAtTime((point[1]-32)/32,time + (point[0]*tickTime) - timeOffset);
- }
- }
-
- return 100;
-
- }else{
- cancelScheduledValues();
- if (noteInfo.isKey && noteInfo.volume){
- noteInfo.volume.gain.linearRampToValueAtTime(0,time + 0.5)
- }else{
- return 0;
- }
- }
-
- };
-
- function processEnvelop(envelope,audioNode,time){
- var tickTime = Tracker.getProperties().tickTime;
- var maxPoint = envelope.sustain ? envelope.sustainPoint+1 : envelope.count;
-
- // some XM files seem to have loop points outside the range.
- // e.g. springmellow_p_ii.xm - instrument 15;
- envelope.loopStartPoint = Math.min(envelope.loopStartPoint,envelope.count-1);
- envelope.loopEndPoint = Math.min(envelope.loopEndPoint,envelope.count-1);
-
- var doLoop = envelope.loop && (envelope.loopStartPoint<envelope.loopEndPoint);
- if (envelope.sustain && envelope.sustainPoint<=envelope.loopStartPoint) doLoop=false;
-
-
- if (doLoop) maxPoint = envelope.loopEndPoint+1;
- var scheduledTime = 0;
- var lastX = 0;
-
- if (audioNode.gain){
- // volume
- var audioParam = audioNode.gain;
- var center = 0;
- var max = 64;
- }else{
- // panning node
- audioParam = audioNode.pan;
- center = 32;
- max = 32;
- }
-
- audioParam.setValueAtTime((envelope.points[0][1]-center)/max,time);
-
- for (var p = 1; p<maxPoint;p++){
- var point = envelope.points[p];
- lastX = point[0];
- scheduledTime = lastX*tickTime;
- audioParam.linearRampToValueAtTime((point[1]-center)/max,time + scheduledTime);
- }
-
- if (doLoop){
- return me.scheduleEnvelopeLoop(audioNode,time,2,scheduledTime);
- }
-
- return false;
- }
-
- me.scheduleEnvelopeLoop = function(audioNode,startTime,seconds,scheduledTime){
-
- // note - this is not 100% accurate when the ticktime would change during the scheduled ahead time
-
- scheduledTime = scheduledTime || 0;
- var tickTime = Tracker.getProperties().tickTime;
-
- if (audioNode.gain){
- // volume
- var envelope = me.volumeEnvelope;
- var audioParam = audioNode.gain;
- var center = 0;
- var max = 64;
- }else{
- // panning node
- envelope = me.panningEnvelope;
- audioParam = audioNode.pan;
- center = 32;
- max = 32;
- }
- var point = envelope.points[envelope.loopStartPoint];
- var loopStartX = point[0];
-
- var doLoop = envelope.loop && (envelope.loopStartPoint<envelope.loopEndPoint);
- if (doLoop){
- while (scheduledTime < seconds){
- var startScheduledTime = scheduledTime;
- for (var p = envelope.loopStartPoint; p<=envelope.loopEndPoint;p++){
- point = envelope.points[p];
- scheduledTime = startScheduledTime + ((point[0]-loopStartX)*tickTime);
- audioParam.linearRampToValueAtTime((point[1]-center)/max,startTime + scheduledTime);
- }
- }
- }
-
- return scheduledTime;
-
- };
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/models/note.js
^
|
@@ -1,60 +0,0 @@
-var Note = function(){
- var me = {};
-
- me.period = 0;
- me.index = 0;
- me.effect = 0;
- me.instrument = 0;
- me.param = 0;
- me.volumeEffect = 0;
-
-
- me.setPeriod = function(period){
- me.period = period;
- me.index = FTPeriods[period] || 0;
- };
-
- me.setIndex = function(index){
- me.index = index;
- var ftNote = FTNotes[index];
- if (ftNote){
- me.period = ftNote.modPeriod || ftNote.period;
- if (me.period === 1) me.period = 0;
- }else{
- console.warn("No note for index " + index);
- me.period = 0;
- }
- };
-
- me.clear = function(){
- me.instrument = 0;
- me.period = 0;
- me.effect = 0;
- me.param = 0;
- me.index = 0;
- me.volumeEffect = 0;
- };
-
- me.duplicate = function(){
- return {
- instrument: me.instrument,
- period : me.period,
- effect: me.effect,
- param: me.param,
- volumeEffect: me.volumeEffect,
- note: me.index
- }
- };
-
- me.populate = function(data){
- me.instrument = data.instrument || 0;
- me.period = data.period|| 0;
- me.effect = data.effect || 0;
- me.param = data.param || 0;
- me.volumeEffect = data.volumeEffect || 0;
- me.index = data.note || data.index || 0;
- };
-
-
- return me;
-};
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/models/sample.js
^
|
@@ -1,34 +0,0 @@
-var Sample = function(){
- var me = {};
-
- me.data = [];
- me.length = 0;
- me.name = "";
- me.bits = 8;
-
- me.volume = 64;
- me.finetune = 0;
- me.finetuneX = 0;
- me.panning = 0;
- me.relativeNote = 0;
-
- me.loop = {
- enabled: false,
- start: 0,
- length: 0,
- type: 0
- };
-
- me.check = function(){
- var min = 0;
- var max = 0;
- for (var i = 0, len = me.data.length; i<len; i++){
- min = Math.min(min,me.data[i]);
- max = Math.max(max,me.data[i]);
- }
- return {min: min, max: max};
- };
-
-
- return me;
-};
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/preloader.js
^
|
@@ -1,68 +0,0 @@
-var PreLoader = function(){
- var me = {};
-
- me.load = function(urls,type,next){
- me.type = type || PRELOADTYPE.image;
- me.loadCount = 0;
- me.max = urls.length;
- me.next = next;
-
- for (var i = 0, len = urls.length; i < len; i++)
- loadAsset(urls[i]);
- };
-
- var loadAsset = function(url){
- if (me.type == PRELOADTYPE.image){
- var img = new Image();
- img.onload = function(){
- cachedAssets.images[url] = this;
- if (++me.loadCount == me.max)
- if (me.next) me.next();
- };
- img.onerror = function(){
- alert('BufferLoader: XHR error');
- };
- img.src = url;
- }
-
- if (me.type == PRELOADTYPE.audio){
-
-
- var req = new XMLHttpRequest();
- req.responseType = "arraybuffer";
- req.open("GET", url, true);
-
- req.onload = function() {
- // Asynchronously decode the audio file data in request.response
- Audio.context.decodeAudioData(
- req.response,
- function(buffer) {
- if (!buffer) {
- alert('error decoding file data: ' + url);
- return;
- }
- cachedAssets.audio[url] = buffer;
- if (++me.loadCount == me.max)
- if (me.next) me.next();
- },
- function(error) {
- console.error('decodeAudioData error', error);
- }
- );
- };
-
- req.onerror = function() {
- alert('BufferLoader: XHR error');
- };
-
- req.send();
- }
-
-
-
- //request.responseType = "arraybuffer";
- };
-
-
- return me;
-};
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/provider/bassoon.js
^
|
@@ -1,98 +0,0 @@
-var BassoonProvider = function(){
- var me = {};
-
- var baseUrl = "https://www.stef.be/bassoontracker/api/";
- var processing = false;
-
- me.putFile = function(){
- var url = baseUrl + "storage/put/";
-
- Editor.buildBinary(Tracker.inFTMode() ? MODULETYPE.xm : MODULETYPE.mod,function(file){
- //var b = new Blob([file.buffer], {type: "application/octet-stream"});
-
- var fileName = Tracker.getFileName();
-
- FetchService.sendBinary(url,file.buffer,function(result){
- console.error(result);
- })
- });
- };
-
- me.renderFile = function(fileName,toMp3){
- if (processing){
- console.error("already processing ...");
- return;
- }
-
- processing = true;
- var url = baseUrl + "storage/render/" + (Tracker.inFTMode() ? "xm" : "mod");
- var fileName = fileName || Tracker.getFileName();
- UI.setStatus("saving file ...",true);
- Logger.info("Rendering " + fileName);
- Editor.buildBinary(Tracker.inFTMode() ? MODULETYPE.xm : MODULETYPE.mod,function(file){
-
- //var b = new Blob([file.buffer], {type: "application/octet-stream"});
-
- FetchService.sendBinary(url,file.buffer,function(result){
- if (result === "error"){
- console.error("error saving file");
- UI.setStatus("error saving file");
- processing = false;
- }else{
- var tempFile = result;
- console.log(tempFile + ": converting file ...");
- UI.setStatus("rendering file ...",true);
- url = baseUrl + "storage/convert/" + tempFile;
- FetchService.sendBinary(url,file.buffer,function(result){
- if (result === "error"){
- console.error("error converting file");
- UI.setStatus("Error rendering file ...");
- processing = false;
- }else{
- tempFile = result;
- if (toMp3){
- console.log(tempFile + ": converting to mp3");
- UI.setStatus("Converting file to mp3...",true);
- url = baseUrl + "storage/wavtomp3/" + tempFile;
- FetchService.sendBinary(url,file.buffer,function(result){
- console.error(result);
- if (result === "error"){
- console.error("error converting file to mp3");
- UI.setStatus("Error converting file to mp3...");
- processing = false;
- }else{
- downloadFile(result,fileName,"mp3");
- }
- });
- }else{
- downloadFile(tempFile,fileName,"wav");
- }
- }
- });
- }
- })
- });
- };
-
- me.proxyUrl = function(url){
- return baseUrl + "proxy?" + encodeURIComponent(url);
- };
-
- function downloadFile(url,filename,extention){
- if (extention){
- var hasExtention = false;
- var p = filename.lastIndexOf(".");
- if (p>=0) hasExtention = filename.substr(p+1).toLowerCase() === extention.toLowerCase();
- if (!hasExtention) filename += "." + extention;
- }
- console.log("Downloading " + url + " as " + filename);
- UI.setStatus("Downloading ...");
- processing = false;
- setTimeout(function(){
- UI.setStatus("");
- },3000);
- document.location.href = baseUrl + "storage/" + url + "?dl=1&name=" + filename;
- }
-
- return me;
-}();
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/provider/dropbox.js
^
|
@@ -1,127 +0,0 @@
-var Dropbox = function(){
- var me = {};
-
- var authRedirect = "https://www.stef.be/bassoontracker/auth/dropbox.html";
- me.isConnected = false;
-
- me.checkConnected = function(next){
-
- if (me.isConnected){
- if (next) next(true);
- }
-
- if (dropboxService.getAccessToken()){
- dropboxService('users/get_current_account',undefined,{onComplete:function(result){
- if (result && result.account_id){
- me.isConnected = true;
- if (next) next(true);
- }
- },onError:function(){
- if (next) next(false);
- }});
- }else{
- if (next) next(false);
- }
- };
-
- me.showConnectDialog = function(){
- var dialog = UI.modalDialog();
- dialog.setProperties({
- width: UI.mainPanel.width,
- height: UI.mainPanel.height,
- top: 0,
- left: 0,
- ok: true,
- cancel: true
- });
-
- dialog.onClick = function(touchData){
- var elm = dialog.getElementAtPoint(touchData.x,touchData.y);
- if (elm && elm.name){
- UI.setStatus("");
- if (elm.name === "okbutton"){
- Dropbox.authenticate();
- }else{
- dialog.close();
- EventBus.trigger(EVENT.dropboxConnectCancel);
- }
- }
- };
-
- dialog.setText("DROPBOX ://BassoonTracker is not yet connected to DropBox//Do you want to do that now?//(BassoonTracker will only have access/to its own BassoonTracker folder)");
-
- UI.setModalElement(dialog);
- };
-
- me.authenticate = function(){
- dropboxService.clearAccessToken();
- dropboxService.authenticate({client_id: 'ukk9z4f0nd1xa13',redirect_uri : authRedirect} , {
- onComplete:function(a){
- console.log("ok!");
- console.log(a);
- },
- onError:function(a){
- console.error("not OK!");
- console.log(a);
- }
- });
- };
-
- me.list = function(path,next){
- dropboxService('files/list_folder', {path: path}, function(data){
-
- var result = [];
-
- data.entries.forEach(function(item){
-
- if (item[".tag"] &&item[".tag"] === "folder"){
- result.push({title:item.name,url:item.path_lower,children:[]});
- }else{
- var size = Math.floor(item.size/1000) + "kb";
- result.push({title:item.name + ' (' + size + ')' || "---",url:item.id,path:item.path_display});
- }
- });
-
- next(result);
-
- });
- };
-
- me.get = function(url,next){
- me.list(url,next);
- };
-
- me.getFile = function(file,next){
- dropboxService('files/download', {path: file.url}, function(result,a,b){
- console.log(result);
- console.log(a); // content
- console.log(b);
- next(a);
- });
- };
-
- me.putFile = function(path,content,next){
-
- var options = {path: path};
- if (SETTINGS.dropboxMode === "overwrite"){
- options.mode = "overwrite";
- }else{
- options.mode = "add";
- options.autorename = true;
- }
-
- dropboxService('files/upload', options, content,{
- onComplete : function(result,a,b){
- console.log(result);
- console.log(a);
- console.log(b);
- if (next) next(result);
- },
- onError : function(result,a,b){
- if (next) next(false);
- }
- });
- };
-
- return me;
-}();
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/provider/modarchive.js
^
|
@@ -1,175 +0,0 @@
-var ModArchive = function(){
- var me = {};
-
- var apiUrl = "http://localhost:3000/";
- apiUrl = "https://www.stef.be/bassoontracker/api/ma/";
- var apiUrlV1 = "https://www.stef.be/bassoontracker/api/";
- var genres = [];
- var artists = [];
-
- me.get = function(url,next){
- var params = url.split("/");
-
- url = params[0];
- var param = params[1] || "";
- var page = params[2] || "";
-
- switch (url){
- case "genres":
- loadGenres(next);
- break;
- case "artists":
- loadArtists(next);
- break;
- case "genre":
- loadFromApi("genre/" + param,function(data){
- next(parseModList(data));
- });
- break;
- case "toprating":
- page = param || 1;
- loadFromApiV1("toprating/" + page,function(data){
- next(parseModListV1(data,params));
- });
- break;
- case "topreview":
- page = param || 1;
- loadFromApiV1("topreview/" + page,function(data){
- next(parseModListV1(data,params));
- });
- break;
- case "artist":
- var apiUrl = "artist/" + param;
- if (page) apiUrl += "/" + page;
- loadFromApi(apiUrl,function(data){
- next(parseModList(data,params));
- });
- break;
- default:
- next([]);
- }
- };
-
- function loadGenres(next){
- if (genres.length) {
- if (next) next(genres);
- }else{
- loadFromApi("genres",function(result){
- if (result){
- var children = {};
- result.forEach(function(genre){
- console.log(genre);
- if (genre.parent){
- var item = {title: genre.name, count: genre.count, info: genre.count + " >", children : [],url: "genre/" + genre.id};
- if (!children[genre.parent])children[genre.parent]=[];
- children[genre.parent].push(item);
- }
- });
-
- result.forEach(function(genre){
- if (!genre.parent){
- var item = {title: genre.name, children : children[genre.id] || []};
- var total = 0;
- item.children.forEach(function(child){
- total+=child.count;
- });
- item.info = total + ' >';
- genres.push(item);
- }
- });
- }
-
-
- if (next) next(genres);
- })
- }
- }
-
- function loadArtists(next){
- if (artists.length) {
- if (next) next(artists);
- }else{
- loadFromApi("artists",function(result){
- if (result){
- result.forEach(function(artist){
- var item = {title: artist.handle, children : [], info: artist.count + " >", url : "artist/" + artist.id};
- artists.push(item);
- });
- }
- if (next) next(artists);
- })
- }
- }
-
- function loadFromApi(url,next){
- console.log("load from api " + apiUrl + url);
- FetchService.json(apiUrl + url,function(data){
- next(data);
- })
- }
-
- function loadFromApiV1(url,next){
- console.log("load from api " + apiUrl + url);
- FetchService.json(apiUrlV1 + url,function(data){
- if (data && data.modarchive) data = data.modarchive;
- next(data);
- })
- }
-
- function parseModList(data){
- var result = [];
- if (data){
- data.forEach(function(mod){
- result.push({
- title:mod.title || "---",
- url:"https://api.modarchive.org/downloads.php?moduleid=" + mod.id,
- icon: mod.format,
- info: formatFileSize(mod.size)});
- });
- }
- return result;
- }
-
- function parseModListV1(data,base){
-
- var result = [];
- if (data){
-
- if (data.module){
- var mods = data.module;
- if (mods.forEach){
- mods.forEach(function(mod){
- result.push({title:mod.songtitle || "---",url:mod.url,icon:"mod"});
- });
- }else{
- // single result
- result.push({title:mods.songtitle || "---",url:mods.url,icon:"mod"});
- }
- }
-
- if (data.totalpages){
- var pageCount = parseInt(data.totalpages);
- if (pageCount>1){
- var profile = base[0] + "/";
- var currentPage = parseInt(base[1] || 1);
- if (isNaN(currentPage)) currentPage=1;
-
- if (profile == "artist/" || profile == "genre/"){
- profile += base[1] + "/";
- currentPage = parseInt(base[2] || 1);
- if (isNaN(currentPage)) currentPage=1;
- }
- if (pageCount>currentPage){
- profile += (currentPage+1);
- result.push({title:"... load more ...",children:[],url:profile});
- }
-
- }
- }
-
- }
- return result;
- }
-
- return me;
-}();
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/provider/modulespl.js
^
|
@@ -1,117 +0,0 @@
-var ModulesPl = function(){
- var me = {};
-
- var apiUrl = "https://www.stef.be/bassoontracker/api/mpl/";
- var proxyUrl = "https://www.stef.be/bassoontracker/api/modules.pl/";
- var genres = [];
- var artists = [];
-
- me.get = function(url,next){
- var params = url.split("/");
-
- url = params[0];
- var param = params[1] || "";
- var page = params[2] || "";
-
- switch (url){
- case "genres":
- loadGenres(next);
- break;
- case "genre":
- loadGenre(param,page,next);
- break;
- case "toprating":
- page = param || 1;
- loadFromApi("toprating/" + page,function(data){
- next(parseModList(data,"rate"));
- });
- break;
- case "topscore":
- page = param || 1;
- loadFromApi("topscore/" + page,function(data){
- next(parseModList(data,"score"));
- });
- break;
- case "artists":
- loadArtists(next);
- break;
- case "artist":
- var apiUrl = "artist/" + param;
- if (page) apiUrl += "/" + page;
- loadFromApi(apiUrl,function(data){
- next(parseModList(data));
- });
- break;
- default:
- next([]);
- }
- };
-
- function loadArtists(next){
- if (artists.length) {
- if (next) next(artists);
- }else{
- loadFromApi("artists",function(result){
- if (result){
- result.forEach(function(artist){
- console.log(artist);
- var item = {title: artist.handle, info: artist.count + " >", url : "artist/" + artist.id ,children : []};
- artists.push(item);
- });
- }
- if (next) next(artists);
- })
- }
- }
-
- function loadGenres(next){
- if (genres.length) {
- if (next) next(genres);
- }else{
- loadFromApi("genres",function(result){
- if (result){
- result.forEach(function(genre){
- var item = {title: genre.name, url : "genre/" + genre.name ,children : [],info:genre.count + " >"};
- genres.push(item);
- });
- }
- if (next) next(genres);
- })
- }
- }
-
- function loadGenre(id,page,next){
- var url = "genre/" + id;
- if (page) {
- page = parseInt(page);
- url += "/" + page;
- }
- loadFromApi(url,function(data){
- next(parseModList(data));
- })
- }
-
- function loadFromApi(url,next){
- console.log("load from api " + apiUrl + url);
- FetchService.json(apiUrl + url,function(data){
- next(data);
- })
- }
-
- function parseModList(data,extraInfo){
- var result = [];
- if (data){
- data.forEach(function(mod){
- var info = formatFileSize(mod.size);
- var title = mod.title || "---";
- if (extraInfo){
- title = mod[extraInfo] + ": " + title;
- }
- result.push({title:title,url:proxyUrl + mod.id,info:info,icon:mod.format});
- });
- }
- return result;
- }
-
- return me;
-}();
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/settings.js
^
|
@@ -1,72 +0,0 @@
-var Settings = (function(){
- var me = {};
-
- me.readSettings = function(){
- var settings = Storage.get("bassoonTrackerSettings");
- try {
- settings = JSON.parse(settings);
- } catch (e) {
- settings = undefined;
- }
- me.set(settings);
- };
-
- me.saveSettings = function(){
- var settings = {
- vubars: SETTINGS.vubars,
- keyboardTable: SETTINGS.keyboardTable,
- stereoSeparation: SETTINGS.stereoSeparation,
- dropboxMode: SETTINGS.dropboxMode,
- skipFrame: UI.getSkipFrame(),
- midi: SETTINGS.midi,
- highDPI: SETTINGS.highDPI,
- showKey: SETTINGS.showKey,
- showMidi: SETTINGS.showMidi
- };
- Storage.set("bassoonTrackerSettings",JSON.stringify(settings));
- };
-
- me.reset = function(){
- // reset default Settings;
- setDefaults();
- me.saveSettings();
- };
-
- me.set = function(settings){
- setDefaults();
-
- if (!settings) return;
- for (var key in settings){
- if (SETTINGS.hasOwnProperty(key) && settings.hasOwnProperty(key)){
- SETTINGS[key] = settings[key];
- if (key === "skipFrame"){
- var value = parseInt(SETTINGS[key],10);
- if (!isNaN(value)) UI.skipFrame(value);
- }
- }
- }
-
- if (SETTINGS.stereoSeparation){
- Audio.setStereoSeparation(SETTINGS.stereoSeparation);
- }
- if (SETTINGS.highDPI){
- UI.scaleToDevicePixelRatio(SETTINGS.highDPI);
- }
- }
-
- function setDefaults(){
- SETTINGS.keyboardTable = "qwerty";
- SETTINGS.vubars = "colour";
- SETTINGS.stereoSeparation = STEREOSEPARATION.BALANCED;
- SETTINGS.dropboxMode = "rename";
- SETTINGS.skipFrame = 1;
- SETTINGS.canvasId = "canvas";
- SETTINGS.midi = "disabled";
- UI.skipFrame(SETTINGS.skipFrame);
- SETTINGS.highDPI = false;
- SETTINGS.showKey = false;
- SETTINGS.showMidi = false;
- }
-
- return me;
-})();
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/storage.js
^
|
@@ -1,13 +0,0 @@
-var Storage = (function(){
- var me = {};
-
- me.get = function(key){
- return localStorage.getItem(key)
- };
-
- me.set = function(key,value){
- return localStorage.setItem(key,value);
- };
-
- return me;
-})();
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/tracker.js
^
|
@@ -1,2201 +0,0 @@
-var periodNoteTable = {};
-var periodFinetuneTable = {};
-var nameNoteTable = {};
-var noteNames = [];
-var FTNotes = [];
-var FTPeriods = [];
-
-var Tracker = (function(){
-
- // TODO: strip UI stuff
- var me = {};
- me.isMaster = true;
-
- var clock;
-
- var isRecording = false;
- var isPlaying = false;
-
- var song;
- var instruments = [];
-
- var currentInstrumentIndex = 1;
- var prevInstrumentIndex;
- var currentPattern = 0;
- var prevPattern;
- var currentPatternPos = 0;
- var prevPatternPos;
- var currentPlayType = PLAYTYPE.song;
- var currentPatternData;
-
- var currentSongPosition = 0;
- var prevSongPosition = 0;
-
- var vibratoFunction;
- var tremoloFunction;
-
- var bpm = 125; // bmp
- var ticksPerStep = 6;
- var tickTime = 2.5/bpm;
- var tickCounter = 0;
- var mainTimer;
-
- var trackCount = 4;
- var patternLength = 64;
- var trackerMode = TRACKERMODE.PROTRACKER;
-
- var swing = 0; // swing in milliseconds. NOTE: this is not part of any original Tracker format, just nice to have on beat sequences
-
- var trackNotes = [];
- var trackEffectCache = [];
- var trackerStates = [];
- var patternLoopStart = [];
- var patternLoopCount = [];
-
- //console.log("ticktime: " + tickTime);
-
- me.init = function(config){
-
- for (var i=0;i<trackCount;i++){
- trackNotes.push({});
- trackEffectCache.push({});
- }
-
- for (var i = -8; i<8;i++){
- periodFinetuneTable[i] = {};
- }
-
- for (var key in NOTEPERIOD){
- if (NOTEPERIOD.hasOwnProperty(key)){
- var note = NOTEPERIOD[key];
- periodNoteTable[note.period] = note;
- nameNoteTable[note.name] = note;
- noteNames.push(note.name);
-
- // build fineTune table
- if (note.tune){
- for (i = -8; i<8;i++){
- var table = periodFinetuneTable[i];
- var index = i+8;
- table[note.tune[index]] = note.period;
- }
- }
- }
- }
-
- var ftCounter = 0;
- for (key in FTNOTEPERIOD){
- if (FTNOTEPERIOD.hasOwnProperty(key)){
- var ftNote = FTNOTEPERIOD[key];
- if (!ftNote.period) ftNote.period = 1;
- FTNotes.push(ftNote);
- FTPeriods[ftNote.period] = ftCounter;
- if (ftNote.modPeriod) FTPeriods[ftNote.modPeriod] = ftCounter;
- ftCounter++;
- }
- }
-
- if (config) {
- Host.init();
- Audio.init(config.audioContext,config.audioDestination);
- if (config.plugin){
- me.isPlugin = true;
- UI.initPlugin(config);
- if (typeof config.isMaster === "boolean") me.isMaster = config.isMaster;
- if (config.handler){
- EventBus.on(EVENT.songBPMChange,function(bpm){
- config.handler(EVENT.songBPMChange,bpm);
- });
- EventBus.on(EVENT.songBPMChangeIgnored,function(bpm){
- config.handler(EVENT.songBPMChangeIgnored,bpm);
- });
-
-
-
- EventBus.on(EVENT.songSpeedChange,function(speed){
- config.handler(EVENT.songSpeedChange,speed);
- });
- EventBus.on(EVENT.songSpeedChangeIgnored,function(speed){
- config.handler(EVENT.songSpeedChangeIgnored,speed);
- });
-
-
- EventBus.on(EVENT.patternEnd,function(time){
- config.handler(EVENT.patternEnd,time);
- });
- }
- }
- }
-
- };
-
- me.setMaster = function(value){
- me.isMaster = value;
- }
-
- me.isMaster = function(){
- return !!me.isMaster;
- }
-
- me.setCurrentInstrumentIndex = function(index){
- if (song.instruments[index]){
- currentInstrumentIndex = index;
- if (prevInstrumentIndex!=currentInstrumentIndex) EventBus.trigger(EVENT.instrumentChange,currentInstrumentIndex);
- prevInstrumentIndex = currentInstrumentIndex;
- }else{
- if (index<=me.getMaxInstruments()){
- for (var i = song.instruments.length, max = index;i<=max;i++){
- me.setInstrument(i,Instrument());
- }
-
- var instrumentContainer = [];
- for (i = 1;i<=max;i++){
- var instrument = song.instruments[i] || {name:""};
- instrumentContainer.push({label: i + " " + instrument.name, data: i});
- EventBus.trigger(EVENT.instrumentListChange,instrumentContainer);
- }
-
- currentInstrumentIndex = index;
- if (prevInstrumentIndex!=currentInstrumentIndex) EventBus.trigger(EVENT.instrumentChange,currentInstrumentIndex);
- prevInstrumentIndex = currentInstrumentIndex;
- }
- }
- };
-
- me.getCurrentInstrumentIndex = function(){
- return currentInstrumentIndex;
- };
-
- me.getCurrentInstrument = function(){
- return instruments[currentInstrumentIndex];
- };
-
- me.getMaxInstruments = function(){
- return me.inFTMode() ? 128 : 31;
- };
-
- me.setCurrentPattern = function(index){
- currentPattern = index;
- currentPatternData = song.patterns[currentPattern];
-
- if (!currentPatternData){
- // insert empty pattern;
- currentPatternData = getEmptyPattern();
- song.patterns[currentPattern] = currentPatternData;
- }
- patternLength = currentPatternData.length;
- if (prevPattern!=currentPattern) EventBus.trigger(EVENT.patternChange,currentPattern);
- prevPattern = currentPattern;
- };
- me.getCurrentPattern = function(){
- return currentPattern;
- };
- me.getCurrentPatternData = function(){
- return currentPatternData;
- };
- me.updatePatternTable = function(index,value){
- song.patternTable[index] = value;
- EventBus.trigger(EVENT.patternTableChange,value);
- if (index == currentSongPosition) {
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/app/components/buttonGroup.js
^
|
@@ -1,72 +0,0 @@
-UI.buttonGroup = function(title,buttonsInfo){
-
- var me = UI.panel();
- me.hide();
-
- var titleBar = UI.scale9Panel(0,0,20,20,UI.Assets.panelDarkGreyScale9);
- titleBar.ignoreEvents = true;
- me.addChild(titleBar);
-
- var titleLabel = UI.label({
- label: title,
- font: fontSmall,
- width: 60,
- top: 1
- });
- me.addChild(titleLabel);
-
- var buttons = [];
-
- buttonsInfo.forEach(function(buttonInfo){
- if (buttonInfo.type === "number"){
- var button = UI.numberDisplay({
- autoPadding: true
- });
- button.setValue(buttonInfo.value);
- }else{
- button = UI.Assets.generate("buttonLight");
- button.setLabel(buttonInfo.label);
- button.onClick = buttonInfo.onClick;
- }
- button.widthParam = buttonInfo.width || 100;
- me.addChild(button);
- buttons.push(button);
-
-
- if (buttonInfo.onSamplePropertyChange){
- EventBus.on(EVENT.samplePropertyChange,function(newProps){
- buttonInfo.onSamplePropertyChange(button,newProps);
- });
- }
- });
-
- me.onResize = function(){
- titleBar.setSize(me.width,18);
-
- var buttonTop = 20;
- var buttonHeight = (me.height-buttonTop-2) / 4;
- var buttonWidth = me.width;
- var left = 0;
-
- buttons.forEach(function(button,index){
- button.setProperties({
- width: Math.floor(buttonWidth * button.widthParam/100),
- height: buttonHeight,
- left: Math.floor(left * buttonWidth/100),
- top: buttonTop
- });
-
- left += button.widthParam;
- if (left>95){
- left=0;
- buttonTop+=buttonHeight;
- }
-
-
- });
- };
-
- return me;
-
-};
-
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/app/components/patternView.js
^
|
@@ -1,946 +0,0 @@
-UI.app_patternView = function(x,y,w,h){
-
- var me = UI.panel(x,y,w,h);
- var visibleLines = 0;
- var visibleTracks = 8;
- var lineHeight = 13;
- var centerLineTop = 0;
- var scrollBarItemOffset = 0;
- var startTrack = 0;
- var max;
- var font;
- var displayVolume;
- var hasVU;
- var noteCache = {};
- var noteParamCache = {};
- var lineNumberCache = {};
-
- var range = {};
- var rangeNormalized = {};
- var rangeCopy = [];
- var hasRange = false;
-
- var trackLeft;
- var margin;
-
- var scrollBar = UI.scale9Panel(w-28,18,16,h-3,{
- img: Y.getImage("bar"),
- left:2,
- top:2,
- right:3,
- bottom: 3
- });
-
- scrollBar.onDragStart=function(){
- if (Tracker.isPlaying()) return;
- scrollBar.startDragIndex = Tracker.getCurrentPatternPos();
- };
-
- scrollBar.onDrag=function(touchData){
- if (Tracker.isPlaying()) return;
- if (visibleLines && scrollBarItemOffset){
- var delta = touchData.deltaY;
- var pos = Math.floor(scrollBar.startDragIndex + delta/scrollBarItemOffset);
- pos = Math.min(pos,max-1);
- pos = Math.max(pos,0);
- Tracker.setCurrentPatternPos(pos);
- //setScrollBarPosition();
- }
- };
-
- me.addChild(scrollBar);
- setScrollBarPosition();
-
- var scrollBarHor = UI.scale9Panel(w-28,18,16,16,{
- img: Y.getImage("bar"),
- left:2,
- top:2,
- right:3,
- bottom: 3
- });
-
- scrollBarHor.onDragStart=function(){
- scrollBarHor.startDragIndex = startTrack;
- };
-
- scrollBarHor.onDrag=function(touchData){
- var maxSteps = Tracker.getTrackCount()-visibleTracks;
- var delta = touchData.deltaX;
- var rest = me.width - scrollBarHor.width;
- var step = Math.floor(delta / (rest/maxSteps));
- me.setHorizontalScroll(scrollBarHor.startDragIndex + step);
- me.onResize();
- };
- me.addChild(scrollBarHor);
-
-
- var fxPanels = [];
- for (var i = 0, len = Tracker.getTrackCount(); i<len;i++){
- var fxPanel = UI.fxPanel(i);
- fxPanels.push(fxPanel);
- me.addChild(fxPanel);
- }
-
- var trackVULevel = [];
- var trackVUHistory = [];
- var trackVULevelDecay = 5;
- var trackVULevelMax = 70;
-
-
- me.setHorizontalScroll = function(newStartTrack){
- var maxSteps = Tracker.getTrackCount()-visibleTracks;
- if (newStartTrack!=startTrack && newStartTrack>=0 && newStartTrack<=maxSteps){
- //var delta = newStartTrack-startTrack;
- //Editor.setCurrentTrack(Editor.getCurrentTrack() + delta);
- startTrack = newStartTrack;
- EventBus.trigger(EVENT.patternHorizontalScrollChange,startTrack);
- setScrollBarHorPosition()
- }
- };
-
- me.onResize = function(){
-
- trackLeft = Layout.firstTrackOffsetLeft;
- margin = Layout.trackMargin;
- visibleTracks = Layout.visibleTracks;
-
- var visibleHeight = me.height;
- var hasHorizontalScrollBar = visibleTracks<Tracker.getTrackCount();
- if (hasHorizontalScrollBar) visibleHeight -= 24;
-
-
- for (var i = 0; i<visibleTracks;i++){
-
- var trackIndex = startTrack + i;
- fxPanel = fxPanels[trackIndex];
- if (fxPanel && fxPanel.visible){
- var trackX = trackLeft + i*(Layout.trackWidth+margin);
-
- fxPanel.setPosition(trackX,0);
- fxPanel.setSize(Layout.trackWidth,visibleHeight);
- fxPanel.setLayout();
- fxPanel.show();
- }
- }
-
- };
-
- me.render = function(){
- if (!me.isVisible()) return;
-
- if (this.needsRendering){
- me.clearCanvas();
-
- var index = Tracker.getCurrentPattern() || 0;
- var patternPos = Tracker.getCurrentPatternPos() || 0;
- var song = Tracker.getSong();
- if (!song) return;
-
- font = Layout.trackFont;
- max = Tracker.getPatternLength();
-
- var hasHorizontalScrollBar = visibleTracks<Tracker.getTrackCount();
- var visibleHeight = me.height-30;
-
- displayVolume = Tracker.inFTMode();
- var textWidth = displayVolume ? 92 : 72;
- var cursorWidth1 = 9;
- var cursorWidth3 = 28;
-
- if (Layout.useCondensedTrackFont){
- textWidth = displayVolume ? 46 : 36;
- cursorWidth1 = 5;
- cursorWidth3 = 15;
- }
-
- // used to center text in Column;
-
- var patternNumberLeft = 10;
- var initialTrackTextOffset = Math.floor((Layout.trackWidth-textWidth)/2) + patternNumberLeft;
- var lineNumbersToTheLeft = false;
-
-
- if (trackLeft) {
- patternNumberLeft = 0;
- initialTrackTextOffset = 0;
- lineNumbersToTheLeft = true;
- }
-
- if (hasHorizontalScrollBar){
- visibleHeight -= 24;
- }
-
- visibleLines = Math.ceil(visibleHeight/lineHeight);
- if (visibleLines%2== 0) visibleLines--;
-
- var topLines = Math.floor(visibleLines/2);
-
- var visibleStart = patternPos - topLines;
- var visibleEnd = visibleStart + visibleLines;
-
- var centerLineHeight = lineHeight + 2;
- centerLineTop = Math.floor((visibleHeight + centerLineHeight)/2);
-
- var baseY = centerLineTop - (topLines*lineHeight) + 4;
-
- var panelHeight = centerLineTop;
- var panelTop2 = centerLineTop + centerLineHeight;
-
- var darkPanel = cachedAssets.darkPanel;
- if (!darkPanel && Y.getImage("panel_dark")){
- var p = UI.scale9Panel(0,0,Layout.trackWidth,panelHeight,{
- img: Y.getImage("panel_dark"),
- left:3,
- top:3,
- right:2,
- bottom: 2
- });
- cachedAssets.darkPanel = p.render(true);
- darkPanel = cachedAssets.darkPanel;
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/app/components/songControl.js
^
|
@@ -1,211 +0,0 @@
-UI.app_songControl = function(x,y,w,h,visible){
- var me = UI.element(x,y,w,h,visible);
- me.type = "songControl";
-
- var radioGroup = UI.radioGroup();
- radioGroup.setItems([
- {
- label:"song",
- active:true
- },
- {
- label:"pattern",
- labels : [
- {width: 10, label: "p"},
- {width: 20, label: "pat"}
- ],
- active:false
- }
- ]);
- radioGroup.onChange = function(selectedIndex){
- if (selectedIndex == 0){
- Tracker.setPlayType(PLAYTYPE.song);
- }else{
- Tracker.setPlayType(PLAYTYPE.pattern);
- }
- };
- me.addChild(radioGroup);
-
- var buttons = {};
- buttons.play = UI.Assets.generate("buttonDarkGreen");
- buttons.play.setProperties({
- image: Y.getImage("play_green"),
- hoverImage: Y.getImage("play_green_hover"),
- activeImage: Y.getImage("play_active_red"),
- activeBackground: UI.Assets.buttonDarkRedActiveScale9
- });
- buttons.play.onClick = function(){
- buttons.play.toggleActive();
- if (Tracker.isPlaying()){
- Tracker.stop();
- }else{
- if (Tracker.getPlayType() == PLAYTYPE.song){
- Tracker.playSong();
- }else{
- Tracker.playPattern();
- }
- }
- };
- buttons.play.setProperties({
- name:"buttonPlay"
- });
- me.addChild(buttons.play);
-
-
- buttons.record = UI.Assets.generate("buttonDarkRed");
- buttons.record.setProperties({
- image: Y.getImage("record"),
- hoverImage: Y.getImage("record_hover"),
- activeImage: Y.getImage("record_active")
- });
- buttons.record.onClick = function(){
- Tracker.toggleRecord();
- };
- buttons.record.setProperties({
- name:"buttonRecord"
- });
- me.addChild(buttons.record);
-
-
-
- buttons.song = UI.Assets.generate("buttonDark");
- buttons.song.onClick = function(){
- Tracker.playSong();
- };
- buttons.song.setProperties({
- label: "Song"
- });
- me.addChild(buttons.song);
-
- buttons.pattern = UI.Assets.generate("buttonDark");
- buttons.pattern.onClick = function(){
- Tracker.playPattern();
- };
- buttons.pattern.setProperties({
- label: "Pattern"
- });
- me.addChild(buttons.pattern);
-
-
-
-
- EventBus.on(EVENT.recordingChange,function(isRecording){
- buttons.record.setActive(isRecording);
- });
- EventBus.on(EVENT.playingChange,function(isPlaying){
- buttons.play.setActive(isPlaying);
- });
-
- EventBus.on(EVENT.playTypeChange,function(playType){
- if (playType == PLAYTYPE.song){
- radioGroup.setSelectedIndex(0,true);
- }else{
- radioGroup.setSelectedIndex(1,true);
- }
- });
-
- var properties = ["left","top","width","height","name","type","songPatternSelector"];
- me.setProperties = function(p){
-
- properties.forEach(function(key){
- if (typeof p[key] != "undefined"){
- switch(key){
- default:
- me[key] = p[key];
- }
- }
- });
-
- me.setSize(me.width,me.height);
- me.setPosition(me.left,me.top);
-
- var buttonWidth = Math.floor(me.width/3);
-
- radioGroup.setProperties({
- left: 0,
- width: buttonWidth,
- top:0,
- height: me.height,
- align: "right"
- });
- buttons.play.setProperties({
- left: buttonWidth,
- width: buttonWidth,
- top:0,
- height: me.height
- });
- buttons.record.setProperties({
- left: buttonWidth*2,
- width: buttonWidth,
- top:0,
- height: me.height
- });
-
-
- if (me.songPatternSelector == "big"){
- radioGroup.left = -500;
- buttonWidth = Math.floor(me.width/4) + 1;
-
- buttons.play.setProperties({
- left: 0,
- width: buttonWidth
- });
- buttons.record.setProperties({
- left: buttonWidth,
- width: buttonWidth
- });
-
- buttons.song.setProperties({
- left: buttonWidth*2,
- width: buttonWidth,
- top:0,
- height: me.height
- });
- buttons.pattern.setProperties({
- left: buttonWidth*3,
- width: buttonWidth,
- top:0,
- height: me.height
- });
-
-
-
- }
- };
-
- function triggerChangeEvent(){
- //EventBus.trigger(EVENT.trackStateChange,{track: me.track, solo: buttons.solo.isActive, mute: buttons.mute.isActive});
- }
-
- me.render = function(internal){
- internal = !!internal;
- if (me.needsRendering){
- me.clearCanvas();
-
- if (me.songPatternSelector == "small") radioGroup.render();
-
- buttons.play.render();
- buttons.record.render();
-
- if (me.songPatternSelector == "big"){
- buttons.song.render();
- buttons.pattern.render();
- }
-
-
- }
- me.needsRendering = false;
-
- if (internal){
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/app/components/songPatternList.js
^
|
@@ -1,140 +0,0 @@
-UI.app_songPatternList = function(height){
-
- var me = UI.panel();
-
- var songPanel = UI.scale9Panel(0,0,0,0,UI.Assets.panelInsetScale9);
- me.addChild(songPanel);
-
- var songlistbox = UI.listbox();
- songlistbox.setItems([
- {label: "01:00", data: 1}
- ]);
- songlistbox.onClick = function(){
-
- var item = songlistbox.getItemAtPosition(songlistbox.eventX,songlistbox.eventY);
- if (item){
- var index = item.index;
- if (item !== songlistbox.getSelectedIndex()){
- songlistbox.setSelectedIndex(index);
- }
- }
-
- };
- me.addChild(songlistbox);
-
- var spPlus = UI.Assets.generate("button20_20");
- spPlus.setLabel("↑");
- spPlus.onDown = function(){
- var index = songlistbox.getSelectedIndex();
- var pattern = Tracker.getSong().patternTable[index];
- pattern++;
- Tracker.updatePatternTable(index,pattern);
- UI.ticker.onEachTick4(function(){
- var index = songlistbox.getSelectedIndex();
- var pattern = Tracker.getSong().patternTable[index];
- pattern++;
- Tracker.updatePatternTable(index,pattern);
- },5);
-
- };
- spPlus.onTouchUp = function(){
- UI.ticker.onEachTick4();
- };
- me.addChild(spPlus);
-
-
- var spMin = UI.Assets.generate("button20_20");
- spMin.setLabel("↓");
- spMin.onDown = function(){
- var index = songlistbox.getSelectedIndex();
- var pattern = Tracker.getSong().patternTable[index];
- if (pattern>0) pattern--;
- Tracker.updatePatternTable(index,pattern);
- UI.ticker.onEachTick4(function(){
- var index = songlistbox.getSelectedIndex();
- var pattern = Tracker.getSong().patternTable[index];
- if (pattern>0) pattern--;
- Tracker.updatePatternTable(index,pattern);
- },5);
- };
- spMin.onTouchUp = function(){
- UI.ticker.onEachTick4();
- };
- me.addChild(spMin);
-
-
-
- var spInsert = UI.Assets.generate("button20_20");
- spInsert.setLabel("Ins");
- spInsert.onDown = function(){
- var index = songlistbox.getSelectedIndex();
- Editor.addToPatternTable(index);
-
- };
- spInsert.setProperties({width: 40, height: 20});
- me.addChild(spInsert);
-
-
- var spDelete = UI.Assets.generate("button20_20");
- spDelete.setLabel("Del");
- spDelete.onDown = function(){
- var index = songlistbox.getSelectedIndex();
- Editor.removeFromPatternTable(index);
-
- };
- spDelete.setProperties({width: 40, height: 20});
- me.addChild(spDelete);
-
-
-
- me.onResize = function(){
- songPanel.setSize(me.width,me.height);
-
- songlistbox.setProperties({
- left:0,
- top:0,
- width: me.width - 42,
- height: me.height,
- centerSelection: true,
- onChange: function(){
- Tracker.setCurrentSongPosition(songlistbox.getSelectedIndex(),true);
- }
- });
-
- spMin.setPosition(me.width - 22,Math.floor(me.height/2)-10);
- spPlus.setPosition(me.width - 42,spMin.top);
-
- spInsert.setPosition(spPlus.left,spPlus.top - 22);
- spDelete.setPosition(spPlus.left,spPlus.top + 22);
- };
-
- EventBus.on(EVENT.patternTableChange,function(value){
- me.setPatternTable(Tracker.getSong().patternTable);
- });
-
-
- me.setPatternTable = function(patternTable){
- var items = [];
- for (var i = 0, len = Tracker.getSong().length; i<len; i++){
- var value = patternTable[i];
- items.push({label: padd2(i+1) + ":" + padd2(value), data:value, index: i});
- }
- songlistbox.setItems(items);
- };
-
- function padd2(s){
- s = "" + s;
- if (s.length < 2){s = "0" + s}
- return s;
- }
-
- EventBus.on(EVENT.songLoaded,function(song){
- me.setPatternTable(song.patternTable);
- });
-
- EventBus.on(EVENT.songPositionChange,function(value){
- songlistbox.setSelectedIndex(value,true);
- });
-
- return me;
-};
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/app/components/trackControl.js
^
|
@@ -1,155 +0,0 @@
-UI.trackControl = function(x,y,w,h,visible){
- var me = UI.element(x,y,w,h,visible);
- me.type = "trackControl";
- me.track = 0;
-
- var font;
- var label = "";
-
- var buttons = {};
-
- buttons.solo = UI.Assets.generate("buttonDark");
- buttons.solo.setProperties({
- activeImage: Y.getImage("solo.png"),
- activeBackground:UI.Assets.buttonDarkGreenActiveScale9
- });
- buttons.solo.onClick = function(){
- var wasSolo = buttons.solo.isActive;
- buttons.solo.toggleActive();
- if (buttons.mute.isActive) buttons.mute.toggleActive();
- triggerChangeEvent(wasSolo);
- };
- buttons.solo.setProperties({
- name:"buttonSolo",
- label:"S"
- });
- me.addChild(buttons.solo);
-
- buttons.mute = UI.Assets.generate("buttonDark");
- buttons.mute.setProperties({
- activeImage: Y.getImage("mute"),
- activeBackground:UI.Assets.buttonDarkRedActiveScale9
- });
- buttons.mute.onClick = function(){
- buttons.mute.toggleActive();
- if (buttons.solo.isActive) buttons.solo.toggleActive();
- triggerChangeEvent();
- };
- buttons.mute.setProperties({
- name:"buttonMute",
- label:"M"
- });
- me.addChild(buttons.mute);
-
- buttons.fx = UI.Assets.generate("buttonDark");
- buttons.fx.onClick = function(){
- buttons.fx.toggleActive();
- EventBus.trigger(EVENT.fxPanelToggle,me.track);
- };
- buttons.fx.setProperties({
- name:"buttonFX",
- label:"FX"
- });
- me.addChild(buttons.fx);
-
- var properties = ["left","top","width","height","name","type","track","solo","mute","visible"];
- me.setProperties = function(p){
-
- properties.forEach(function(key){
- if (typeof p[key] != "undefined"){
- switch(key){
- case "solo":
- if (buttons.mute.isActive) buttons.mute.setActive(false);
- buttons.solo.setActive(p[key]);
- triggerChangeEvent();
- break;
- case "mute":
- if (buttons.solo.isActive) buttons.solo.setActive(false);
- buttons.mute.setActive(p[key]);
- triggerChangeEvent();
- break;
- default:
- me[key] = p[key];
- }
- }
- });
-
- me.setSize(me.width,me.height);
- me.setPosition(me.left,me.top);
-
- var buttonWidth = Math.floor(me.width/3) + 1;
-
- buttons.solo.setProperties({
- left: 0,
- width: buttonWidth,
- top:0,
- height: me.height
- });
- buttons.mute.setProperties({
- left: buttonWidth-1,
- width: buttonWidth,
- top:0,
- height: me.height
- });
- buttons.fx.setProperties({
- left: buttonWidth*2-2,
- width: buttonWidth,
- top:0,
- height: me.height
- });
- };
-
- function triggerChangeEvent(wasSolo){
- EventBus.trigger(EVENT.trackStateChange,{track: me.track, solo: buttons.solo.isActive, mute: buttons.mute.isActive, wasSolo:wasSolo});
- }
-
- me.render = function(internal){
-
- if (!me.isVisible()) return;
- internal = !!internal;
-
- if (me.needsRendering){
- me.clearCanvas();
- if (font){
- font.write(me.ctx,label.toUpperCase(),6,11,0);
- }else{
- me.ctx.fillStyle = "white";
- me.ctx.fillText(label,10,10);
- }
-
- buttons.solo.render();
- buttons.mute.render();
- buttons.fx.render();
-
- // arrow glyphs
-
- //var buttonCenterX = Math.floor((buttonUp.width - 8)/2);
- //var buttonCenterY = Math.floor((buttonUp.height - 8)/2);
- //window.fontMed.write(me.ctx,"↑",buttonUp.left + buttonCenterX,buttonUp.top + buttonCenterY,0);
- //window.fontMed.write(me.ctx,"↓",buttonDown.left + buttonCenterX,buttonDown.top + buttonCenterY,0);
-
-
- //var b = buttonUp.render(true);
- //me.ctx.drawImage(b,10,10,50,30);
- }
- me.needsRendering = false;
-
- if (internal){
- return me.canvas;
- }else{
- me.parentCtx.drawImage(me.canvas,me.left,me.top,me.width,me.height);
- }
-
- };
-
- EventBus.on(EVENT.trackScopeClick,function(track){
- if (track === me.track){
- buttons.mute.onClick();
- }
- });
-
- return me;
-
-
-};
-
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/app/components/visualiser.js
^
|
@@ -1,376 +0,0 @@
-UI.visualiser = function(){
- var me = UI.panel();
-
- var modes = [
- "wave",
- "spectrum",
- "tracks"
- ];
- var modeIndex = 2;
- var mode = modes[modeIndex];
- var analyser;
- var background;
- var trackAnalyser = [];
- var trackMuteState = [];
- var analyserPos = [];
- var analyserSize = 256;
-
- me.ctx.fillStyle = 'black';
- me.ctx.lineWidth = 2;
- //me.ctx.strokeStyle = 'rgba(0, 255, 0,0.5)';
- //me.ctx.strokeStyle = 'rgba(255, 221, 0, 0.3)';
- me.ctx.strokeStyle = 'rgba(120, 255, 50, 0.5)';
-
- me.init = function(){
- if (Audio.context){
- analyser = Audio.context.createAnalyser();
- analyser.minDecibels = -90;
- analyser.maxDecibels = -10;
- analyser.smoothingTimeConstant = 0.85;
-
- function addAnalyser(){
- var a = Audio.context.createAnalyser();
- a.smoothingTimeConstant = 0;
- a.fftSize = analyserSize;
- trackAnalyser.push(a);
- }
-
- for (var i = 0; i<Tracker.getTrackCount(); i++){
- addAnalyser();
- }
- setAnalyserPositions();
- }
-
- background = Y.getImage("oscilloscope");
-
- EventBus.on(EVENT.filterChainCountChange,function(trackCount){
- for (var i = trackAnalyser.length; i<trackCount; i++){
- addAnalyser()
- }
- setAnalyserPositions();
- me.connect();
- });
-
- EventBus.on(EVENT.trackStateChange,function(state){
- if (typeof state.track !== "undefined"){
- trackMuteState[state.track] = state.mute;
- }
- });
-
-
- me.needsRendering = true;
- };
-
- me.connect = function(audioNode){
- if (Audio.context){
- if (audioNode) audioNode.connect(analyser);
-
- for (var i = 0; i< Tracker.getTrackCount(); i++){
- Audio.filterChains[i].output().connect(trackAnalyser[i]);
- }
- }
-
- };
-
- me.nextMode = function(){
- modeIndex++;
- if (modeIndex>=modes.length) modeIndex = 0;
- mode = modes[modeIndex];
- console.log("setting visualiser to mode " + mode);
- };
-
- var modeWaveRender = function(){
- var bufferLength;
- var dataArray;
- me.ctx.clearRect(0,0,me.width,me.height);
-
- analyser.fftSize = 256;
- bufferLength = analyser.fftSize;
- dataArray = new Uint8Array(bufferLength);
-
- function drawWave() {
- analyser.getByteTimeDomainData(dataArray);
-
- me.ctx.lineWidth = 2;
- me.ctx.strokeStyle = 'rgba(120, 255, 50, 0.5)';
- me.ctx.beginPath();
- var sliceWidth = me.width * 1.0 / bufferLength;
- var wx = 0;
-
- for(var i = 0; i < bufferLength; i++) {
- var v = dataArray[i] / 128.0;
- var wy = v * me.height/2;
-
- if(i === 0) {
- me.ctx.moveTo(wx, wy);
- } else {
- me.ctx.lineTo(wx, wy);
- }
-
- wx += sliceWidth;
- }
-
- me.ctx.lineTo(me.width, me.height/2);
- me.ctx.stroke();
-
- me.parentCtx.drawImage(me.canvas,me.left, me.top);
- }
- drawWave();
- };
-
- var modeSpectrumRender = function() {
-
- me.ctx.clearRect(0,0,me.width,me.height);
-
- var bufferLength;
- var dataArray;
-
- analyser.fftSize = 128;
- bufferLength = analyser.frequencyBinCount;
- dataArray = new Uint8Array(bufferLength);
-
- var lowTreshold = 8;
- var highTreshold = 8;
- var max = bufferLength-highTreshold;
-
- var visualBufferLength = bufferLength - lowTreshold - highTreshold;
-
- analyser.getByteFrequencyData(dataArray);
-
- var barWidth = (me.width - visualBufferLength) / visualBufferLength;
- var barHeight;
- var wx = 0;
-
- // only display range
-
- for(var i = lowTreshold; i < max; i++) {
- barHeight = dataArray[i];
-
- me.ctx.fillStyle = 'rgb(' + (barHeight+100) + ',50,50)';
- me.ctx.fillRect(wx,me.height-barHeight/2,barWidth,barHeight/2);
-
- wx += barWidth + 1;
- }
-
- ctx.drawImage(me.canvas,me.left, me.top);
-
-
- };
-
- var modeTracksRender = function(){
- me.ctx.clearRect(0,0,me.width,me.height);
- me.ctx.lineWidth = 2;
- me.ctx.strokeStyle = 'rgba(120, 255, 50, 0.5)';
-
- var hasVolume = !Audio.cutOff;
- var bufferLength;
- var dataArray;
-
- for (var trackIndex = 0; trackIndex<Tracker.getTrackCount();trackIndex++){
-
- var track = trackAnalyser[trackIndex];
- var pos = analyserPos[trackIndex];
-
- var isMute = trackMuteState[trackIndex];
-
- me.ctx.drawImage(background,pos.left,pos.top,pos.width,pos.height);
-
- if (track){
- me.ctx.beginPath();
-
- var wy;
- var wx = pos.lineLeft;
- var ww = pos.lineWidth;
-
- if (hasVolume && !isMute){
-
- track.fftSize = analyserSize;
- bufferLength = track.fftSize;
- dataArray = new Uint8Array(bufferLength);
- track.getByteTimeDomainData(dataArray);
-
- var sliceWidth = ww/bufferLength;
-
- for(var i = 0; i < bufferLength; i++) {
- var v = dataArray[i] / 128.0;
- wy = v * pos.height/2 + pos.top;
-
- if(i === 0) {
- me.ctx.moveTo(wx, wy);
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/app/components/vumeter.js
^
|
@@ -1,159 +0,0 @@
-UI.vumeter = function(){
- var me = UI.panel();
-
-
- me.left = 400;
- me.top = 9;
-
- var analyserLeft;
- var analyserRight;
- var connected;
- var bufferLength;
- var dataArray;
-
- if (Audio.context){
- analyserLeft = Audio.context.createAnalyser();
- analyserLeft.minDecibels = -90;
- analyserLeft.maxDecibels = -10;
- analyserLeft.smoothingTimeConstant = 0.85;
-
- analyserRight = Audio.context.createAnalyser();
- analyserRight.minDecibels = -90;
- analyserRight.maxDecibels = -10;
- analyserRight.smoothingTimeConstant = 0.85;
-
- analyserLeft.fftSize = 32;
- analyserRight.fftSize = 32;
- bufferLength = analyserLeft.fftSize;
- dataArray = new Uint8Array(bufferLength);
- }
-
- var vuWidth = 500;
- var vuHeight = 6;
- var dotWidth = 10;
- var margin = 2;
- var middleMargin = 4;
-
- var base = document.createElement("canvas");
- var baseActive = document.createElement("canvas");
- var baseCtx = base.getContext("2d");
- var baseActiveCtx = baseActive.getContext("2d");
-
- var dotGreen = Y.getImage("vu_green");
- var dotGreenActive = Y.getImage("vu_green_active");
- var dotYellow = Y.getImage("vu_yellow");
- var dotYellowActive = Y.getImage("vu_yellow_active");
- var dotRed = Y.getImage("vu_red");
- var dotRedActive = Y.getImage("vu_red_active");
-
- function buildVu(){
-
- base.width = baseActive.width = vuWidth;
- base.height = baseActive.height = vuHeight;
- var dots = Math.floor(vuWidth / (dotWidth+margin));
-
- baseCtx.clearRect(0,0,base.width,base.height);
- baseActiveCtx.clearRect(0,0,baseActive.width,baseActive.height);
-
- for (var i = 0; i< dots; i++){
- var img = dotGreen;
- var imgActive = dotGreenActive;
- if (i>=dots/3){
- img = dotYellow;
- imgActive = dotYellowActive;
- }
- if (i>=dots/1.5){
- img = dotRed;
- imgActive = dotRedActive;
- }
-
- baseCtx.drawImage(img,i*(dotWidth+margin),0,dotWidth,vuHeight);
- baseActiveCtx.drawImage(imgActive,i*(dotWidth+margin),0,dotWidth,vuHeight);
- }
- me.ctx.fillStyle = "#253352";
- }
-
-
- me.setSize(vuWidth,vuHeight*2+middleMargin);
- buildVu();
-
- me.needsRendering = true;
-
- me.connect = function(audioNode){
- if (Audio.context){
- var splitter = Audio.context.createChannelSplitter(2);
- audioNode.connect(splitter);
- splitter.connect(analyserLeft,0);
- splitter.connect(analyserRight,1);
- connected = true;
- }
- };
-
- me.setProperties = function(properties){
-
- vuWidth = properties.width;
- me.left = properties.left;
-
- me.setSize(vuWidth,vuHeight*2+middleMargin);
- buildVu();
-
- };
-
-
- me.render = function(){
-
- if (!connected) return;
-
- analyserLeft.getByteTimeDomainData(dataArray);
- var rangeLeft = getDynamicRange(dataArray) * (Math.E - 1);
- analyserRight.getByteTimeDomainData(dataArray);
- var rangeRight = getDynamicRange(dataArray) * (Math.E - 1);
-
-
- me.ctx.fillRect(0,0,me.width,me.height);
-
- me.ctx.drawImage(base,0,0);
- me.ctx.drawImage(base,0,vuHeight + middleMargin);
-
- var wLeft = Math.min(Math.floor(rangeLeft * vuWidth),vuWidth);
- var wRight = Math.min(Math.floor(rangeRight * vuWidth),vuWidth);
-
- if (wLeft) me.ctx.drawImage(baseActive,0,0,wLeft,vuHeight,0,0,wLeft,vuHeight);
- if (wRight) me.ctx.drawImage(baseActive,0,0,wRight,vuHeight,0,vuHeight + middleMargin,wRight,vuHeight);
-
- //ctx.fillStyle = "green";
- //ctx.clearRect(400,4,400,20);
- //ctx.fillRect(400,4,400 * rangeLeft,8);
- //ctx.fillRect(400,16,400 * rangeRight,8);
-
- ctx.drawImage(me.canvas,me.left,me.top);
-
- //console.error(range);
-
- //console.error(dataArray[0]);
-
- };
-
- function getDynamicRange(buffer) {
- var len = buffer.length;
- var min = 128;
- var max = 128;
-
- for (var i = 0; i < len; i++) {
- var instrument = buffer[i];
- if (instrument < min) min = instrument;
- else if (instrument > max) max = instrument
- }
-
- return (max - min) / 255
- }
-
- EventBus.on(EVENT.screenRender,function(){
- me.render();
- });
-
-
-
- return me;
-
-};
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/app/controlPanel.js
^
|
@@ -1,335 +0,0 @@
-UI.app_controlPanel = function(){
- var me = UI.app_panelContainer(40);
-
- var songControl = UI.app_songControl();
- me.addChild(songControl);
-
- var buttonFileOperations = UI.checkboxbutton({
- label: "File",
- onDown: function(){
- var view = this.isActive ? "diskop_load" : "topmain";
- EventBus.trigger(EVENT.showView,view);
- }
- });
- var buttonOptions = UI.checkboxbutton({
- label: "Options",
- onDown: function(){
- var view = this.isActive ? "options" : "topmain";
- EventBus.trigger(EVENT.showView,view);
- }
- });
- var buttonSampleEdit = UI.checkboxbutton({
- label: "Sample Edit",
- onDown: function(){
- var view = this.isActive ? "sample" : "bottommain";
- EventBus.trigger(EVENT.showView,view);
- }
- });
-
- me.addChild(buttonFileOperations);
- me.addChild(buttonOptions);
- me.addChild(buttonSampleEdit);
-
- var buttonProperties = {
- background: UI.Assets.buttonKeyScale9,
- hoverBackground:UI.Assets.buttonKeyHoverScale9,
- activeBackground:UI.Assets.buttonKeyActiveScale9,
- isActive:false,
- textAlign: "center",
- font: window.fontDark,
- paddingTopActive: 1
- };
-
- var modButton = UI.button();
- var xmButton = UI.button();
-
- modButton.setProperties(buttonProperties);
- modButton.setLabel("mod");
- modButton.onDown = function(){
- Tracker.setTrackerMode(TRACKERMODE.PROTRACKER);
- };
- me.addChild(modButton);
-
- xmButton.setProperties(buttonProperties);
- xmButton.setLabel("XM");
- xmButton.onDown = function(){
- Tracker.setTrackerMode(TRACKERMODE.FASTTRACKER);
- };
- me.addChild(xmButton);
-
- var trackView = [4,8,12,16];
- var trackButtons = [];
- trackView.forEach(function(count){trackButtons.push(UI.button());});
- trackButtons.forEach(function(button,index){
- button.setProperties(buttonProperties);
- button.setLabel("" + trackView[index]);
- button.index = index;
- button.onDown = function(){
- if (this.isDisabled) return;
- var activeIndex = this.index;
- trackButtons.forEach(function(b,index){
- b.setActive(index === activeIndex);
- });
- Layout.setVisibleTracks(trackView[activeIndex]);
-
- };
- me.addChild(button);
- });
-
- var labelTrackerMode = UI.label();
- labelTrackerMode.setProperties({
- label : "Mode",
- labels:[
- {width: 20, label:""},
- {width: 78, label:"M"},
- {width: 84, label:"Md"},
- {width: 100, label:"Mode"}
- ],
- font: fontSmall,
- width: 100,
- height: 20,
- textAlign: "right"
- });
- labelTrackerMode.ignoreEvents = true;
- me.addChild(labelTrackerMode);
-
- var labelTrackView = UI.label();
- labelTrackView.setProperties({
- label : "Display",
- labels : [
- {width: 10, label: ""},
- {width: 78, label: "t"},
- {width: 84, label: "tr"},
- {width: 100, label: "trck"},
- {width: 120, label: "Display"}
- ],
- font: fontSmall,
- width: 100,
- height: 20,
- textAlign: "right"
- });
- labelTrackView.ignoreEvents = true;
- me.addChild(labelTrackView);
-
-
- var trackCountSpinbox = UI.spinBox();
- trackCountSpinbox.setProperties({
- name: "Pattern",
- value: Tracker.getTrackCount(),
- max: 32,
- min:2,
- size: "big",
- padLength: 2,
- trackUndo: true,
- undoLabel: "Change Track count",
- onChange : function(value){Tracker.setTrackCount(value)}
- });
- me.addChild(trackCountSpinbox);
-
- me.onPanelResize = function(){
-
- me.innerHeight = me.height - (Layout.defaultMargin*2);
- var row1Top = Layout.defaultMargin;
- var row2Top = Layout.defaultMargin;
-
- if (Layout.controlPanelButtonLayout === "2row"){
- var halfHeight = Math.floor((me.innerHeight - Layout.defaultMargin)/2);
- row2Top = me.height - halfHeight - Layout.defaultMargin;
- me.innerHeight = halfHeight;
- }
-
-
-
- songControl.setProperties({
- left: Layout.col1X,
- top: row1Top,
- width: Layout.songControlWidth,
- height: me.innerHeight,
- songPatternSelector: "small"
- });
-
- var buttonWidth = Layout.col1W - 60;
- buttonWidth = Math.max(buttonWidth,120);
- var buttonMargin = Math.floor((Layout.col1W - buttonWidth)/2);
-
- var buttonSampleLeft = Layout.col4X + buttonMargin;
- var buttonSampleLabel = "Sample Edit";
-
- if (Layout.controlPanelButtonLayout !== "1row"){
- buttonWidth = Math.floor(Layout.controlPanelButtonsWidth / 3);
- buttonMargin = 0;
- buttonSampleLeft = Layout.controlPanelButtonsLeft + (buttonWidth*2);
- buttonSampleLabel = "Sample";
- }
-
-
-
- var buttonHeight = me.innerHeight;
-
- buttonFileOperations.setProperties({
- left: Layout.controlPanelButtonsLeft + (buttonMargin * 1.5),
- top: row2Top,
- width: buttonWidth,
- height: buttonHeight
- });
-
- buttonOptions.setProperties({
- left: buttonFileOperations.left + buttonWidth + buttonMargin,
- top: row2Top,
- width: buttonWidth,
- height: buttonHeight
- });
-
- buttonSampleEdit.setProperties({
- left: buttonSampleLeft,
- top: row2Top,
- width: buttonWidth,
- height: buttonHeight,
- label: buttonSampleLabel
- });
-
- var marginLeft = Layout.modeButtonsWidth - 101;
- modButton.setProperties({
- left: Layout.modeButtonsLeft + marginLeft,
- top: row1Top,
- width: 51,
- height: 16
- });
-
- xmButton.setProperties({
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/app/layout.js
^
|
@@ -1,142 +0,0 @@
-var Layout = function(){
- var me = {};
-
- me.defaultMargin = 4;
- me.showAppSideBar = false;
-
- me.setLayout = function(w,h){
-
- me.width = w || me.width;
- me.height = h || me.height;
-
- var mainWidth = me.width;
-
- me.sidebarWidth = me.showAppSideBar ? 200 : 0;
-
- // sidebar
- mainWidth = mainWidth-me.sidebarWidth;
-
- // 5 column layout
- me.col1W = Math.floor((mainWidth - (6*me.defaultMargin)- 3)/5);
- me.col2W = (me.col1W*2) + me.defaultMargin;
- me.col3W = (me.col1W*3) + (me.defaultMargin*2);
- me.col4W = (me.col1W*4) + (me.defaultMargin*3);
- me.col5W = (me.col1W*5) + (me.defaultMargin*4);
-
- me.marginLeft = Math.floor((mainWidth-me.col5W)/2);
- me.marginRight = mainWidth-me.marginLeft-me.col5W;
-
- me.mainLeft = me.sidebarWidth;
- me.mainWidth = mainWidth;
-
- me.col1X = me.marginLeft;
- me.col2X = me.col1X + me.defaultMargin + me.col1W;
- me.col3X = me.col2X + me.defaultMargin + me.col1W;
- me.col4X = me.col3X + me.defaultMargin + me.col1W;
- me.col5X = me.col4X + me.defaultMargin + me.col1W;
-
- me.colHalfW = Math.floor(me.col1W/2);
-
- // 3 column layout
- me.col31W = Math.floor((mainWidth - (4*me.defaultMargin)- 5)/3);
- me.col32W = (me.col31W*2) + me.defaultMargin;
- me.col31X = me.col1X;
- me.col32X = me.col31X + me.defaultMargin + me.col31W;
- me.col33X = me.col32X + me.defaultMargin + me.col31W;
-
- me.prefered = "col5";
-
- /* controlpanel */
- me.controlPanelHeight = 40;
- me.controlPanelLayout = "full";
- me.controlPanelButtonLayout = "1row";
- me.controlPanelButtonsLeft = me.col2X;
- me.controlPanelButtonsWidth = me.col3W;
- me.modeButtonsWidth = me.col1W;
- me.modeButtonsLeft = me.col5X;
- me.songControlWidth = me.col1W;
- me.TrackCountSpinboxWidth = 60;
-
- /* patternview */
- me.trackWidth = me.col1W;
- me.trackMargin = me.defaultMargin;
- me.visibleTracks = me.visibleTracks || 4;
- me.infoPanelHeight = 24;
- me.trackControlHeight = 32;
- me.analyserHeight = 66;
- me.pianoHeight = 200;
- me.trackFont = fontMed;
- me.useCondensedTrackFont = false;
-
-
- me.maxVisibleTracks = 16;
- if (mainWidth<945) me.maxVisibleTracks=12;
- if (mainWidth<725) me.maxVisibleTracks=8;
- if (mainWidth<512) me.maxVisibleTracks=4;
-
- if (me.visibleTracks>me.maxVisibleTracks){
- me.setVisibleTracks(me.maxVisibleTracks);
- return;
- }
-
- if (mainWidth<820){
- //me.controlPanelHeight = 80;
- me.controlPanelButtonLayout = "condensed";
- me.modeButtonsWidth = me.col1W + me.colHalfW;
- me.modeButtonsLeft = me.col5X - me.colHalfW;
- me.songControlWidth = me.modeButtonsWidth;
- me.controlPanelButtonsLeft = me.col2X + me.colHalfW;
- me.controlPanelButtonsWidth = me.col2W;
- }
-
- if (mainWidth<650){
- me.controlPanelButtonLayout = "2row";
- me.controlPanelHeight = 80;
-
- me.controlPanelButtonsLeft = me.col1X;
- me.controlPanelButtonsWidth = me.col5W;
- me.controlPanelButtonsButton = Math.floor(me.controlPanelButtonsWidth/3);
-
- me.modeButtonsLeft = (me.controlPanelButtonsButton*2) - me.TrackCountSpinboxWidth;
- me.modeButtonsWidth = me.controlPanelButtonsButton + me.TrackCountSpinboxWidth + me.defaultMargin;
- me.songControlWidth = me.col2W + me.colHalfW + me.defaultMargin;
- }
-
- if (mainWidth<620){
- me.prefered = "col3";
- }
-
- if (me.height<800){
- me.pianoHeight = 150;
- }
-
- if (me.height<650){
- me.pianoHeight = 100;
- }
-
- var margins = me.defaultMargin*(me.visibleTracks-1);
- me.showSideBar = me.visibleTracks<5 && mainWidth>620;
-
- var totalWidth = me.showSideBar ? me.col4W:me.col5W;
- me.trackWidth = Math.floor((totalWidth - margins)/me.visibleTracks);
-
- me.firstTrackOffsetLeft = 0;
- if (me.trackWidth<125){
- me.firstTrackOffsetLeft = 18;
- me.trackWidth = Math.floor((totalWidth - margins - me.firstTrackOffsetLeft)/me.visibleTracks);
- }
- var minTrackWidth = Tracker.inFTMode() ? 100 : 78;
- if (me.trackWidth<minTrackWidth) {
- me.trackFont = fontSuperCondensed;
- me.useCondensedTrackFont = true;
- }
- };
-
- me.setVisibleTracks = function(count){
- me.visibleTracks = count;
- me.setLayout();
- EventBus.trigger(EVENT.visibleTracksCountChange,count);
- };
-
- return me;
-}();
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/app/mainPanel.js
^
|
@@ -1,663 +0,0 @@
-UI.app_mainPanel = function(){
- var me = UI.app_panelContainer(160);
- var currentView = "";
- var currentSubView = "";
- var radioGroup;
- var customPanel;
-
- var steffestVersion = function(){
- var img = Y.getImage("steffest");
- var version = typeof versionNumber == "undefined" ? "dev" : versionNumber;
- if (version.indexOf(".")>0){
- var p = version.split(".");
- version = p[0]+"."+p[1];
- }
- version = "Version " + version;
- var imgCtx = img.getContext("2d");
-
- fontSmall.write(imgCtx,version,44,4);
- fontSmall.write(imgCtx,"By",44,13);
-
- return img;
- };
-
- var logo = UI.button();
- logo.setProperties({
- background: UI.Assets.panelInsetScale9,
- activeBackground: UI.Assets.buttonDarkScale9,
- image: Y.getImage("logo_grey_70"),
- activeImage: Y.getImage("logo_colour_70")
- });
- logo.onDown = function(){
- logo.toggleActive();
- };
- me.addChild(logo);
-
- var tracker = UI.button();
- tracker.setProperties({
- background: UI.Assets.panelInsetScale9,
- activeBackground: UI.Assets.panelInsetScale9,
- image: Y.getImage("tracker"),
- activeImage: steffestVersion()
- });
- tracker.onDown = function(){
- tracker.toggleActive();
- };
- me.addChild(tracker);
-
-
- var modNameInputBox = UI.inputbox({
- name: "modName",
- trackUndo: true,
- onChange: function(value){
- Tracker.getSong().title = value;
- UI.setInfo(value);
- }
- });
- me.addChild(modNameInputBox);
-
- // instrument listbox
- var listbox = UI.listbox();
- listbox.setItems([
- {label: "loading ...", data: 1}
- ]);
- me.addChild(listbox);
- listbox.onClick = function(e){
- Input.setFocusElement(listbox);
- var item = listbox.getItemAtPosition(listbox.eventX,listbox.eventY);
- if (item){
- Tracker.setCurrentInstrumentIndex(item.data);
- }
- };
-
- var songlistbox = UI.app_songPatternList();
- me.addChild(songlistbox);
-
-
- // spinbox controls
-
- var spinbBoxFont = window.fontFT;
-
- var patternPanel = UI.scale9Panel(0,0,0,0,UI.Assets.panelInsetScale9);
- me.addChild(patternPanel);
- var patternPanel2 = UI.scale9Panel(0,0,0,0,UI.Assets.panelInsetScale9);
- me.addChild(patternPanel2);
-
- var spinBoxPattern = UI.spinBox();
- spinBoxPattern.setProperties({
- name: "Pattern",
- label: "Pattern",
- labels:[
- {width: 10, label: "Pat."},
- {width: 140, label: "Pattern"}
- ],
- value: 0,
- max: 100,
- min:0,
- font: spinbBoxFont,
- onChange : function(value){Tracker.setCurrentPattern(value);}
- });
- me.addChild(spinBoxPattern);
-
- var spinBoxInstrument = UI.spinBox({
- name: "Instrument",
- label: "Instrument",
- labels:[
- {width: 10, label: "Ins."},
- {width: 123, label: "Instr"},
- {width: 160, label: "Instrument"}
- ],
- value: 1,
- max: 31,
- min:1,
- font: spinbBoxFont,
- onChange : function(value){Tracker.setCurrentInstrumentIndex(value);}
- });
- me.addChild(spinBoxInstrument);
-
- var spinBoxSongLength = UI.spinBox({
- name: "SongLength",
- label: "Song length",
- labels:[
- {width: 10, label: "Len."},
- {width: 138, label: "Length"},
- {width: 156, label: "Song len"},
- {width: 178, label: "Song length"}
- ],
- value: 1,
- max: 200,
- min:1,
- font: spinbBoxFont,
- trackUndo: true,
- undoLabel: "Change Song length",
- onChange : function(value){
- var currentLength = Tracker.getSong().length;
- if (currentLength>value){
- Editor.removeFromPatternTable();
- }else if(currentLength<value){
- Editor.addToPatternTable();
- }
- }
- });
- me.addChild(spinBoxSongLength);
-
- var spinBoxSongRepeat = UI.spinBox({
- name: "SongRepeat",
- label: "Song repeat",
- labels:[
- {width: 10, label: "Rep."},
- {width: 138, label: "Repeat"},
- {width: 156, label: "Song rep"},
- {width: 178, label: "Song repeat"}
- ],
- value: 1,
- max: 200,
- min:1,
- font: spinbBoxFont,
- onChange : function(value){
- Tracker.getSong().restartPosition = value;
- }
- });
- me.addChild(spinBoxSongRepeat);
-
- var spinBoxPatternLength = UI.spinBox({
- name: "PatternLength",
- label: "Pattern length",
- labels:[
- {width: 10, label: "Plen"},
- {width: 138, label: "Pat len"},
- {width: 166, label: "Pattern len"},
- {width: 188, label: "Pattern length"}
- ],
- value: 64,
- max: 128,
- min:1,
- font: spinbBoxFont,
- trackUndo: true,
- undoLabel: "Change Pattern length",
- onChange : function(value){
- Tracker.setPatternLength(value);
- }
- });
- me.addChild(spinBoxPatternLength);
-
- var spinBoxBpm = UI.spinBox({
- name: "BPMLength",
- label: "BPM",
- value: 1,
- max: 400,
- min:1,
- font: spinbBoxFont,
- trackUndo: true,
- undoLabel: "Change Song Tempo",
- onChange : function(value){
- Tracker.setBPM(value);
- }
- });
- me.addChild(spinBoxBpm);
-
-
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/app/panelContainer.js
^
|
@@ -1,14 +0,0 @@
-UI.app_panelContainer = function(height){
- var me = UI.panel(0,0,canvas.width,height,true);
-
- var background = UI.scale9Panel(0,0,me.width,me.height,UI.Assets.panelMainScale9);
- background.ignoreEvents = true;
- me.addChild(background);
-
- me.onResize = function(){
- background.setSize(me.width,me.height);
- if (me.onPanelResize) me.onPanelResize();
- };
-
- return me;
-};
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/app/patternPanel.js
^
|
@@ -1,277 +0,0 @@
-UI.app_patternPanel = function(){
- var me = UI.app_panelContainer(80);
-
- var i;
- var trackControls = [];
- var maxVisibleTracks = 4;
- var patternLeft;
- var patternTrackLeft;
- var currentView = "main";
-
- var editPanel = UI.editPanel();
- me.addChild(editPanel);
-
- var infoPanel = UI.InfoPanel();
- me.addChild(infoPanel);
-
- for (i=0;i<Tracker.getTrackCount();i++){
- trackControls[i] = UI.trackControl();
- me.addChild(trackControls[i]);
- }
-
- var visualiser = UI.visualiser();
- visualiser.connect(Audio.cutOffVolume);
- visualiser.name = "mainAnalyser";
-
- //window.visualiser = visualiser;
- // note: don't attach as child to main panel, this gets attached to main UI
-
- var scopesClickHandler = UI.element();
- scopesClickHandler.render = function(){};
- scopesClickHandler.onClick = function(touchData){
- visualiser.onClick(touchData);
- };
- me.addChild(scopesClickHandler);
-
- var patternSidebar = UI.pattern_sidebar();
- me.addChild(patternSidebar);
-
- var patternView = UI.app_patternView();
- patternView.setProperties({
- name: "patternViewPanel"
- });
- me.addChild(patternView);
-
-
- var sampleView = UI.SampleView();
- sampleView.setProperties({
- name: "sampleViewPanel"
- });
- me.addChild(sampleView);
-
- me.onPanelResize = function(){
-
- if (Layout.showSideBar){
- if (currentView === "main"){
- patternSidebar.show();
- editPanel.show();
- }
- }else{
- patternSidebar.hide();
- editPanel.hide();
- }
-
-
- var patternTop = Layout.infoPanelHeight + Layout.trackControlHeight + Layout.analyserHeight + (Layout.defaultMargin*2);
- var patternHeight = me.height - patternTop - Layout.defaultMargin;
-
- Layout.expandSampleViewHeight = patternHeight<280;
-
- if (Layout.expandSampleViewHeight && currentView==="sample"){
- visualiser.hide();
- editPanel.hide();
- }else{
- visualiser.show();
- if (Layout.showSideBar) editPanel.show();
- }
-
- patternLeft = Layout.showSideBar ? Layout.col2X : Layout.col1X;
- var patternWidth = Layout.showSideBar ? Layout.col4W : Layout.col5W;
-
- patternTrackLeft = patternLeft + Layout.firstTrackOffsetLeft;
-
- editPanel.setDimensions({
- left: Layout.col1X,
- top : Layout.defaultMargin,
- width: Layout.col1W,
- height: Layout.infoPanelHeight + Layout.analyserHeight
- });
-
- infoPanel.setDimensions({
- left: Layout.showSideBar ? Layout.col2X : Layout.col1X,
- top : 0,
- width: Layout.showSideBar ? Layout.col4W : Layout.col5W,
- height: Layout.infoPanelHeight
- });
-
- patternView.setDimensions({
- left: patternLeft,
- top : patternTop,
- width: patternWidth,
- height: patternHeight
- });
-
- patternSidebar.setDimensions({
- left: Layout.col1X,
- top : patternView.top - Layout.trackControlHeight,
- width: Layout.col1W,
- height: patternHeight + Layout.trackControlHeight
- });
-
-
- visualiser.setProperties({
- left: patternTrackLeft + Layout.mainLeft,
- top: me.top + Layout.infoPanelHeight + 3,
- width: patternWidth - Layout.firstTrackOffsetLeft,
- height: Layout.analyserHeight
- });
-
- scopesClickHandler.setDimensions({
- left: visualiser.left - Layout.mainLeft,
- top: Layout.infoPanelHeight + 3,
- width: visualiser.width,
- height: visualiser.height
- });
-
- sampleView.setProperties({
- left: 0,
- top: Layout.expandSampleViewHeight ? Layout.infoPanelHeight : patternTop,
- width: me.width,
- height: Layout.expandSampleViewHeight ? me.height - Layout.infoPanelHeight - Layout.defaultMargin - 3 : patternHeight
- });
-
- setTrackControlsLayout();
-
-
- };
- me.onPanelResize();
-
-
- function setTrackControlsLayout(){
-
- // controlBar
- var startTrack = patternView.getStartTrack();
- var endTrack = Math.min(startTrack + Layout.visibleTracks,Tracker.getTrackCount());
-
- var isVisible = !(Layout.expandSampleViewHeight && currentView === "sample");
-
- for (i = 0;i< trackControls.length;i++){
-
- if ( i>=startTrack && i<endTrack){
- trackControls[i].setProperties({
- track:i,
- left: patternTrackLeft + (Layout.trackWidth+Layout.trackMargin)* (i-startTrack),
- top: Layout.defaultMargin + Layout.infoPanelHeight + Layout.analyserHeight,
- width: Layout.trackWidth,
- height:Layout.trackControlHeight,
- visible: isVisible
- });
- }else{
- trackControls[i].setProperties({
- track:i,
- top: -100,
- visible: false
- });
- }
-
- }
- }
-
- EventBus.on(EVENT.patternChange,function(){
- patternView.refresh();
- });
-
- EventBus.on(EVENT.patternPosChange,function(){
- patternView.refresh();
- });
- EventBus.on(EVENT.cursorPositionChange,function(){
- patternView.refresh();
- });
- EventBus.on(EVENT.recordingChange,function(){
- patternView.refresh();
- });
-
- EventBus.on(EVENT.trackStateChange,function(state){
- // set other tracks to mute if a track is soloed
-
- if(typeof state.track != "undefined"){
- if (state.solo){
- for (i = 0;i< Tracker.getTrackCount();i++){
- if (i != state.track){
- trackControls[i].setProperties({mute:true});
- }
- }
- }else if (state.wasSolo){
- for (i = 0;i< Tracker.getTrackCount();i++){
- if (i != state.track){
- trackControls[i].setProperties({mute:false});
- }
- }
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/app/pianoView.js
^
|
@@ -1,243 +0,0 @@
-UI.app_pianoView = function(){
-
- var me = UI.app_panelContainer(200);
- me.name = "pianoViewPanel";
-
- var keyWidth = 64;
- var keyOverlap = 4;
-
- var keySizeX = keyWidth-keyOverlap;
-
- var keyDown = [];
- var prevDown;
- var keyMapWhite = [0,2,4,5,7,9,11];
- var keyMapBlack = [-1,1,0,3,0,-1,0,6,0,8,0,10,0,-1];
-
- var keyImg = Y.getImage("pianokey_white");
- var keyImgDown = Y.getImage("pianokey_white_down");
- var bKeyImg = Y.getImage("pianokey_black");
- var bKeyImgDown = Y.getImage("pianokey_black_down");
-
- var keyTop = 30;
- var bKeyHeight = 0;
- var octave;
- var maxOctave = 3;
- var minOctave = 1;
-
-
- var closeButton = UI.Assets.generate("button20_20");
- closeButton.setLabel("x");
- closeButton.onClick = function(){
- App.doCommand(COMMAND.togglePiano);
- };
- me.addChild(closeButton);
-
- var octaveBox = UI.spinBox();
- octaveBox.setProperties({
- name: "Octave",
- label: "Octave",
- value: 1,
- max: maxOctave,
- min:minOctave,
- left: 4,
- top: 2,
- height: 28,
- width: 150,
- font: window.fontMed,
- onChange : function(value){Input.setCurrentOctave(value)}
- });
- me.addChild(octaveBox);
-
- me.onShow = function(){
- me.onPanelResize();
- };
-
- me.onPanelResize = function(){
- me.innerHeight = me.height - (Layout.defaultMargin*2);
- closeButton.setProperties({
- top: 4,
- left: me.width - 24
- });
-
- };
- me.onPanelResize();
-
-
- EventBus.on(EVENT.pianoNoteOn,function(index){
- if (!me.isVisible()) return;
- keyDown[index] = true;
- me.refresh();
- });
-
- EventBus.on(EVENT.pianoNoteOff,function(index){
- if (!me.isVisible()) return;
- keyDown[index] = false;
- me.refresh();
- });
-
-
- var getKeyAtPoint = function(x,y){
- var key = -1;
-
- var octaveWidth = keySizeX*7;
-
- var keyX = x%octaveWidth;
- var keyOctave = Math.floor(x/octaveWidth);
-
- if (y>= 0){
- if (y>(bKeyHeight+keyTop)){
- // white key
- var keyIndex = Math.floor(keyX/keySizeX);
- key = keyMapWhite[keyIndex] + (keyOctave*12);
- }else{
- var subKeyWidth = (keySizeX/2);
- var margin = subKeyWidth/2;
- var subKey = Math.floor((keyX - margin)/subKeyWidth);
- if (subKey<0) subKey=0;
- if (subKey>12) subKey=12;
-
- if (subKey%2 === 0){
- // white key
- keyIndex = subKey/2;
- key = keyMapWhite[keyIndex];
- }else{
- // black key
- key = keyMapBlack[subKey];
- if (key<0){
- // no black key
- keyIndex = Math.floor(keyX/keySizeX);
- key = keyMapWhite[keyIndex];
- }
- }
- key += (keyOctave*12);
- }
- }
- return key+1;
- };
-
- me.onDown = function(data){
-
- var x = data.x;
- var y = data.y;
- //var y = data.y - me.top - keyTop;
-
-
- var key = getKeyAtPoint(x,y);
- if (key) {
- if (key !== prevDown){
- Input.handleNoteOn(key + (octave*12));
- if (prevDown) Input.handleNoteOff(prevDown + (octave*12));
- prevDown = key;
- }
- }
- };
-
-
- me.onTouchUp = function(data){
- var x = data.x;
- var y = data.y;
-
- var key = getKeyAtPoint(x,y);
- if (!key) key=prevDown;
- if (key){
- Input.handleNoteOff(key + (octave*12));
- prevDown = undefined;
- }
-
- if (prevDown) Input.handleNoteOff(prevDown + (octave*12));
- prevDown = undefined;
-
- };
-
- me.onDrag = function(data){
- // todo: multitouch?
- var x = data.x;
- var y = data.y;
-
-
- var key = getKeyAtPoint(x,y);
- if (key) {
- if (key !== prevDown){
- Input.handleNoteOn(key + (octave*12));
- if (prevDown) Input.handleNoteOff(prevDown + (octave*12));
- prevDown = key;
- }
- }
- };
-
- me.renderInternal = function(internal){
- if (!me.isVisible()) return;
-
- internal = !!internal;
-
- if (this.needsRendering){
-
- // draw white keys
- var keyHeight = me.height - keyTop;
-
- var keyX = 0;
-
- var counter = 0;
- while (keyX<me.width){
- var thisOctave = Math.floor(counter/7);
- var octaveIndex = counter%7;
-
- var keyIndex = ((octave+thisOctave)*12) + keyMapWhite[octaveIndex] + 1;
-
- var img = keyDown[keyIndex] ? keyImgDown : keyImg;
- me.ctx.drawImage(img,keyX,keyTop,keyWidth,keyHeight);
-
- counter++;
- keyX += (keyWidth - keyOverlap);
-
- }
-
- // draw black keys
- var bKeyWidth = 48;
- bKeyHeight = Math.floor(keyHeight/1.7);
- var bkeyX = keyWidth - bKeyWidth/2 - 2;
- counter = 0;
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/assets.js
^
|
@@ -1,411 +0,0 @@
-UI.Assets = (function(){
- // generates and caches frequently used UI assets
-
- var me = {};
-
- var assets = {};
-
- me.preLoad = function(next){
- var spriteMap;
- var spriteSheet;
- var baseUrl = Host.getBaseUrl();
- var useVersion = Host.useUrlParams;
-
- function assetUrl(url){
- url = baseUrl + url;
- if (useVersion) url += ("?v=" + App.buildNumber);
- return url;
- }
-
- var createSprites = function(){
- if (spriteMap && spriteSheet){
- spriteMap.forEach(function(spriteData){
- spriteData.img = spriteSheet;
- Y.sprites[spriteData.name] = Y.sprite(spriteData);
- });
- if (next) next();
- }
- };
-
- FetchService.json(assetUrl("skin/spritemap_v4.json"),function(data){
- spriteMap = data;
- createSprites();
- });
-
- Y.loadImage(assetUrl("skin/spritesheet_v4.png"),function(img){
- spriteSheet = img;
- createSprites();
- })
-
- };
-
- me.buttonLightScale9 = {
- left: 2,
- top:2,
- right: 4,
- bottom: 4
- };
- me.buttonLightHoverScale9 = {
- left: 2,
- top:2,
- right: 4,
- bottom: 4
- };
- me.buttonDarkScale9 = {
- left: 5,
- top:5,
- right: 5,
- bottom: 5
- };
- me.buttonDarkBlueScale9 = {
- left: 5,
- top:5,
- right: 5,
- bottom: 5
- };
- me.buttonDarkRedScale9 = {
- left: 5,
- top:5,
- right: 5,
- bottom: 5
- };
- me.buttonDarkRedHoverScale9 = {
- left: 5,
- top:5,
- right: 5,
- bottom: 5
- };
- me.buttonDarkGreenScale9 = {
- left: 5,
- top:5,
- right: 5,
- bottom: 5
- };
- me.buttonDarkActiveScale9 = {
- left: 5,
- top:5,
- right: 5,
- bottom: 5
- };
- me.buttonDarkActiveBlueScale9 = {
- left: 5,
- top:5,
- right: 5,
- bottom: 5
- };
- me.buttonDarkGreenHoverScale9 = {
- left: 5,
- top:5,
- right: 5,
- bottom: 5
- };
- me.buttonDarkGreenActiveScale9 = {
- left: 5,
- top:5,
- right: 5,
- bottom: 5
- };
- me.buttonDarkRedActiveScale9 = {
- left: 5,
- top:5,
- right: 5,
- bottom: 5
- };
- me.buttonDarkBlueActiveScale9 = {
- left: 5,
- top:5,
- right: 5,
- bottom: 5
- };
- me.buttonDarkYellowActiveScale9 = {
- left: 5,
- top:5,
- right: 5,
- bottom: 5
- };
- me.panelMainScale9 = {
- left:2,
- top:2,
- right:3,
- bottom: 3
- };
- me.panelDarkScale9 = {
- left:3,
- top:3,
- right:3,
- bottom: 2
- };
- me.panelDarkHoverScale9 = {
- left:3,
- top:3,
- right:3,
- bottom: 2
- };
- me.panelDarkGreyScale9 = {
- left:3,
- top:3,
- right:3,
- bottom: 2
- };
- me.panelDarkGreyBlueScale9 = {
- left:3,
- top:3,
- right:3,
- bottom: 2
- };
- me.panelTransScale9 = {
- left:3,
- top:3,
- right:3,
- bottom: 2
- };
- me.panelInsetScale9 = {
- left:2,
- top:2,
- right:2,
- bottom: 2
- };
- me.panelDarkInsetScale9 = {
- left:2,
- top:2,
- right:2,
- bottom: 2
- };
- me.buttonKeyScale9 = {
- left: 5,
- top:5,
- right: 5,
- bottom: 5
- };
- me.buttonKeyHoverScale9 = {
- left: 5,
- top:5,
- right: 5,
- bottom: 5
- };
- me.buttonKeyActiveScale9 = {
- left: 5,
- top:5,
- right: 5,
- bottom: 5
- };
-
-
- var assetsInfo = {
- button20_20:{
- generate:function(andCache){
- var result;
- var scale = me.panelDarkScale9;
- //result = UI.scale9Panel(0,0,20,20,scale);
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/components/animsprite.js
^
|
@@ -1,54 +0,0 @@
-UI.animsprite = function(x,y,w,h,baseImageName,frames){
-
- w = w || 14;
- h = h || 14;
-
- var me = UI.element(x,y,w,h,true);
-
- var properties = ["left","top","width","height","name"];
-
- me.setProperties = function(p){
- properties.forEach(function(key){
- if (typeof p[key] != "undefined") me[key] = p[key];
- });
-
- me.setSize(me.width,me.height);
- me.setPosition(me.left,me.top);
- };
-
- var baseImage = Y.getImage(baseImageName);
- var step = 0;
-
- me.onShow = function(){
- UI.ticker.onEachTick2(function(){
- step++;
- if (step>=frames) step=0;
- me.refresh();
- },0);
- };
-
- me.onHide = function(){
- UI.ticker.onEachTick2();
- };
-
-
- me.render = function(internal){
- internal = !!internal;
-
- if (this.needsRendering){
-
- me.clearCanvas();
- me.ctx.drawImage(baseImage,step*w,0,w,h,0,0,w,h);
- }
- this.needsRendering = false;
-
- if (internal){
- return me.canvas;
- }else{
- me.parentCtx.drawImage(me.canvas,me.left,me.top,me.width,me.height);
- }
-
- };
-
- return me;
-};
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/components/bitmapfont.js
^
|
@@ -1,167 +0,0 @@
-var BitmapFont = function(){
- var me = {};
-
- var charWidth;
- var widthArray = [];
- var charHeight;
- var charSpacing;
- var spaceWidth;
- var onlyUpperCase = false;
- var debug = false;
-
-
- function getCharWidth(index){
- if (me.fixedWidth) return charWidth;
- return charWidth[index];
- }
-
- me.generate = function(config){
- var img = config.image;
- var startX = config.startX;
- var startY = config.startY;
- charWidth = config.charWidth;
- var h = config.charHeight;
- spaceWidth = config.spaceWidth || 8;
- var margin = config.margin;
- var lineSpacing = config.lineSpacing || 0;
- var lineWidth = config.charsPerLine;
- var chars = config.chars || "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
- onlyUpperCase = config.onlyUpperCase;
- debug = !!config.debug;
-
- me.fontArray = [];
- me.colors = {};
- charSpacing = margin;
- charHeight = h;
-
- me.fixedWidth = true;
- me.charHeight = h;
-
- if (typeof charWidth !== "number"){
- me.fixedWidth = false;
-
- if (typeof charWidth === "string"){
- charWidth = charWidth.split("");
- charWidth.forEach(function(c,index){
- charWidth[index] = parseInt(c);
- })
- }
- }
-
-
- me.charWidth = charWidth;
- var _x = startX;
- var _y = startY;
- var _line = 0;
- var _lineIndex = 0;
-
- for (var i = 0, len = chars.length; i<=len; i++){
- var myCanvas = document.createElement("canvas");
-
- var w = getCharWidth(i) || 1;
-
- myCanvas.width = w;
- myCanvas.height = h;
-
- var myCtx = myCanvas.getContext("2d");
-
- if (me.fixedWidth){
- var x = startX + ((i % lineWidth) * (w+margin));
- var y = startY + (Math.floor(i / lineWidth) * (h+lineSpacing));
- }else{
- x = _x;
- y = _y;
- _x += (w+margin);
- _lineIndex++;
-
- if (_lineIndex>=lineWidth[_line]){
- _line++;
- _lineIndex = 0;
- _x = startX;
- _y += (charHeight + lineSpacing)
- }
- }
-
- myCtx.drawImage(img,x,y,w,h,0,0,w,h);
-
- var charCode = chars.charCodeAt(i);
- me.fontArray[charCode] = myCanvas;
- widthArray[charCode] = w;
- }
- };
-
- me.generateColor = function(colorName,color){
-
- colorName = colorName || "green";
- color = color || "rgba(107, 161, 65,0.9)";
-
- var fontArrayColor = [];
-
- me.fontArray.forEach(function(c,index){
- var c2 = document.createElement("canvas");
- var c3 = document.createElement("canvas");
- c2.width = c.width;
- c2.height = c.height;
- c3.width = c.width;
- c3.height = c.height;
- var cx2 = c2.getContext("2d");
- var cx3 = c3.getContext("2d");
-
- cx3.fillStyle = color;
- cx3.fillRect(0,0,16,16);
-
- cx3.globalCompositeOperation = "destination-atop";
- cx3.drawImage(c,0,0);
-
- cx2.drawImage(c3,0,0);
- cx2.globalCompositeOperation = "darken";
- cx2.drawImage(c,0,0);
-
- fontArrayColor[index] = c2;
- });
- me.colors[colorName] = fontArrayColor;
- };
-
- me.getTextWidth = function(text,spacing){
- if (onlyUpperCase) text = text.toUpperCase();
- spacing = spacing || charSpacing;
- var w = 0;
-
- for (var i = 0, len = text.length; i<len;i++){
- var code = text.charCodeAt(i);
- var _w = widthArray[code] || spaceWidth;
- w += _w + spacing;
- }
-
- return w;
- };
-
- me.write = function(canvasCtx,text,x,y,spacing,color){
- if (onlyUpperCase) text = text.toUpperCase();
-
- var colorArray = me.colors[color] || me.fontArray;
-
- spacing = spacing || charSpacing;
- x=x||0;
- y=y||0;
- var _x = x;
-
- for (var i = 0, len = text.length; i<len;i++){
- var code = text.charCodeAt(i);
- var c = colorArray[code];
- var w = widthArray[code];
-
- if (!w){
- if (code!==32) console.warn("no font for char " + code);
- w = spaceWidth;
- }
-
- if (c) canvasCtx.drawImage(c,_x,y,w,charHeight);
-
- _x += w + spacing;
-
- }
- };
-
- return me;
-};
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/components/button.js
^
|
@@ -1,221 +0,0 @@
-UI.button = function(x,y,w,h,text){
- var me = UI.element(x,y,w,h);
- me.type = "button";
- me.isActive = false;
-
- var label = text || "";
- var image;
- var backgroundImage;
- var background;
- var activeBackground;
- var hoverBackground;
- var activeImage;
- var hoverImage;
- var font;
- var textAlign = "left";
- var paddingTop = 0;
- var paddingTopActive = 0;
- var paddingLeft = 10;
- var hasHover = true;
-
- var properties = ["left","top","width","height","name","type","image","backgroundImage","background","active","hoverBackground","hoverImage","activeBackground","activeImage","font","label","textAlign","paddingTop","paddingTopActive","paddingLeft","checkbox","radio"];
-
- me.setProperties = function(p){
-
- properties.forEach(function(key){
- if (typeof p[key] != "undefined"){
- // set internal var
- switch(key){
- case "label": label=p[key];break;
- case "font": font=p[key];break;
- case "textAlign": textAlign=p[key];break;
- case "paddingTop": paddingTop=parseInt(p[key]);break;
- case "paddingTopActive": paddingTopActive=parseInt(p[key]);break;
- case "paddingLeft": paddingLeft=parseInt(p[key]);break;
- case "image": image=p[key];break;
- case "backgroundImage": backgroundImage=p[key];break;
- case "activeImage": activeImage=p[key];break;
- case "hoverImage":
- hoverImage=p[key];
- hasHover = true;
- break;
- case "background":
- if (p[key].img){ // scale9
- backgroundImage = undefined;
- background = UI.scale9Panel(0,0,0,0,p[key]);
- background.setParent(me);
- }
- break;
- case "activeBackground":
- if (p[key].img){ // scale9
- activeBackground = UI.scale9Panel(0,0,0,0,p[key]);
- activeBackground.setParent(me);
- }
- break;
- case "hoverBackground":
- if (p[key].img){ // scale9
- hoverBackground = UI.scale9Panel(0,0,0,0,p[key]);
- hoverBackground.setParent(me);
- }
- hasHover = true;
- break;
- default:
- me[key] = p[key];
- }
- }
- });
-
- if (background) background.setSize(me.width,me.height);
- if (activeBackground) activeBackground.setSize(me.width,me.height);
- if (hoverBackground) hoverBackground.setSize(me.width,me.height);
- me.setSize(me.width,me.height);
- me.setPosition(me.left,me.top);
-
- if (p.labels){
- me.onResize = function(){
- var currentLabel = label;
- p.labels.forEach(function(item){
- if (me.width>=item.width) label=item.label;
- });
- if (currentLabel !== label) me.refresh();
- };
- }
-
- };
-
- me.setBackgroundImage = function(img){
- backgroundImage = img;
- me.refresh();
- };
-
- me.setFont = function(f){
- font = f;
- me.refresh();
- };
-
- me.setLabel = function(text){
- label = text;
- me.refresh();
- };
-
- me.toggleActive = function(){
- me.isActive = !me.isActive;
- me.refresh();
- };
-
- me.setActive = function(state){
- if (typeof state == "undefined") state=true;
- me.isActive = !!state;
- me.refresh();
- };
-
- me.setDisabled = function(state){
- if (typeof state == "undefined") state=true;
- me.isDisabled = state;
- if (state) me.isActive = false;
- me.refresh();
- };
-
-
- me.onHover = function(data){
- if (hasHover){
- if (!me.isActive){
- me.isHover = true;
- me.refresh();
- }
- }
- };
-
- me.onHoverExit = function(){
- if (hasHover && me.isHover){
- me.isHover = false;
- me.refresh();
- }
- };
-
- me.render = function(internal){
- if (!me.isVisible()) return;
- if (me.needsRendering){
- internal = !!internal;
- var drawFonts = true;
- //me.ctx.clearRect(0,0,me.width,me.height,backgroundImage);
-
- if (backgroundImage){
- me.ctx.drawImage(backgroundImage,0,0,me.width,me.height);
- }else if (background) {
- if (me.isActive && activeBackground){
- activeBackground.render();
- if (activeImage){
- var imgY = Math.floor((me.height-activeImage.height)/2);
- var imgX = Math.floor((me.width-activeImage.width)/2);
- me.ctx.drawImage(activeImage,imgX,imgY);
- //drawFonts = false;
- }
- }else{
- var stateImage = image;
- if (me.isHover && hoverImage){
- stateImage = hoverImage;
- }
- if (me.isHover && hoverBackground){
- hoverBackground.render();
- }else{
- background.render();
- }
- if (stateImage){
- var imgY = Math.floor((me.height-stateImage.height)/2);
- var imgX = Math.floor((me.width-stateImage.width)/2);
- me.ctx.drawImage(stateImage,imgX,imgY);
- //drawFonts = false;
- }
- }
-
- }else{
- me.ctx.fillStyle = "grey";
- me.ctx.fillRect(0,0,me.width,me.height);
- me.ctx.fillStyle = "black";
- me.ctx.rect(0,0,me.width,me.height);
- me.ctx.stroke();
- }
-
- if (label && drawFonts){
- var fontSize = 10;
- var fontWidth = 8; // TODO: get from font
- var textY = Math.floor((me.height-fontSize)/2) + (me.isActive?paddingTopActive:paddingTop);
- var textX = paddingLeft;
- if (font){
- if (textAlign === "center"){
- var textLength = label.length * fontWidth;
- if (!font.fixedWidth) textLength = font.getTextWidth(label,0);
- textX = Math.floor((me.width - textLength)/2);
- }
- if (textAlign === "right"){
- textLength = label.length * fontWidth;
- if (!font.fixedWidth) textLength = font.getTextWidth(label,0);
- textX = me.width - textLength - 5;
- }
- font.write(me.ctx,label,textX,textY,0);
- }else{
- me.ctx.fillStyle = "white";
- me.ctx.fillText(label,textX,textY);
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/components/checkbox.js
^
|
@@ -1,63 +0,0 @@
-UI.checkbox = function(x,y,w,h){
-
- w = w || 14;
- h = h || 14;
-
- var me = UI.element(x,y,w,h,true);
-
- var properties = ["left","top","width","height","name","type","checked"];
-
- me.setProperties = function(p){
- properties.forEach(function(key){
- if (typeof p[key] != "undefined") me[key] = p[key];
- });
-
- me.setSize(me.width,me.height);
- me.setPosition(me.left,me.top);
-
- };
-
- me.setState = function(checked,internal){
- me.checked = checked;
- me.refresh();
- if (me.onToggle && !internal) me.onToggle(me.checked);
- };
-
- me.onClick=function(e){
- me.setState(!me.checked);
- };
-
- me.check = function(){
- me.setState(true);
- };
- me.unCheck = function(){
- me.setState(false);
- };
- me.toggle = function(){
- me.setState(!me.checked);
- };
-
- me.render = function(internal){
- internal = !!internal;
- if (!me.isVisible()) return;
-
- if (this.needsRendering){
-
- me.clearCanvas();
-
- var stateImage = me.checked ? Y.getImage("checkbox_on") : Y.getImage("checkbox_off");
- me.ctx.drawImage(stateImage,0,0);
-
- }
- this.needsRendering = false;
-
- if (internal){
- return me.canvas;
- }else{
- me.parentCtx.drawImage(me.canvas,me.left,me.top,me.width,me.height);
- }
-
- };
-
- return me;
-};
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/components/checkboxbutton.js
^
|
@@ -1,37 +0,0 @@
-UI.checkboxbutton = function(properties){
- var me = UI.button(0,0,20,20);
- properties = properties || {};
-
- me.setProperties({
- background: properties.background || UI.Assets.buttonDarkBlueScale9,
- hoverBackground:properties.hoverBackground || UI.Assets.buttonDarkBlueActiveScale9,
- activeBackground:properties.activeBackground || UI.Assets.buttonDarkBlueActiveScale9,
- isActive:false,
- textAlign: "left",
- paddingLeft: 30,
- font: properties.font || window.fontFT,
- label: properties.label || "",
- labels: properties.labels || undefined,
- checkbox: properties.checkbox || false
- });
-
-
- me.renderInternal = function(){
- if (me.checkbox){
- var stateImage = me.isActive ? Y.getImage("checkbox_on") : Y.getImage("checkbox_off");
- var margin = 7;
- }else{
- stateImage = me.isActive ? Y.getImage("radio_active") : Y.getImage("radio_inactive");
- margin = 5;
- }
-
- me.ctx.drawImage(stateImage,8,Math.floor(me.height/2)-margin);
- };
-
- me.onDown = function(){
- me.toggleActive();
- if (properties.onDown) properties.onDown.bind(me).call();
- };
-
- return me;
-};
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/components/element.js
^
|
@@ -1,172 +0,0 @@
-UI.element = function(left,top,width,height){
- var me = {};
-
- me.left = left || 0;
- me.top = top || 0;
- me.width = width || 20;
- me.height = height || 20;
-
- me.visible = true;
- me.needsRendering = true;
- me.parentCtx = ctx;
-
- me.canvas = document.createElement("canvas");
- me.canvas.width = width;
- me.canvas.height = height;
- me.ctx = me.canvas.getContext("2d");
- me.children = [];
-
- me.hide = function(){
- me.visible = false;
- if (me.onHide) me.onHide();
- };
- me.show = function(andRefresh,andRefreshAllChildren){
- me.visible = true;
- if (andRefresh) me.refresh(andRefreshAllChildren);
- if (me.onShow) me.onShow();
- };
- me.toggle = function(state){
- if (typeof state === "boolean"){
- if (state) {
- me.show();
- }else{
- me.hide();
- }
- }else{
- if (me.visible){
- me.hide();
- }else{
- me.show();
- }
- }
-
- };
-
- me.isVisible = function(){
- var result = me.visible;
- var parent = me.parent;
- while (result && parent) {
- result = parent.visible;
- parent = parent.parent;
- }
- return result;
- };
-
- me.containsPoint = function(x,y){
- var left = this.left;
- var right = this.left+this.width;
- var top = this.top;
- var bottom = this.top+this.height;
-
- return ((x >= left) && (x <= right) && (y >= top) && (y <= bottom));
- };
-
- me.getElementAtPoint = function(_x,_y){
- _x -= (me.left + (me.scrollOffsetX || 0));
- _y -= (me.top + (me.scrollOffsetY || 0));
-
- if (me.scaleX) _x /= me.scaleX;
- if (me.scaleY) _y /= me.scaleY;
-
- var currentEventTarget;
- for (var i = me.children.length-1; i>=0; i--){
- var elm = me.children[i];
- if (elm.isVisible() && !elm.ignoreEvents && elm.containsPoint(_x,_y)){
- currentEventTarget = elm;
- break;
- }
- }
-
- // TODO: how does this work in multitouch? seems this should be part of the touchData object, no ?
- // Update: assigned it to localX and localY -> update all components ?
- if (currentEventTarget){
- var child = currentEventTarget.getElementAtPoint(_x,_y);
- if (child){
- currentEventTarget = child;
- }else{
- currentEventTarget.eventX = _x;
- currentEventTarget.eventY = _y;
- }
- }else{
- currentEventTarget = me;
- currentEventTarget.eventX = _x;
- currentEventTarget.eventY = _y;
- }
-
-
-
- return currentEventTarget;
- };
-
- me.setParent = function(parentElement){
- me.parent = parentElement;
- if (parentElement){
- me.parentCtx = parentElement.ctx;
- }
- };
-
- me.addChild = function(elm){
- elm.setParent(me);
- elm.zIndex = elm.zIndex || me.children.length;
- me.children.push(elm);
- };
-
- me.getChild = function(name){
- var i = me.children.length;
- var child;
- while (i){
- child = me.children[i];
- if (child && child.name && child.name == name) return child;
- i--;
- }
- };
-
- me.refresh = function(refreshChildren){
- me.needsRendering = true;
- if (refreshChildren){
- console.error("refresh children " + me.name);
- var i = me.children.length;
- var child;
- while (i){
- child = me.children[i];
- if (child) child.refresh();
- i--;
- }
- }
- if (this.visible && me.parent && me.parent.refresh) me.parent.refresh();
- };
-
- me.setSize = function(_w,_h){
- me.width = Math.max(_w,1);
- me.height = Math.max(_h,1);
- me.canvas.width = me.width;
- me.canvas.height = me.height;
- if (me.onResize) me.onResize();
- me.refresh();
- };
- me.setPosition = function(_x,_y){
- me.left = _x;
- me.top = _y;
- me.refresh();
- };
-
- me.setDimensions = function(properties){
- var visible = (typeof properties.visible === "boolean") ? properties.visible : true;
- if (visible){
- if (me.setProperties){
- me.setProperties(properties);
- }else{
- me.setPosition(properties.left,properties.top);
- me.setSize(properties.width,properties.height);
- }
- }else{
- //element.hide();
- }
- };
-
- me.clearCanvas = function(){
- me.ctx.clearRect(0,0,me.width,me.height);
- };
-
- return me;
-};
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/components/image.js
^
|
@@ -1,51 +0,0 @@
-UI.image = function(x,y,w,h,src){
-
- w = w || 14;
- h = h || 14;
-
- var me = UI.element(x,y,w,h,true);
-
- var properties = ["left","top","width","height","name"];
-
- me.setProperties = function(p){
- properties.forEach(function(key){
- if (typeof p[key] != "undefined") me[key] = p[key];
- });
-
- me.setSize(me.width,me.height);
- me.setPosition(me.left,me.top);
- };
-
- var baseImage = Y.getImage(src);
-
- me.render = function(internal){
- internal = !!internal;
- if (!me.isVisible()) return;
-
- if (this.needsRendering){
- me.clearCanvas();
- if (baseImage)
- switch (me.scale){
- case "stretch":
- me.ctx.drawImage(baseImage,0,0,me.width,me.height);
- break;
- default:
- var marginW = (me.width-baseImage.width)>>1;
- var marginH = (me.height-baseImage.height)>>1;
- if (me.verticalAlign === "top") marginH=0;
- if (me.horizintalAlign === "right") marginW = me.width-baseImage.width;
- me.ctx.drawImage(baseImage,marginW,marginH);
- }
- }
- this.needsRendering = false;
-
- if (internal){
- return me.canvas;
- }else{
- me.parentCtx.drawImage(me.canvas,me.left,me.top,me.width,me.height);
- }
-
- };
-
- return me;
-};
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/components/inputbox.js
^
|
@@ -1,201 +0,0 @@
-UI.inputbox = function(initialProperties){
- var me = UI.element();
- var properties = ["left","top","width","height","name","type","onChange","onSubmit","backgroundImage","trackUndo","undoLabel","undoInstrument"];
- var value = "";
- var prevValue = "";
- var isActive;
- var isCursorVisible;
- var cursorPos;
- var backgroundImage = "panel_dark";
-
- me.setProperties = function(p){
- properties.forEach(function(key){
- if (typeof p[key] != "undefined") me[key] = p[key];
- });
-
- me.setSize(me.width,me.height);
- me.setPosition(me.left,me.top);
- if (background) background.setSize(me.width,me.height);
-
- if (p["value"]) value = p["value"];
- if (p["backgroundImage"]) backgroundImage = p["backgroundImage"];
- };
-
- if (initialProperties) me.setProperties(initialProperties);
-
- var background = UI.scale9Panel(0,0,me.width,me.height,{
- img: Y.getImage(backgroundImage),
- left:3,
- top:3,
- right:2,
- bottom: 2
- });
- background.ignoreEvents = true;
- me.addChild(background);
-
- me.render = function(internal){
- internal = !!internal;
- if (!me.isVisible()) return;
-
- if (this.needsRendering){
- background.render();
-
- var textX = 0;
- if (value && fontMed){
- textX = 10;
- var textY = 6;
- fontMed.write(me.ctx,value,textX,textY,0);
- }
-
- if (isCursorVisible){
- me.ctx.fillStyle = "rgba(255,255,255,0.7)";
- var charWidth = 9;
- var cursorX = textX + cursorPos*charWidth + 8;
- me.ctx.fillRect(cursorX,4,2,me.height-8);
- }
-
- }
- this.needsRendering = false;
-
- if (internal){
- return me.canvas;
- }else{
- me.parentCtx.drawImage(me.canvas,me.left,me.top,me.width,me.height);
- }
-
- };
-
- me.setValue = function(newValue,internal){
- if (newValue!==value) {
- prevValue=value;
- }
- value = newValue;
- me.refresh();
-
- if (!internal && me.onChange) {
- if (me.trackUndo){
- var editAction = StateManager.createValueUndo(me);
- editAction.name= me.undoLabel || "Change " + me.name;
- if (me.undoInstrument) {
- editAction.instrument = Tracker.getCurrentInstrumentIndex();
- editAction.id += editAction.instrument;
- }
- StateManager.registerEdit(editAction);
- }
- me.onChange(value);
- }
- };
-
- me.getValue = function(){
- return value;
- };
-
- me.getPrevValue = function(){
- return prevValue;
- }
-
- me.getItemAtPosition = function(x,y){
- y = y-startY;
- var index = Math.floor(y/lineHeight) + visibleIndex;
- if (index>=0 && index<items.length){
- return(items[index]);
- }else{
- return undefined;
- }
- };
-
- me.onClick = function(){
- if (!isActive){
- me.activate();
- }
- };
-
- me.activate = function(){
- if (isActive) return;
- cursorPos = value ? value.length-1 : -1;
- isActive = true;
- Input.setFocusElement(me);
- pingCursor();
- };
-
- me.deActivate = function(andSubmit){
- if (isActive){
- isCursorVisible = false;
- isActive = false;
- me.refresh();
- Input.clearFocusElement();
- if (andSubmit && me.onSubmit){
- me.onSubmit(value);
- }
- }
- };
-
- me.onKeyDown = function(keyCode,event){
- var handled = false;
- switch(keyCode){
- case 8:// backspace
- if (value) {
- if (cursorPos>=0){
- me.setValue(value.substr(0,cursorPos) + value.substr(cursorPos+1));
- cursorPos--;
- }
- }
- handled = true;
- break;
- case 9:// tab
- case 13:// enter
- case 27:// esc
- me.deActivate(keyCode===13);
- handled = true;
- break;
- case 37:// left
- if (cursorPos>=0) cursorPos--;
- me.refresh();
- handled = true;
- break;
- case 39:// right
- if (value) {
- cursorPos++;
- cursorPos = Math.min(cursorPos,value.length-1);
- me.refresh();
- }
- handled = true;
- break;
- case 46: // delete
- if (value) {
- if (cursorPos<value.length-1){
- me.setValue(value.substr(0,cursorPos+1) + value.substr(cursorPos+2));
- }
- }
- handled = true;
- break;
- case 89: ///y - redo
- case 90: //z - undo
- if (Input.isMetaKeyDown()){
- me.deActivate();
- return;
- }
- break;
- }
-
- if (!handled && keyCode>31){
- var key = event.key;
- if (key.length === 1 && key.match(/[a-z0-9\._:\-\ #]/i)){
- me.setValue(value.substr(0,cursorPos+1) + key + value.substr(cursorPos+1));
- cursorPos++;
- }
- handled = true;
- }
-
- return handled;
- };
-
- var pingCursor = function(){
- if (!isActive) return;
- isCursorVisible = !isCursorVisible;
- me.refresh();
- setTimeout(pingCursor,300);
- };
-
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/components/knob.js
^
|
@@ -1,168 +0,0 @@
-UI.knob = function(initialProperties){
- var me = UI.element();
- me.type = "knob";
-
- var label = "";
- var font;
- var textAlign = "left";
- var paddingTop = 0;
-
- var angle = 0;
- var value = 50;
- var startValue = value;
-
- var min = -160;
- var max = 160;
-
- var properties = ["left","top","width","height","name","font","label","textAlign","paddingTop","disabled"];
-
- var img = Y.getImage("knob_back");
- var imgDisabled = Y.getImage("knob_back_inactive");
- var front = Y.getImage("knob_front");
- var padding = 16;
- me.width = img.width + (padding*2);
- me.height = img.height + (padding*2);
- me.setSize(me.width,me.height);
-
- me.setProperties = function(p){
-
- properties.forEach(function(key){
- if (typeof p[key] != "undefined"){
- // set internal var
- switch(key){
- case "label": label=p[key];break;
- case "font": font=p[key];break;
- case "textAlign": textAlign=p[key];break;
- case "paddingTop": paddingTop=parseInt(p[key]);break;
- case "disabled": me.isDisabled = !!p[key];
- default:
- me[key] = p[key];
- }
- }
- });
-
- me.setSize(me.width,me.height);
- me.setPosition(me.left,me.top);
-
- };
-
- me.setFont = function(f){
- font = f;
- me.refresh();
- };
-
- me.setLabel = function(text){
- label = text;
- me.refresh();
- };
-
- me.getLabel = function(){
- return label;
- };
-
- me.setValue = function(newValue){
- angle = newValue;
- me.refresh();
- };
-
- me.getValue = function(){
- return value;
- }
-
-
- me.render = function(internal){
- if (me.needsRendering){
- internal = !!internal;
-
- me.clearCanvas();
-
- var scale = 1;
- scale = 0.8;
-
- var imgw = img.width * scale;
- var imgh = img.height * scale;
-
- var w = imgw / 2;
- var h = imgh / 2;
-
- //me.ctx.drawImage(img,0,0);
-
- me.ctx.save();
- me.ctx.translate(padding+w,padding+h);
- me.ctx.drawImage(me.isDisabled ? imgDisabled : img,-w,-h,imgw,imgh);
-
-
- // value is from 0 to 100;
- //var value = angle+50;
-
- var minAngle = -230;
- var maxAngle = 50;
-
- var max = Math.abs(minAngle) + maxAngle;
- var angleValue = minAngle + (value/100)*max;
-
- var startAngle = minAngle * Math.PI/180;
- var endAngle = angleValue * Math.PI/180;
-
- me.ctx.fillStyle = me.isDisabled ? "rgba(170,170,170,0.5)" : "rgba(130,200,255,0.5)";
- me.ctx.beginPath();
- me.ctx.arc(0,0,30,startAngle,endAngle, false); // outer (filled)
- me.ctx.arc(0,0,25,endAngle,startAngle, true); // outer (unfills it)
- me.ctx.fill();
-
-
- var angle = (value/100) * 320 - 160;
- me.ctx.rotate(angle * Math.PI/180);
- me.ctx.drawImage(front,-w,-h,imgw,imgh);
-
- me.ctx.restore();
-
- if (label){
- var labelX = (me.width - (label.length*6))/2;
- labelX = padding + w - (label.length*3);
- fontSmall.write(me.ctx,label,labelX,imgh + padding + 4);
- }
-
- }
- me.needsRendering = false;
-
- if (internal){
- return me.canvas;
- }else{
- me.parentCtx.drawImage(me.canvas,me.left,me.top,me.width,me.height);
- }
- };
-
- me.onDragStart = function(){
- startValue = value;
- };
-
- me.onDrag=function(touchData){
-
- if (me.isDisabled) return;
-
- var delta = touchData.deltaY;
- value = startValue + delta;
- value = Math.max(value,0);
- value = Math.min(value,100);
- me.refresh();
-
- if (me.onChange) me.onChange(value);
- };
-
- me.onClick = function(e){
- if (Math.abs(e.x-e.startX)<3 && Math.abs(e.y-e.startY)<3){
- me.toggleDisabled();
- }
- };
-
- me.toggleDisabled = function(){
- me.isDisabled = !me.isDisabled;
- if (me.onToggle) me.onToggle(!me.isDisabled);
- me.refresh();
- };
-
- return me;
-};
-
-
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/components/label.js
^
|
@@ -1,98 +0,0 @@
-UI.label = function(initialProperties){
- var me = UI.element();
- me.type = "label";
-
- var label = "";
- var font;
- var textAlign = "left";
- var paddingTop = 0;
-
- var properties = ["left","top","width","height","name","font","label","textAlign","paddingTop"];
-
- me.setProperties = function(p){
-
- properties.forEach(function(key){
- if (typeof p[key] != "undefined"){
- // set internal var
- switch(key){
- case "label": label=p[key];break;
- case "font": font=p[key];break;
- case "textAlign": textAlign=p[key];break;
- case "paddingTop": paddingTop=parseInt(p[key]);break;
- default:
- me[key] = p[key];
- }
- }
- });
-
- me.setSize(me.width,me.height);
- me.setPosition(me.left,me.top);
-
- if (p.labels){
- me.onResize = function(){
- var currentLabel = label;
- p.labels.forEach(function(item){
- if (me.width>=item.width) label=item.label;
- });
- if (currentLabel !== label) me.refresh();
- };
- }
-
- };
-
- me.setFont = function(f){
- font = f;
- me.refresh();
- };
-
- me.getFont = function(){
- return font;
- };
-
- me.setLabel = function(text){
- label = text;
- me.refresh();
- };
-
- me.render = function(internal){
- if (!me.isVisible()) return;
- if (me.needsRendering){
- internal = !!internal;
-
- me.clearCanvas();
-
- if (label){
- var fontSize = 10;
- var textY = Math.floor((me.height-fontSize)/2) + paddingTop;
- var textX = 10;
- if (font){
- var textLength;
- if (textAlign == "center"){
- textLength = font.getTextWidth(label,0);
- textX = Math.floor((me.width - textLength)/2);
- }
- if (textAlign == "right"){
- textLength = font.getTextWidth(label,0);
- textX = Math.floor(me.width - textLength) - 10;
- }
- font.write(me.ctx,label,textX,textY,0);
- }else{
- me.ctx.fillStyle = "white";
- me.ctx.fillText(label,textX,textY);
- }
- }
-
- }
- me.needsRendering = false;
-
- if (internal){
- return me.canvas;
- }else{
- me.parentCtx.drawImage(me.canvas,me.left,me.top,me.width,me.height);
- }
- };
-
- if (initialProperties) me.setProperties(initialProperties);
-
- return me;
-};
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/components/listbox.js
^
|
@@ -1,357 +0,0 @@
-UI.listbox = function(x,y,w,h){
- var me = UI.element(x,y,w,h,true);
- me.selectedIndex = 0;
- var previousSelectedIndex = 0;
-
- var font = window.fontMed;
- var fontSmall = window.fontSmall;
-
- var items = [];
- var visibleIndex = 0;
- var visibleIitems = 0;
- var lineHeight = 18;
- var startY = 10;
- var scrollBarItemOffset = 0;
- var hoverIndex;
- var prevHoverIndex;
- var properties = ["left","top","width","height","name","type","onChange","selectedIndex","centerSelection"];
-
- me.setProperties = function(p){
-
- properties.forEach(function(key){
- if (typeof p[key] != "undefined") me[key] = p[key];
- });
-
- if (typeof p["font"] != "undefined") font = p["font"];
-
-
- me.setSize(me.width,me.height);
- me.setPosition(me.left,me.top);
- background.setSize(me.width,me.height);
-
- setScrollBarPosition();
-
- buttonUp.setProperties({
- left: me.width - 18,
- top: 2,
- width: 16,
- height: 16,
- label:"↑"
- });
-
- buttonDown.setProperties({
- left: me.width - 18,
- top: me.height - 19,
- width: 16,
- height: 16,
- label:"↓"
- });
-
- if (me.centerSelection){
- startY = Math.ceil((me.height - lineHeight)/2);
- }
- };
-
- me.setSelectedIndex = function(index,internal){
- me.selectedIndex = index;
- if (me.centerSelection) visibleIndex = me.selectedIndex;
- setScrollBarPosition();
- me.refresh();
- if (!internal && me.onChange && previousSelectedIndex!=me.selectedIndex) me.onChange();
- previousSelectedIndex = me.selectedIndex;
- };
- me.getSelectedIndex = function(){
- return me.selectedIndex;
- };
-
- var background = UI.scale9Panel(0,0,me.width,me.height,{
- img: Y.getImage("panel_dark"),
- left:3,
- top:3,
- right:2,
- bottom: 2
- });
- background.ignoreEvents = true;
- me.addChild(background);
-
- var buttonUp = UI.Assets.generate("button20_20");
- me.addChild(buttonUp);
- buttonUp.onClick = function(){
- me.navigateUp();
- };
-
- var buttonDown = UI.Assets.generate("button20_20");
- me.addChild(buttonDown);
- buttonDown.onClick = function(){
- me.navigateDown();
- };
-
- var scrollBar = UI.scale9Panel(w-28,18,16,h-3,{
- img: Y.getImage("bar"),
- left:2,
- top:2,
- right:3,
- bottom: 3
- });
-
- scrollBar.onDragStart=function(){
- scrollBar.startDragIndex = visibleIndex;
-
- };
-
- scrollBar.onDrag=function(touchData){
- if (items.length>visibleIitems && scrollBarItemOffset){
- var delta = touchData.deltaY;
- visibleIndex = Math.floor(scrollBar.startDragIndex + delta/scrollBarItemOffset);
- visibleIndex = Math.min(visibleIndex,getMaxIndex());
- visibleIndex = Math.max(visibleIndex,0);
-
- if (me.centerSelection) {
- me.setSelectedIndex(visibleIndex);
- }else{
- setScrollBarPosition();
- }
- }
- };
-
- me.addChild(scrollBar);
-
- me.navigateUp = function(){
- if (visibleIndex>0){
- visibleIndex--;
- setScrollBarPosition();
- }
- if (me.centerSelection) {
- me.setSelectedIndex(visibleIndex);
- }else{
- me.refresh();
- }
- };
-
- me.navigateDown = function(){
- if (visibleIndex<getMaxIndex()){
- visibleIndex++;
- setScrollBarPosition();
- }
-
- if (me.centerSelection) {
- me.setSelectedIndex(visibleIndex);
- }else{
- me.refresh();
- }
- };
-
- me.render = function(internal){
- internal = !!internal;
- if (!me.isVisible()) return;
-
- if (this.needsRendering){
- background.render();
- var line = Y.getImage("line_hor");
- for (var i = 0, len = items.length;i<len;i++){
- var item = items[i];
- var textX = 10;
- var indent = 10;
- var highlightY = 6;
- var textY = startY + ((i-visibleIndex)*lineHeight);
-
- if ((textY>0) && (textY<me.height)){
-
- var targetCtx = me.ctx;
- var _y = textY;
- var clip = textY>=me.height-lineHeight;
- var itemCanvas;
-
- if(clip){
- var lastItemHeight = me.height-textY+1;
- if (lastItemHeight>1){
- itemCanvas = document.createElement("canvas");
- itemCanvas.width = me.width-2;
- itemCanvas.height = lastItemHeight;
- targetCtx = itemCanvas.getContext("2d");
- _y = 4;
- highlightY = 6;
- }else {
- targetCtx = undefined;
- }
- }
-
- if (targetCtx){
- if (hoverIndex+visibleIndex === i){
- targetCtx.fillStyle = 'rgba(110,130,220,0.07)';
- targetCtx.fillRect(0,_y-highlightY,me.width-2,lineHeight);
- }
-
- if (me.selectedIndex === i){
- targetCtx.fillStyle = 'rgba(110,130,220,0.15)';
- targetCtx.fillRect(0,_y-highlightY,me.width-2,lineHeight);
- }
-
-
-
- if (item.level) textX += item.level*indent;
-
- if (item.icon){
- targetCtx.drawImage(item.icon,textX,_y-2);
- textX += item.icon.width + 4;
- }
-
- var text = item.label;
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/components/modalDialog.js
^
|
@@ -1,157 +0,0 @@
-UI.modalDialog = function(initialProperties){
- var me = UI.element();
- var text = "";
- var inputBox;
- var properties = ["left","top","width","height","name","ok","cancel","input"];
-
- me.setProperties = function(p){
-
- properties.forEach(function(key){
- if (typeof p[key] !== "undefined") me[key] = p[key];
- });
-
- me.setSize(me.width,me.height);
- me.setPosition(me.left,me.top);
-
- var panelHeight = 200;
- if (me.height<panelHeight) panelHeight = me.height - 20;
-
- var panelWidth = Math.max(Math.floor(me.width/2),380);
-
- background.setSize(panelWidth,panelHeight);
- background.setPosition(Math.floor((me.width-panelWidth)/2),Math.floor((me.height-panelHeight)/2));
-
- if (me.cancel){
- okButton.setPosition(background.left + Math.floor(background.width/2) - 110,background.top + background.height - 40);
- cancelButton.setPosition(background.left + Math.floor(background.width/2) + 10,background.top + background.height - 40);
- }else{
- okButton.setPosition(background.left + Math.floor(background.width/2) - 50,background.top + background.height - 40);
- }
-
- if (me.input){
- if (!inputBox){
- inputBox = UI.inputbox({
- name: "dialoginput",
- width: 200,
- height: 28,
- value: "",
- onChange:function(){
- me.inputValue = inputBox.getValue();
- },
- onSubmit:function(value){
- me.inputValue = value;
- me.onKeyDown(13);
- }
- });
- me.addChild(inputBox);
- setTimeout(function(){
- inputBox.activate();
- },0);
- }
- inputBox.setProperties({
- left: background.left + 50,
- top: background.top + background.height - 80,
- width: background.width-100,
- height: 28
- })
-
- }
-
- };
-
- var background = UI.scale9Panel(0,0,Math.floor(me.width/2),200,UI.Assets.panelMainScale9);
-
- background.ignoreEvents = true;
- me.addChild(background);
-
- var okButton = UI.Assets.generate("buttonLight");
- okButton.setProperties({
- name: "okbutton",
- label: "OK",
- width: 100,
- height: 28
- });
- me.addChild(okButton);
-
- var cancelButton = UI.Assets.generate("buttonLight");
- cancelButton.setProperties({
- name: "cancelbutton",
- label: "Cancel",
- width: 100,
- height: 28
- });
- me.addChild(cancelButton);
-
-
- // will be overriden if other functionality needed
- me.onKeyDown = function(keyCode){
- switch (keyCode){
- case 13:
- me.close();
- return true;
- }
- }
-
- me.render = function(internal){
- internal = !!internal;
- if (this.needsRendering){
-
- me.clearCanvas();
- me.ctx.fillStyle = "rgba(0,0,0,0.6)";
- me.ctx.fillRect(0,0,me.width,me.height);
-
- background.render();
-
- if (text){
- var lines = text.split("/");
- var textY = background.top + 20;
- var textX = background.left + 10;
-
- var maxWidth = background.width - 20;
-
- lines.forEach(function(line){
- var textX = 10;
- if (fontFT){
- var textLength = fontFT.getTextWidth(line,0);
- textX = background.left + 10 + Math.floor((maxWidth - textLength)/2);
- fontFT.write(me.ctx,line,textX,textY,0);
- }
- textY += 12;
- });
- }
-
- if (me.ok) okButton.render();
- if (me.cancel) cancelButton.render();
-
- if (inputBox){
- inputBox.render();
- }
-
- }
- this.needsRendering = false;
-
- if (internal){
- return me.canvas;
- }else{
- me.parentCtx.drawImage(me.canvas,me.left,me.top,me.width,me.height);
- }
-
- };
-
- me.setText = function(newText){
- text = newText;
- };
-
- me.getText= function(){
- return text;
- };
-
- me.close = function(){
- me.hide();
- if (me.onClose) me.onClose();
- UI.removeModalElement();
- delete me;
- };
-
- return me;
-};
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/components/numberdisplay.js
^
|
@@ -1,310 +0,0 @@
-UI.numberDisplay = function(initialProperties){
- var me = UI.element();
- me.type = "numberDisplay";
- me.isActive = false;
- me.isDisabled = false;
- me.padLength = 4;
-
- var value = 0;
- var prevValue = 0;
- var min = 0;
- var max = 100;
- var step = 1;
- var padChar = " ";
- var padding = 0;
- var hasFocus;
- var cursorPos=0 ;
- var isCursorVisible;
- var onChange;
- var fontSize="medium";
- var font;
- var autoPadding = false;
-
- var fontOffsets={
- "small":{x:4,y:3,c:0},
- "medium":{x:6,y:7,c:0},
- "big":{x:7,y:4,c:-2},
- }
- var fontOffset = fontOffsets.medium;
-
- var properties = ["left","top","width","height","name","value","onChange","min","max","step","padLength","size","autoPadding","trackUndo","undoLabel","undoInstrument"];
- if (initialProperties) setPropertiesValues(initialProperties);
-
- me.setProperties = function(p){
- setPropertiesValues(p);
- me.setSize(me.width,me.height);
- me.setPosition(me.left,me.top);
-
- if (max>9999 && me.padLength<5) me.padLength = 5;
- };
-
- function setPropertiesValues(p){
- properties.forEach(function(key){
- if (typeof p[key] != "undefined"){
- switch(key){
- case "value": value=p[key];break;
- case "onChange" : onChange=p[key];break;
- case "min" : min=p[key];break;
- case "max" : max=p[key];break;
- case "step" : step=p[key];break;
- case "size" : fontSize=p[key];break;
- case "autoPadding" : autoPadding=!!p[key];break;
- default:
- me[key] = p[key];
- }
- }
- });
- font = fontSize==="big"?window.fontLedBig:window.fontLed;
- fontOffset = fontOffsets[fontSize];
- }
-
- me.setValue = function(val,internal){
- if (val!==value) {
- prevValue=value;
- }
- value = val;
- me.refresh();
- if (!internal && onChange) {
- if (me.trackUndo){
- var editAction = StateManager.createValueUndo(me);
- editAction.name= me.undoLabel || "Change " + me.name;
- if (me.undoInstrument) {
- editAction.instrument = Tracker.getCurrentInstrumentIndex();
- editAction.id += editAction.instrument;
- }
- StateManager.registerEdit(editAction);
- }
- onChange(value);
- }
- };
-
- me.updateValue = function(newValue){
- if (newValue>max) newValue=max;
- if (newValue<min) newValue=min;
- me.setValue(newValue);
- }
-
- me.getValue = function(){
- return value;
- }
-
- me.getPrevValue = function(){
- return prevValue;
- }
-
-
- me.setDisabled = function(state){
- if (typeof state == "undefined") state=true;
- me.isDisabled = state;
- if (state) me.isActive = false;
- me.refresh();
- };
-
- me.setFocus = function(state){
- hasFocus = !!state;
- if (hasFocus){
- Input.setFocusElement(me);
- cursorPos = padValue().length
- pingCursor();
- }else{
- Input.clearFocusElement();
- }
- me.refresh();
- }
-
- me.togglFocus = function(){
- me.setFocus(!hasFocus);
- }
-
- me.setMax = function(newMax,internal){
- max = newMax;
- if (!internal && value>max) me.setValue(max);
- };
-
- me.setMin = function(newMin){
- min = newMin;
- if (value<min) me.setValue(min);
- };
-
- me.onClick = function(){
- if (me.isDisabled) return;
- if (!onChange) return;
- me.togglFocus();
- }
-
- me.onMouseWheel = function(touchData){
- if (me.isDisabled) return;
- if (!onChange) return;
- if (touchData.mouseWheels[0] > 0){
- me.updateValue(value+step);
- }else{
- me.updateValue(value-step);
- }
- };
-
- me.onKeyDown = function(code,event){
- var keyCode = event.keyCode;
- var key = event.key;
-
- switch (keyCode){
- case 8:// backspace
- extract(-1);
- break;
- case 9:
- case 13:
- case 27:
- Input.clearFocusElement();
- break;
- case 37:
- setCursorPos(cursorPos-1);
- break;
- case 38:
- me.updateValue(value+1);
- break;
- case 39:
- setCursorPos(cursorPos+1);
- break;
- case 40:
- me.updateValue(value-1);
- break;
- case 46: // Del
- extract(0);
- break;
- }
-
-
- switch (key){
- case "0":
- case "1":
- case "2":
- case "3":
- case "4":
- case "5":
- case "6":
- case "7":
- case "8":
- case "9":
- case "-":
- inject(key);
- break;
- }
-
-
-
-
- //console.error(keyCode,key);
- return true;
- }
-
- me.onResize = function(){
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/components/panel.js
^
|
@@ -1,69 +0,0 @@
-UI.panel = function(x,y,w,h){
- var me = UI.element(x,y,w,h);
- me.type = "panel";
- var properties = ["left","top","width","height","name","type","zIndex","backgroundColor","borderColor"];
-
- me.setProperties = function(p){
-
- properties.forEach(function(key){
- if (typeof p[key] != "undefined") me[key] = p[key];
- });
-
- me.setSize(me.width,me.height);
- me.setPosition(me.left,me.top);
-
- if (me.setLayout) me.setLayout(me.left,me.top,me.width, me.height);
- };
-
- me.render = function(internal){
-
- if (!me.isVisible()) return;
- internal = !!internal;
-
- if (this.needsRendering){
-
- if (me.renderOverride){
- me.renderOverride();
- }else{
- me.clearCanvas();
-
- if (me.backgroundColor){
- me.ctx.fillStyle = me.backgroundColor;
- me.ctx.fillRect(0,0,me.width,me.height);
- }
- if (me.borderColor){
- me.ctx.fillStyle = me.borderColor;
- me.ctx.rect(0,0,me.width,me.height);
- me.ctx.stroke();
- }
-
- this.children.forEach(function(elm){
- elm.render();
- });
-
- if (me.renderInternal) me.renderInternal();
- }
- }
-
- this.needsRendering = false;
- if (internal){
- return me.canvas;
- }else{
- me.parentCtx.drawImage(me.canvas,me.left,me.top,me.width,me.height);
- }
- };
-
- me.onClick=function(){
-
- };
-
- me.sortZIndex = function(){
- // sort reverse order as children are rendered bottom to top;
- this.children.sort(function(a, b){
- return a.zIndex == b.zIndex ? 0 : (a.zIndex > b.zIndex) || -1;
- });
- };
-
-
- return me;
-};
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/components/radiogroup.js
^
|
@@ -1,164 +0,0 @@
-UI.radioGroup = function(x,y,w,h){
- var me = UI.element(x,y,w,h,true);
-
- var items = [];
-
- var previousSelectedIndex;
-
- var startY = 0;
- var size = "small";
- var align = "right";
- var buttonY = -3;
- var itemHeight = 13;
- var divider;
- var type="radio";
- var highLightSelection;
-
- var properties = ["left","top","width","height","name"];
-
- me.setProperties = function(p){
- properties.forEach(function(key){
- if (typeof p[key] != "undefined") me[key] = p[key];
- });
-
- me.setSize(me.width,me.height);
- me.setPosition(me.left,me.top);
-
- if (p.align) align = p.align;
- if (p.size) size = p.size;
- if (p.divider) divider = p.divider;
- if (p.type) type = p.type;
- if (p.highLightSelection) highLightSelection = true;
- };
-
- me.onClick=function(e){
- me.setSelectedIndex(Math.floor((me.eventY-startY+buttonY)/itemHeight));
- };
-
- me.setSelectedIndex = function(index,internal){
- index = Math.min(index,items.length-1);
- for (var i = 0, len = items.length; i<len;i++){
- items[i].active = i == index;
- }
- me.selectedIndex = index;
- me.refresh();
-
- if (!internal && me.onChange && previousSelectedIndex!=me.selectedIndex) me.onChange(me.selectedIndex);
- previousSelectedIndex = me.selectedIndex;
- };
-
- me.getSelectedIndex = function(){
- return me.selectedIndex;
- };
-
- me.getSelectedItem = function(){
- return items[me.selectedIndex];
- };
-
- me.render = function(internal){
- internal = !!internal;
- if (!me.isVisible()) return;
-
- if (this.needsRendering){
-
- me.clearCanvas();
-
- var buttonActive = Y.getImage("radio_active");
- var buttonInactive = Y.getImage("radio_inactive");
- itemHeight = Math.floor(me.height / items.length);
-
- var font = fontSmall;
- var textX = 5;
- var buttonX = me.width - 15;
- buttonY = -3;
-
- if (size === "med"){
- buttonActive = Y.getImage("radio_big_active");
- buttonInactive = Y.getImage("radio_big_inactive");
- buttonY = -2;
- buttonX = me.width - 20;
- font = fontMed;
- }
-
- var paddingTop = Math.floor((itemHeight - font.charHeight) / 2);
-
- if (align === "left"){
- textX = 30;
- buttonX = 5;
- }
-
-
- var line = Y.getImage("line_hor");
-
- for (var i = 0, len = items.length;i<len;i++){
- var item = items[i];
- var itemTop = startY + (i*itemHeight);
- var textTop = itemTop + paddingTop;
-
- if (divider == "line" && i>0){
- me.ctx.drawImage(line,0,itemTop,me.width,2);
- }
-
- if (font){
- var label = item.label;
- if (align === "right"){
- textX = buttonX - font.getTextWidth(item.label,0) - 4;
- if (textX<0 && item.labels){
- var rest = buttonX - 4;
- item.labels.forEach(function(lb){
- if (lb.width<=rest) label = lb.label;
- });
- textX = buttonX - font.getTextWidth(label,0) - 4;
- }
- }
-
- font.write(me.ctx,label,textX,textTop,0);
- }
-
- if (item.active){
-
- if (highLightSelection){
- me.ctx.fillStyle = 'rgba(100,100,255,0.1';
- me.ctx.fillRect(0,itemTop,me.width-2,itemHeight);
- }
-
- me.ctx.drawImage(buttonActive,buttonX,textTop + buttonY);
- }else{
- me.ctx.drawImage(buttonInactive,buttonX,textTop + buttonY);
- }
- }
-
- }
- this.needsRendering = false;
-
- if (internal){
- return me.canvas;
- }else{
- me.parentCtx.drawImage(me.canvas,me.left,me.top,me.width,me.height);
- }
-
- };
-
- me.setItems = function(newItems){
- me.selectedIndex = undefined;
- items = newItems;
- for (var i = 0, len = items.length; i<len;i++){
- if (items[i].active) me.selectedIndex = i;
- }
-
- me.refresh();
- };
-
- me.getItemAtPosition = function(x,y){
- y = y-startY;
- var index = Math.floor(y/itemHeight) + visibleIndex;
- if (index>=0 && index<items.length){
- items[index].index = index;
- return(items[index]);
- }else{
- return undefined;
- }
- };
-
- return me;
-};
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/components/rangeSlider.js
^
|
@@ -1,200 +0,0 @@
-UI.rangeSlider = function(initialProperties){
- var me = UI.element();
-
- me.type = "rangeslider";
- var properties = ["left","top","width","height","name","onChange"];
-
- var knob = Y.getImage("slider_knob");
- var knobVert = Y.getImage("slider_knob_vert");
- var backImage = Y.getImage("slider_back");
- var backImageVert = Y.getImage("slider_back_vert");
- var vertical = false;
- var maxHeight = 0;
-
- var back = UI.scale9Panel(0,0,0,0,{
- img: backImage,
- left: 4,
- right: 4,
- top: 0,
- bottom: 0,
- scale: "repeatX"
- });
- me.addChild(back);
- back.ignoreEvents = true;
-
- var knobLeft = 0;
- var knobTop = 0;
- var startKnobLeft = 0;
- var startKnobTop = 0;
-
- var min = 0;
- var max = 100;
- var value = 0;
-
- me.setProperties = function(p){
- properties.forEach(function(key){
- if (typeof p[key] != "undefined") me[key] = p[key];
- });
-
- me.setSize(me.width,me.height);
- me.setPosition(me.left,me.top);
-
- if (typeof p.min !== "undefined") min=p.min;
- if (typeof p.max !== "undefined") max=p.max;
- if (typeof p.value !== "undefined") me.setValue(p.value,true);
- if (typeof p.vertical !== "undefined") {
- vertical = !!p.vertical;
-
- back.setProperties({
- img: backImageVert,
- imgLeft: 0,
- imgRight: 0,
- imgTop: 4,
- imgBottom: 4,
- scale: "repeatY"
- });
-
- }
- };
-
- me.getValue = function(){
- return value;
- };
-
- me.setValue = function(v,internal){
-
- if (v>max) v = max;
- if (v<min) v=min;
-
- var hasChanged = !internal && value!==v;
- value = v;
-
- if (vertical){
- var relMax = max - min;
- knobTop = maxHeight * (1 - (v-min)/relMax);
- }else{
- var maxWidth = me.width-knob.width;
- knobLeft = maxWidth * v/max;
- }
-
- me.refresh();
-
- if (hasChanged && !internal){
- if (me.onChange) me.onChange(value);
- }
- };
-
- me.setMax = function(newMax,skipCheck){
- max = newMax;
- if (!skipCheck && value>max) me.setValue(max);
- };
- me.setMin = function(newMin,skipCheck){
- min = newMin;
- if (!skipCheck && value<min) me.setValue(min);
- };
-
-
- me.render = function(internal){
- if (me.needsRendering){
- internal = !!internal;
- me.clearCanvas();
-
- var cx = Math.floor(me.width/2) + 3;
- var cw = 6;
- var ch = me.height;
- if (min<0) ch = Math.floor(ch/2);
-
- me.ctx.fillStyle = "rgba(255,255,255,0.1";
-
- me.ctx.beginPath();
- me.ctx.moveTo(cx, ch);
- me.ctx.lineTo(cx, 2);
- me.ctx.lineTo(cx+cw, 2);
- me.ctx.fill();
-
- if (min<0){
- me.ctx.beginPath();
- me.ctx.moveTo(cx-6,ch);
- me.ctx.lineTo(cx-6, me.height);
- me.ctx.lineTo(cx-6-cw, me.height);
- me.ctx.fill();
- }else{
- me.ctx.beginPath();
- me.ctx.moveTo(cx-6,ch);
- me.ctx.lineTo(cx-6, 2);
- me.ctx.lineTo(cx-6-cw, 2);
- me.ctx.fill();
- }
-
- back.render();
- if (vertical){
- me.ctx.drawImage(knobVert,-1,knobTop,knobVert.width,knobVert.height);
- }else{
- me.ctx.drawImage(knob,knobLeft,-1,knob.width,knob.height);
- }
- }
- me.needsRendering = false;
-
- if (internal){
- return me.canvas;
- }else{
- me.parentCtx.drawImage(me.canvas,me.left,me.top,me.width,me.height);
- }
- };
-
- me.onResize = function(){
-
- maxHeight = me.height-knobVert.height+3;
-
- back.setSize(me.width,me.height);
- me.setValue(value,true);
- };
-
- me.onDragStart = function(){
- startKnobLeft = knobLeft;
- startKnobTop = knobTop;
- };
-
- me.onDrag=function(touchData){
- if(vertical){
- var delta = touchData.deltaY;
- knobTop = startKnobTop + delta;
- if (knobTop<0) knobTop=0;
-
- if (knobTop> maxHeight) knobTop=maxHeight;
-
- if (maxHeight>knob.height){
- var relMax = max - min;
- var relValue = relMax - (Math.round(relMax * knobTop/maxHeight));
- value = relValue + min;
- }else{
- value = max;
- }
-
- }else{
- delta = touchData.deltaX;
- knobLeft = startKnobLeft + delta;
- if (knobLeft<0) knobLeft=0;
-
- var maxWidth = me.width-knob.width;
- if (knobLeft> maxWidth) knobLeft=maxWidth;
-
- if (maxWidth>knob.width){
- value = Math.round(max * knobLeft/maxWidth);
- }else{
- value = 0;
- }
- }
-
- me.refresh();
- if (me.onChange) me.onChange(value);
- };
-
-
- if (initialProperties) me.setProperties(initialProperties);
-
-
- return me;
-};
-
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/components/scale9.js
^
|
@@ -1,134 +0,0 @@
-UI.scale9Panel = function(x,y,w,h,base){
- var me = UI.element(x,y,w,h,true);
- me.type = "scale9";
-
- base.scale = base.scale || "stretch";
-
- me.setProperties = function(p){
-
- var properties = ["left","top","width","height","name","type"];
-
- if (!p){
- var result = {};
- properties.forEach(function(key){
- result[key] = me[key];
- });
- return result;
- }
-
- properties.forEach(function(key){
- if (typeof p[key] != "undefined") me[key] = p[key];
- });
-
- if (typeof p.img !== "undefined") base.img=p.img;
- if (typeof p.scale !== "undefined") base.scale=p.scale;
-
- if (typeof p.imgTop !== "undefined") base.top=p.imgTop;
- if (typeof p.imgBottom !== "undefined") base.bottom=p.imgBottom;
- if (typeof p.imgLeft !== "undefined") base.left=p.imgLeft;
- if (typeof p.imgRight !== "undefined") base.right=p.imgRight;
-
- me.setSize(me.width,me.height);
- me.setPosition(me.left,me.top);
-
- };
-
- var createCanvas = function(){
- var img = base.img;
-
- if (img){
- var centerW = img.width-base.left-base.right;
- var centerH = img.height-base.top-base.bottom;
-
- var targetCenterW = me.width-base.left-base.right;
- var targetCenterH = me.height-base.top-base.bottom;
-
- me.clearCanvas();
-
- // topleft
- if (base.top && base.left) me.ctx.drawImage(img,0,0,base.left,base.top,0,0,base.left,base.top);
-
- // top
- if (base.top) me.ctx.drawImage(img,base.left,0,centerW,base.top,base.left,0,targetCenterW,base.top);
-
- // topright
- if (base.top && base.right) me.ctx.drawImage(img,base.left+centerW,0,base.right,base.top,base.left+targetCenterW,0,base.right,base.top);
-
-
- // midLeft
- if (base.left) me.ctx.drawImage(img,0,base.top,base.left,centerH,0,base.top,base.left,targetCenterH);
-
- // mid
- if (base.scale === "stretch"){
- me.ctx.drawImage(img,base.left,base.top,centerW,centerH,base.left,base.top,targetCenterW,targetCenterH);
- }
-
-
- if (base.scale === "repeatX"){
- var tx = base.left;
- var tMax = base.left+targetCenterW;
- var tw;
-
- // render first row
- while (tx<tMax){
- tw = centerW;
- if (tx+tw>tMax) tw = tMax-tx;
- me.ctx.drawImage(img,base.left,base.top,tw,centerH,tx,base.top,tw,centerH);
- tx+=tw;
- }
-
- }
-
- if (base.scale === "repeatY"){
- var ty = base.top;
- tMax = base.top+targetCenterH;
- var th;
-
- // render first col
- while (ty<tMax){
- th = centerH;
- if (ty+th>tMax) th = tMax-ty;
- me.ctx.drawImage(img,base.left,base.top,centerW,th,base.left,ty,centerW,th);
- ty+=th;
- }
- }
-
-
- // midRight
- if (base.right) me.ctx.drawImage(img,base.left+centerW,base.top,base.right,centerH,base.left+targetCenterW,base.top,base.right,targetCenterH);
-
- // bottomLeft
- if (base.bottom && base.left) me.ctx.drawImage(img,0,base.top+centerH,base.left,base.bottom,0,base.top+targetCenterH,base.left,base.bottom);
-
- // bottom
- if (base.bottom) me.ctx.drawImage(img,base.left,base.top+centerH,centerW,base.bottom,base.left,base.top+targetCenterH,targetCenterW,base.bottom);
-
- // bottomRight
- if (base.bottom && base.right) me.ctx.drawImage(img,base.left+centerW,base.top+centerH,base.right,base.bottom,base.left+targetCenterW,base.top+targetCenterH,base.right,base.bottom);
-
- //myCtx.drawImage(img,0,0);
- }
- };
-
-
- me.render = function(internal){
-
- internal = !!internal;
- if (!me.isVisible()) return;
-
- if (me.needsRendering){
- createCanvas();
- }
- me.needsRendering = false;
-
- if (internal){
- return me.canvas;
- }else{
- me.parentCtx.drawImage(me.canvas,me.left,me.top);
- }
- };
-
- //if (base) me.setProperties(base);
-
- return me;
-};
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/diskOp_Actions.js
^
|
@@ -1,95 +0,0 @@
-UI.DiskOperationActions = function(){
-
- var me = UI.panel();
-
- var background = UI.scale9Panel(0,0,20,20,UI.Assets.panelDarkInsetScale9);
- background.ignoreEvents = true;
- me.addChild(background);
-
- var label1 = UI.scale9Panel(0,0,20,20,UI.Assets.panelDarkGreyScale9);
- label1.ignoreEvents = true;
- me.addChild(label1);
-
- var labelLoad = UI.label({
- label: "Action",
- font: fontSmall
- });
- me.addChild(labelLoad);
-
- var selectionType = UI.radioGroup();
- selectionType.setProperties({
- align: "right",
- size:"med",
- divider: "line",
- type:"buttons",
- highLightSelection:true
- });
- selectionType.setItems([
- {label:"load",active:true},
- {label:"save",active:false}
- ]);
- selectionType.onChange = function(selectedIndex){
- EventBus.trigger(EVENT.diskOperationActionChange,this.getSelectedItem());
- };
- me.addChild(selectionType);
-
- me.setLayout = function(){
-
- var innerWidth = me.width-2;
- var innerHeight = 70;
-
- if (me.height<100){
- innerHeight = me.height - 20;
- }
-
-
- if (!UI.mainPanel) return;
- me.clearCanvas();
-
- background.setProperties({
- left: 0,
- top: 0,
- height: me.height,
- width: me.width
- });
-
- label1.setProperties({
- left: 1,
- top: 1,
- height: 16,
- width: innerWidth
- });
-
- labelLoad.setProperties({
- left: -1,
- top: 3,
- height: 16,
- width: innerWidth
- });
-
- selectionType.setProperties({
- left:4,
- width: innerWidth-4,
- height: innerHeight,
- top: 18
- });
-
-
-
- };
-
- me.getAction = function(){
- var index = selectionType.getSelectedIndex();
- var result = "load";
- if (index == 1) result = "save";
- return result;
- };
-
- me.setSelectedIndex = function(index){
- selectionType.setSelectedIndex(index);
- };
-
- return me;
-
-};
-
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/diskOp_Save.js
^
|
@@ -1,209 +0,0 @@
-UI.DiskOperationSave = function(){
-
- var me = UI.panel();
- var fileName;
- var saveAsFileType = FILETYPE.module;
- var mainFileType = FILETYPE.module;
- var saveAsFileFormat = MODULETYPE.mod;
- var saveTarget = "local";
-
- var background = UI.scale9Panel(0,0,20,20,UI.Assets.panelDarkInsetScale9);
- background.ignoreEvents = true;
- me.addChild(background);
-
-
- var selectTypes = {};
- selectTypes[FILETYPE.module] = [
- {label:"module",active:true, extention:".mod", fileType: FILETYPE.module},
- {label:"wav",active:false, extention:".wav", fileType: FILETYPE.sample, fileFormat: SAMPLETYPE.WAVE_PCM},
- {label:"mp3",active:false, extention:".mp3", fileType: FILETYPE.sample, fileFormat: SAMPLETYPE.MP3}
- ];
- selectTypes[FILETYPE.sample] = [
- {label:"wav 16 bit",active:false, extention:".wav", fileType: FILETYPE.sample, fileFormat: SAMPLETYPE.RIFF_16BIT},
- {label:"wav 8 bit",active:true, extention:".wav", fileType: FILETYPE.sample, fileFormat: SAMPLETYPE.RIFF_8BIT},
- {label:"RAW 8 bit",active:false, extention:".sample", fileType: FILETYPE.sample, fileFormat: SAMPLETYPE.RAW_8BIT}
- ];
-
- var selectionType = UI.radioGroup();
- selectionType.setProperties({
- align: "right",
- size:"med",
- divider: "line",
- highLightSelection:true
- });
- selectionType.setItems(selectTypes[FILETYPE.module]);
- selectionType.onChange = function(selectedIndex){
- var item = this.getSelectedItem();
- saveAsFileType = item && item.fileType ? item.fileType : FILETYPE.module;
- saveAsFileFormat = item && item.fileFormat ? item.fileFormat : MODULETYPE.mod;
- setFileName();
- };
- me.addChild(selectionType);
-
- var saveButton = UI.button();
- saveButton.setProperties({
- label: "Export",
- textAlign:"center",
- background: UI.Assets.buttonLightScale9,
- font:window.fontMed
- });
- saveButton.onClick = function(){
- if (mainFileType == FILETYPE.module){
- if (saveAsFileType == FILETYPE.module){
- Editor.save(fileName,saveTarget);
- }
- if (saveAsFileType == FILETYPE.sample){
- //Editor.renderTrackToBuffer(fileName,saveTarget);
- BassoonProvider.renderFile(fileName,saveAsFileFormat === SAMPLETYPE.MP3);
- }
- }
- if (mainFileType == FILETYPE.sample){
- var sample = Tracker.getCurrentInstrument().sample;
-
- if (sample){
-
- console.error(saveAsFileFormat);
-
- if (saveAsFileFormat === SAMPLETYPE.RAW_8BIT){
- var fileSize = sample.length; // x2 ?
- var arrayBuffer = new ArrayBuffer(fileSize);
- var file = new BinaryStream(arrayBuffer,true);
-
-
- file.clear(2);
- var d;
- // sample length is in word
- for (i = 0; i < sample.length-2; i++){
- d = sample.data[i] || 0;
- file.writeByte(Math.round(d*127));
- }
-
- }else{
- file = encodeRIFFsample(sample.data,saveAsFileFormat === SAMPLETYPE.RIFF_16BIT ? 16 : 8);
- }
-
- var b = new Blob([file.buffer], {type: "application/octet-stream"});
-
-
- if (saveTarget === "dropbox"){
- Dropbox.putFile("/" + fileName,b);
- }else{
- saveAs(b,fileName);
- }
-
- console.error("write sample with " + sample.length + " length");
-
- }
- }
-
- };
- me.addChild(saveButton);
-
- var fileNameInput = UI.inputbox({
- name: "fileNameInput",
- height: 20,
- onChange: function(value){
- fileName = value;
- },
- backgroundImage:"panel_mid"
- });
- me.addChild(fileNameInput);
-
-
-
- function setFileName(){
- var thisFilename = fileName;
- var p = fileName.lastIndexOf(".");
- var extention = "";
- if (p>=0) {
- thisFilename = fileName.substr(0,p);
- extention = fileName.substr(p);
- }
- var type = selectionType.getSelectedItem();
- if (type && type.extention) extention = type.extention;
- if (extention === ".mod" && Tracker.inFTMode()) extention = ".xm";
- fileNameInput.setValue(thisFilename + extention);
- }
-
- me.setLayout = function(){
-
- var innerWidth = me.width-2;
-
- if (!UI.mainPanel) return;
- me.clearCanvas();
-
- background.setProperties({
- left: 0,
- top: 0,
- height: me.height,
- width: me.width
- });
-
- fileNameInput.setProperties({
- left:4,
- width: innerWidth-6,
- top: 4
- });
-
- saveButton.setProperties({
- left:2,
- width: innerWidth,
- height: 28,
- top: me.height - 27
- });
-
- selectionType.setProperties({
- left:4,
- width: innerWidth-4,
- height: me.height - saveButton.height - 30,
- top: 30
- });
-
- };
-
- EventBus.on(EVENT.songPropertyChange,function(song){
- fileName = song.filename || "";
- setFileName();
- });
-
- EventBus.on(EVENT.diskOperationTargetChange,function(item){
-
- saveTarget = item;
- if (saveTarget.target) saveTarget = saveTarget.target;
- if (item && item.fileType){
-
- mainFileType = item.fileType;
- if (mainFileType == FILETYPE.sample) {
- fileName = Tracker.getCurrentInstrument().name.replace(/ /g, '-').replace(/\W/g, '');
- }
- if (mainFileType == FILETYPE.module) {
- fileName = Tracker.getFileName();
- }
-
- if (selectTypes[mainFileType]){
- selectionType.setItems(selectTypes[mainFileType]);
- selectionType.onChange();
- }
-
- }
- });
-
-
- EventBus.on(EVENT.instrumentChange,function(value){
- if (me.isVisible() && mainFileType == FILETYPE.sample) {
- fileName = Tracker.getCurrentInstrument().name.replace(/ /g, '-').replace(/\W/g, '') || "Sample-" + Tracker.getCurrentInstrumentIndex();
- setFileName();
- }
- });
-
- EventBus.on(EVENT.trackerModeChanged,function(value){
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/diskOp_Targets.js
^
|
@@ -1,155 +0,0 @@
-UI.DiskOperationTargets = function(){
-
- var me = UI.panel();
- var currentTarget = "bassoon";
-
- var background = UI.scale9Panel(0,0,20,20,UI.Assets.panelDarkInsetScale9);
- background.ignoreEvents = true;
- me.addChild(background);
-
- var label1 = UI.scale9Panel(0,0,20,20,UI.Assets.panelDarkGreyScale9);
- label1.ignoreEvents = true;
- me.addChild(label1);
-
- var label = UI.label({
- label: "From",
- font: fontSmall
- });
- me.addChild(label);
-
- var targetsModule = [
- {label: "Bassoon:" , target: "bassoon", active:true},
- {label: "Modarchive:",target: "modarchive"},
- {label: "Modules.pl:",target: "modulespl"},
- {label: "Dropbox:" , target: "dropbox"},
- {label: "local:" , target: "local"}
- ];
-
- var targetsSample = [
- {label: "Bassoon:" , target: "bassoon", active:true},
- {label: "Dropbox:" , target: "dropbox"},
- {label: "local:" , target: "local"}
- ];
-
- var targetsSave = [
- {label: "local:" , target: "local", active:true},
- {label: "Dropbox:" , target: "dropbox"}
- ];
-
-
- if (!Host.useDropbox){
- removeTarget(targetsModule,"dropbox");
- removeTarget(targetsSample,"dropbox");
- removeTarget(targetsSave,"dropbox");
- }
-
- function removeTarget(list,target){
- var index = list.findIndex(function(item){return item.target === target;})
- if (index>=0){
- list.splice(index, 1)
- }
- }
-
- var currentLoadTargets = targetsModule;
- var currentAction = "load";
-
- var selectionTarget = UI.radioGroup();
- selectionTarget.setProperties({
- align: "right",
- size:"med",
- divider: "line",
- highLightSelection:true
- });
- selectionTarget.setItems(targetsModule);
- selectionTarget.onChange = function(selectedIndex){
- EventBus.trigger(EVENT.diskOperationTargetChange,this.getSelectedItem());
- };
- me.addChild(selectionTarget);
-
-
- me.setLayout = function(){
-
- var innerWidth = me.width-3;
-
- if (!UI.mainPanel) return;
- me.clearCanvas();
-
- background.setProperties({
- left: 0,
- top: 0,
- height: me.height,
- width: me.width
- });
-
- label1.setProperties({
- left: 2,
- top: 1,
- height: 16,
- width: innerWidth
- });
-
- label.setProperties({
- left: -1,
- top: 3,
- height: 16,
- width: innerWidth
- });
-
- var buttonTop = 18;
-
- selectionTarget.setProperties({
- width: innerWidth,
- height: me.height - buttonTop - 2,
- left: 2,
- top: buttonTop
- });
-
- };
-
- me.getTarget = function(){
- return currentTarget;
- };
-
- EventBus.on(EVENT.diskOperationTargetChange,function(target){
- if (target && target.fileType){
-
- if (currentAction === "save"){
- selectionTarget.setItems(targetsSave);
- }else{
- if (target.fileType === FILETYPE.module) {
- currentLoadTargets = targetsModule;
- }
- if (target.fileType === FILETYPE.sample){
- currentLoadTargets = targetsSample;
- }
-
- selectionTarget.setItems(currentLoadTargets);
- }
-
- selectionTarget.setSelectedIndex(0);
- }
- });
-
-
- EventBus.on(EVENT.diskOperationActionChange,function(target){
- if (target.label === "save"){
- label.setLabel("To");
- currentAction = "save";
- selectionTarget.setItems(targetsSave);
- }else{
- label.setLabel("From");
- currentAction = "load";
- selectionTarget.setItems(currentLoadTargets);
- }
-
- EventBus.trigger(EVENT.diskOperationTargetChange,selectionTarget.getSelectedItem());
-
- });
-
- EventBus.on(EVENT.dropboxConnectCancel,function(){
- selectionTarget.setSelectedIndex(0);
- });
-
- return me;
-
-};
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/diskOp_Type.js
^
|
@@ -1,96 +0,0 @@
-UI.DiskOperationType = function(){
-
- var me = UI.panel();
-
- var background = UI.scale9Panel(0,0,20,20,UI.Assets.panelDarkInsetScale9);
- background.ignoreEvents = true;
- me.addChild(background);
-
- var label1 = UI.scale9Panel(0,0,20,20,UI.Assets.panelDarkGreyScale9);
- label1.ignoreEvents = true;
- me.addChild(label1);
-
- var labelLoad = UI.label({
- label: "Type",
- font: fontSmall
- });
- me.addChild(labelLoad);
-
- var selectionType = UI.radioGroup();
- selectionType.setProperties({
- align: "right",
- size:"med",
- divider: "line",
- highLightSelection:true
- });
- selectionType.setItems([
- {label:"module",active:true, fileType: FILETYPE.module},
- {label:"sample",active:false, fileType: FILETYPE.sample}
- //{label:"pattern",active:false, fileType: FILETYPE.pattern}
- ]);
- selectionType.onChange = function(selectedIndex){
- EventBus.trigger(EVENT.diskOperationTargetChange,this.getSelectedItem());
- };
- me.addChild(selectionType);
-
- me.setLayout = function(){
-
- var innerWidth = me.width-2;
- var innerHeight = 70;
-
- if (me.height<100){
- innerHeight = me.height - 20;
- }
-
-
- if (!UI.mainPanel) return;
- me.clearCanvas();
-
- background.setProperties({
- left: 0,
- top: 0,
- height: me.height,
- width: me.width
- });
-
- label1.setProperties({
- left: 1,
- top: 1,
- height: 16,
- width: innerWidth
- });
-
- labelLoad.setProperties({
- left: -1,
- top: 3,
- height: 16,
- width: innerWidth
- });
-
- selectionType.setProperties({
- left:4,
- width: innerWidth-4,
- height: innerHeight,
- top: 18
- });
-
-
-
- };
-
- me.getType = function(){
- var index = selectionType.getSelectedIndex();
- var result = "modules";
- if (index == 1) result = "samples";
- if (index == 2) result = "patterns";
- return result;
- };
-
- me.setType = function(index){
- selectionType.setSelectedIndex(index);
- };
-
- return me;
-
-};
-
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/diskOperations.js
^
|
@@ -1,713 +0,0 @@
-UI.DiskOperations = function(){
-
- var me = UI.panel();
- me.hide();
-
- var currentAction = "load";
- var currentView = "modules";
- var currentsSubView = "";
- var itemsMap = [];
-
- var modules = [];
- var samples = [];
- var modArchive = [];
- var modulesPl = [];
- var dropBoxList = [];
- var sampleSelectedIndex = 0;
- var moduleSelectedIndex = 0;
- var onLoadChildren = function(){};
- var itemHandler;
-
- var background = UI.scale9Panel(0,0,20,20,UI.Assets.panelMainScale9);
- background.ignoreEvents = true;
- me.addChild(background);
-
- var actionPanel = UI.DiskOperationActions();
- me.addChild(actionPanel);
-
- var typePanel = UI.DiskOperationType();
- me.addChild(typePanel);
-
- var targetPanel = UI.DiskOperationTargets();
- me.addChild(targetPanel);
-
- var savePanel = UI.DiskOperationSave();
- me.addChild(savePanel);
-
-
-
- // buttons for small screen UI
- var buttonProperties = {
- background: UI.Assets.buttonKeyScale9,
- activeBackground:UI.Assets.buttonKeyActiveScale9,
- isActive:false,
- textAlign: "center",
- font: window.fontDark,
- paddingTopActive: 1,
- height: 18,
- width: 50
- };
-
- var saveButton = UI.button();
- var loadButton = UI.button();
- loadButton.setActive(true);
-
- saveButton.setProperties(buttonProperties);
- saveButton.setLabel("Save");
- saveButton.onDown = function(){
- actionPanel.setSelectedIndex(1);
- };
- me.addChild(saveButton);
-
- loadButton.setProperties(buttonProperties);
- loadButton.setLabel("Load");
- loadButton.onDown = function(){
- actionPanel.setSelectedIndex(0);
- };
- me.addChild(loadButton);
-
-
- var label = UI.label({
- label: "Load module",
- font: fontMed
- });
- me.addChild(label);
-
- var closeButton = UI.Assets.generate("button20_20");
- closeButton.setLabel("x");
- closeButton.onClick = function(){
- App.doCommand(COMMAND.showTopMain);
- };
- me.addChild(closeButton);
-
- var browseButton = UI.Assets.generate("buttonKey");
- browseButton.setLabel("browse");
- browseButton.onClick = function(){
- var input = document.createElement('input');
- input.type = 'file';
- input.onchange = function(e){
- Tracker.handleUpload(e.target.files);
- };
- input.click();
- };
- me.addChild(browseButton);
- browseButton.hide();
-
- var listbox = UI.listbox();
- me.addChild(listbox);
-
-
- var dropzone = UI.button();
- dropzone.setProperties({
- background: UI.Assets.buttonDarkActiveScale9,
- image: Y.getImage("dropzone"),
- font: fontSmall,
- textAlign: "center"
- });
- dropzone.onClick = browseButton.onClick;
- me.addChild(dropzone);
- dropzone.hide();
-
-
- me.onShow = function(){
- me.onResize();
- };
-
- me.onResize = function(){
- if(me.isVisible()){
- me.clearCanvas();
-
- background.setProperties({
- left: 0,
- top: 0,
- height: me.height,
- width: me.width
- });
-
- var startTop = 5;
-
- closeButton.setProperties({
- top: startTop-2,
- width: 20,
- heigth: 18,
- left: me.width - 30
- });
-
- browseButton.setProperties({
- top: closeButton.top+2,
- width: 55,
- height: 18,
- left: closeButton.left - 60
- });
-
-
- if (me.width >= 730){
-
- actionPanel.show();
- label.show();
- loadButton.hide();
- saveButton.hide();
-
- actionPanel.setProperties({
- top: startTop,
- left: Layout.col1X,
- width: Layout.col1W,
- height: me.height - 10
- });
- typePanel.setProperties({
- top: startTop,
- left: Layout.col2X,
- width: Layout.col1W,
- height: me.height - 10
- });
- targetPanel.setProperties({
- top: startTop,
- left: Layout.col3X,
- width: Layout.col1W,
- height: me.height - 10
- });
-
- label.setProperties({
- left: Layout.col4X,
- top: startTop,
- height: 20,
- width: Layout.col2W
- });
-
-
- listbox.setProperties({
- left: Layout.col4X,
- width: Layout.col2W,
- top: startTop + 19,
- height: me.height - (19+startTop) - 5
- });
-
- }else{
-
- actionPanel.hide();
- label.hide();
- loadButton.show();
- saveButton.show();
-
- loadButton.setProperties({
- top: 5,
- left: Layout.col3X
- });
- saveButton.setProperties({
- top: 5,
- left: Layout.col3X + 50
- });
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/editPanel.js
^
|
@@ -1,126 +0,0 @@
-UI.editPanel = function(x,y,w,h,visible){
- var me = UI.element(x,y,w,h,visible);
- me.type = "EditPanel";
-
-
- var panel = UI.scale9Panel(0,0,0,0,UI.Assets.panelInsetScale9);
- me.addChild(panel);
-
- var labels = ["clear","copy","paste"];
-
- var handleButton = function(button){
- switch(button.index){
- case 0:
- Editor.clearTrack();
- UI.setStatus("Track cleared");
- break;
- case 1:
- Editor.clearPattern();
- UI.setStatus("Pattern cleared");
- break;
- case 2:
- Editor.copyTrack();
- UI.setStatus("Track copied");
- break;
- case 3:
- Editor.copyPattern();
- UI.setStatus("Pattern copied");
- break;
- case 4:
- UI.setStatus(Editor.pasteTrack() ? "Track pasted" : "Nothing to paste!");
- break;
- case 5:
- UI.setStatus(Editor.pastePattern() ? "Pattern pasted" : "Nothing to paste!");
- break;
- }
- };
-
- var buttonsPattern = [];
- for (var i = 0; i<6;i++){
- var button;
- button = UI.Assets.generate("buttonDark");
- button.index = i;
- button.onClick = function(){
- handleButton(this);
- };
- button.setProperties({
- label:" " + labels[Math.floor(i/2)],
- font: fontSmall,
- textAlign: "center",
- paddingTop: 3
- });
- me.addChild(button);
- buttonsPattern.push(button);
- }
-
-
-
-
- var properties = ["left","top","width","height","name","type"];
- me.setProperties = function(p){
-
- properties.forEach(function(key){
- if (typeof p[key] != "undefined"){
- switch(key){
- default:
- me[key] = p[key];
- }
- }
- });
-
- me.setSize(me.width,me.height);
- me.setPosition(me.left,me.top);
-
- panel.setSize(me.width,me.height);
-
- var buttonWidth = Math.floor(me.width/2) - 2;
- var buttonHeight = 21;
-
- for (var i = 0; i<6;i++){
- var side = i % 2;
- var row = Math.floor(i / 2);
- buttonsPattern[i].setProperties({
- left: side * buttonWidth + 2,
- width: buttonWidth,
- top:25 + (row*buttonHeight),
- height: buttonHeight
- });
- }
- };
-
- function triggerChangeEvent(){
- //EventBus.trigger(EVENT.trackStateChange,{track: me.track, solo: buttons.solo.isActive, mute: buttons.mute.isActive});
- }
-
- me.render = function(internal){
- internal = !!internal;
- if (me.needsRendering){
-
- if (!me.isVisible()) return;
- me.clearCanvas();
-
- panel.render();
-
- window.fontMed.write(me.ctx,"↓Track",6,11,0);
- window.fontMed.write(me.ctx,"↓Pattern",buttonsPattern[1].left + 6,11,0);
-
- for (var i = 0; i<6;i++){
- buttonsPattern[i].render();
- }
-
- }
- me.needsRendering = false;
-
- if (internal){
- return me.canvas;
- }else{
- me.parentCtx.drawImage(me.canvas,me.left,me.top,me.width,me.height);
- }
-
- };
-
- return me;
-
-
-};
-
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/envelope.js
^
|
@@ -1,232 +0,0 @@
-UI.Envelope = function(type){
-
- var me = UI.element();
- me.type = type;
-
- var background = UI.scale9Panel(0,0,me.width,me.height,{
- img: Y.getImage("panel_dark"),
- left:3,
- top:3,
- right:2,
- bottom: 2
- });
- background.ignoreEvents = true;
-
- var currentInstrument;
- var currentEnvelope;
- var isDragging;
- var dragPoint;
- var activePoint;
- var activePointIndex = -1;
- var prevActivePointIndex;
-
- var xScale;
- var yScale;
-
- me.onResize = function(){
- xScale = me.width/324;
- yScale = me.height/64;
- };
-
- me.onHover = function(data){
- if (!isDragging){
- activePointIndex = -1;
- activePoint = undefined;
-
- if (currentEnvelope && currentEnvelope.enabled){
-
- var x = Math.round(me.eventX/xScale);
- var y = Math.round((me.height - me.eventY)/yScale);
-
-
- for (var i = 0, max = currentEnvelope.count; i<max; i++){
- var point = currentEnvelope.points[i] || [0,0];
- if (Math.abs(x - point[0])<6 && Math.abs(y - point[1])<6){
- activePointIndex = i;
- activePoint = {
- p: currentEnvelope.points[i],
- minY: 0,
- maxY: 64
- };
- if (i===0) {
- activePoint.minX = 0;
- activePoint.maxX = 0;
- }else{
- activePoint.minX = currentEnvelope.points[i-1][0];
- activePoint.maxX = 324;
- if (i<currentEnvelope.count-1) activePoint.maxX = currentEnvelope.points[i+1][0]
- }
- break;
- }
- }
-
- if (prevActivePointIndex !== activePointIndex){
- prevActivePointIndex = activePointIndex;
- me.refresh();
- }
- }
- }
-
- };
-
-
- me.onDragStart = function(touchData){
-
- if (activePoint){
- dragPoint = {
- startX: touchData.startX,
- startY: touchData.startY,
- pX: activePoint.p[0],
- pY: activePoint.p[1]
- };
- isDragging = true;
- }
-
- };
-
- me.onDrag = function(touchData){
- if (isDragging){
- dragPoint.deltaX = (touchData.deltaX)/xScale;
- dragPoint.deltaY = (touchData.deltaY)/yScale;
-
- var newX = dragPoint.pX + dragPoint.deltaX;
- newX = Math.min(activePoint.maxX,newX);
- newX = Math.max(activePoint.minX,newX);
-
- var newY = dragPoint.pY - dragPoint.deltaY;
- newY = Math.min(activePoint.maxY,newY);
- newY = Math.max(activePoint.minY,newY);
-
- activePoint.p[0] = newX;
- activePoint.p[1] = newY;
-
- me.refresh();
- }
- };
-
- me.onTouchUp = function(touchData){
- isDragging = false;
- };
-
- me.setInstrument = function(instrument){
- currentInstrument = instrument;
- if (instrument){
- currentEnvelope = instrument[me.type + "Envelope"];
- }else{
- currentEnvelope = undefined;
- }
- me.refresh();
- };
-
-
- me.render = function(){
-
- if (this.needsRendering) {
-
- if (background.width !== me.width) background.setSize(me.width,me.height);
- me.ctx.drawImage(background.render(true),0,0,me.width,me.height);
-
- me.ctx.lineWidth = 1;
-
- if (me.type === "panning"){
- me.ctx.strokeStyle = "#4a7c92";
- me.ctx.setLineDash([1, 2]);
- y = Math.floor(me.height/2);
- me.ctx.beginPath();
- me.ctx.moveTo(0, y);
- me.ctx.lineTo(me.width, y);
- me.ctx.stroke();
- }
-
- if (currentEnvelope && currentEnvelope.count){
-
- var xScale = me.width/324;
- var yScale = me.height/64;
-
-
- me.ctx.strokeStyle = currentEnvelope.enabled ? 'rgba(120, 255, 50, 0.5)' : 'rgba(120, 120, 180, 0.5)';
-
- me.ctx.beginPath();
- me.ctx.setLineDash([]);
-
- for (var i = 0; i<currentEnvelope.count; i++){
-
- var co = currentEnvelope.points[i];
- if (co){
- var x = co[0] * xScale;
- var y = me.height - (co[1] * yScale);
-
- var size = 4;
- var color = currentEnvelope.enabled ? "#D2861B" : "#546888";
-
- if (i === activePointIndex){
- size = 6;
- color = "#FFFFFF";
- }
-
- me.ctx.fillStyle = color;
-
- if (i === 0){
- me.ctx.moveTo(x, y);
- }else{
- me.ctx.lineTo(x, y);
- }
-
- var h = size/2;
- me.ctx.fillRect(x-h, y-h, size, size);
- }
-
- }
- me.ctx.stroke();
-
- if (currentEnvelope.enabled){
- function drawLine(x){
- me.ctx.beginPath();
- me.ctx.moveTo(x, 0);
- me.ctx.lineTo(x, me.height);
- me.ctx.stroke();
- }
-
- if (currentEnvelope.sustain){
- var sustainPoint = currentEnvelope.points[currentEnvelope.sustainPoint || 0];
- if (sustainPoint){
- me.ctx.strokeStyle = "#67b6d2";
- me.ctx.setLineDash([1, 2]);
- drawLine(sustainPoint[0] * xScale);
- }
- }
-
- if (currentEnvelope.loop){
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/envelopePanel.js
^
|
@@ -1,268 +0,0 @@
-UI.EnvelopePanel = function(type){
-
- var me = UI.panel();
- me.type = type;
-
- var currentInstrument;
- var envelope;
- var disabled = false;
-
- var titleBar = UI.scale9Panel(0,0,20,20,UI.Assets.panelDarkGreyScale9);
- titleBar.ignoreEvents = true;
- me.addChild(titleBar);
-
- var titleLabel = UI.label({
- label: type + " Envelope",
- font: fontSmall
- });
- titleLabel.onClick = function() {
- enabledCheckbox.toggle();
- };
- me.addChild(titleLabel);
-
- var enabledCheckbox = UI.checkbox();
- enabledCheckbox.onToggle = function(checked){
- if (envelope){
- envelope.enabled = checked;
- envelopeGraph.refresh();
- }
- };
- me.addChild(enabledCheckbox);
-
- var buttonAdd = UI.Assets.generate("button20_20");
- buttonAdd.onDown = function(){
- if (!envelope.enabled) return;
- if (envelope.points.length > envelope.count){
- var prevPoint = envelope.points[envelope.count-1] || [0,0];
- var nextPoint = envelope.points[envelope.count];
- if (prevPoint[0] + 10<320){
- if (nextPoint[0]<=prevPoint[0]){
- nextPoint[0] = prevPoint[0]+10;
- }
- envelope.count++;
- }
- }else{
- var lastPoint = envelope.points[envelope.points.length-1];
- if (lastPoint[0] + 10<320){
- var newPoint = [lastPoint[0] + 10,32];
- envelope.points.push(newPoint);
- envelope.count = envelope.points.length;
- }
- }
- envelopeGraph.refresh();
- };
- buttonAdd.setProperties({
- label:"+",
- width: 18,
- height: 18
- });
- me.addChild(buttonAdd);
-
- var buttonRemove = UI.Assets.generate("button20_20");
- buttonRemove.onDown = function(){
- if (!envelope.enabled) return;
- if (envelope.count > 2){
- envelope.count--;
- me.checkMax();
- }
- envelopeGraph.refresh();
- };
- buttonRemove.setProperties({
- label:"-",
- width: 18,
- height: 18
- });
- me.addChild(buttonRemove);
-
-
- var envelopeGraph = UI.Envelope(type);
- me.addChild(envelopeGraph);
-
-
- var panel = UI.panel(0,0,20,20);
-
- var sustainCheckBox = UI.checkbox();
- var loopCheckBox = UI.checkbox();
- var sustainSpinbox = UI.spinBox();
- var loopFromSpinbox = UI.spinBox();
- var loopToSpinbox = UI.spinBox();
-
- sustainCheckBox.onToggle = function(checked){
- sustainSpinbox.setDisabled(!checked);
- envelope.sustain = checked;
- envelopeGraph.refresh();
- };
- loopCheckBox.onToggle = function(checked){
- loopFromSpinbox.setDisabled(!checked);
- loopToSpinbox.setDisabled(!checked);
- envelope.loop = checked;
- envelopeGraph.refresh();
- };
-
- sustainSpinbox.setProperties({
- label: " ",
- name: me.type + " envelope sustain",
- value: 0,
- max: 100,
- min:0,
- padLength: 2,
- disabled: true,
- font: window.fontFT,
- trackUndo: true,
- undoInstrument: true,
- onChange : function(value){
- envelope.sustainPoint = value;
- me.checkMax();
- envelopeGraph.refresh();
- }
- });
- loopFromSpinbox.setProperties({
- label: "From",
- name: me.type + " envelope loop from",
- value: 0,
- max: 100,
- min:0,
- padLength: 2,
- disabled: true,
- font: window.fontSmall,
- trackUndo: true,
- undoInstrument: true,
- onChange : function(value){
- envelope.loopStartPoint = value;
- me.checkMax();
- envelopeGraph.refresh();
- }
- });
- loopToSpinbox.setProperties({
- label: "To",
- name: me.type + " envelope loop to",
- value: 0,
- max: 100,
- min:0,
- padLength: 2,
- disabled: true,
- font: window.fontSmall,
- trackUndo: true,
- undoInstrument: true,
- onChange : function(value){
- envelope.loopEndPoint = value;
- me.checkMax();
- envelopeGraph.refresh();
- }
- });
-
- var background = UI.scale9Panel(0,0,panel.width,panel.height,UI.Assets.panelMainScale9);
- background.ignoreEvents = true;
- panel.addChild(background);
-
- panel.addChild(sustainSpinbox);
- panel.addChild(loopFromSpinbox);
- panel.addChild(loopToSpinbox);
-
- var sustainLabel = UI.label({
- label:"Sustain",
- font: fontSmall,
- width:60
- });
- panel.addChild(sustainLabel);
- var loopLabel = UI.label({
- label:"Loop",
- font: fontSmall,
- width:60
- });
- panel.addChild(loopLabel);
- panel.addChild(sustainCheckBox);
- panel.addChild(loopCheckBox);
-
- me.addChild(panel);
-
- me.setInstrument = function(instrument){
- if (!instrument) return;
- envelope = instrument[type + "Envelope"];
- currentInstrument = instrument;
-
- envelopeGraph.setInstrument(instrument);
- enabledCheckbox.setState(envelope && envelope.enabled);
- sustainCheckBox.setState(envelope && envelope.sustain);
- loopCheckBox.setState(envelope && envelope.loop);
-
- sustainSpinbox.setValue(envelope.sustainPoint || 0,true);
- loopFromSpinbox.setValue(envelope.loopStartPoint || 0,true);
- loopToSpinbox.setValue(envelope.loopEndPoint || 0,true);
- };
-
- me.setDisabled = function(value){
- disabled = value;
- me.ignoreEvents = disabled;
- me.refresh();
- };
-
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/fxpanel.js
^
|
@@ -1,123 +0,0 @@
-UI.fxPanel= function(track){
-
- var me = UI.panel();
- me.hide();
-
- track = track || 0;
-
- var background = UI.scale9Panel(0,0,20,20,UI.Assets.buttonDarkScale9);
- background.ignoreEvents = true;
- me.addChild(background);
-
- var knobSpaceX = 70;
- var knobSpaceY = 70;
- var effects = ["volume","panning","high","mid","low","lowPass","reverb"];
-
- var KnobTop = 0;
- var knobLeft = 10;
- var knobs = [];
- for (var i = 0, len = effects.length; i<len;i++){
- var knob = UI.knob();
- knob.setProperties({
- top: KnobTop,
- left: knobLeft,
- label: effects[i],
- disabled: i>1
- });
- knob.onChange = function(value){
- handleKnob(this,value);
- };
- knob.onToggle = function(value){
- handleKnobState(this,value);
- handleKnob(this,this.getValue());
- };
- me.addChild(knob);
- knobs.push(knob);
-
- if ((i%2) == 0){
- knobLeft = knobLeft + knobSpaceX;
- }else{
- knobLeft = 10;
- KnobTop += knobSpaceY
- }
- }
-
- var filterChain;
- if (Audio.filterChains) filterChain = Audio.filterChains[track];
-
- function handleKnob(knob,value){
-
- if (!filterChain) return;
- if (knob.isDisabled) return;
-
- var label = knob.getLabel();
-
- switch (label){
- case "volume":{
- filterChain.volumeValue(value);
- break;
- }
- case "panning":{
- filterChain.panningValue((value-50)/50);
- break;
- }
- case "high":{
- filterChain.highValue(value/100);
- break;
- }
- case "mid":{
- filterChain.midValue(value/100);
- break;
- }
- case "low":{
- filterChain.lowValue(value/100);
- break;
- }
- case "lowPass":{
- filterChain.lowPassFrequencyValue(value/100);
- break;
- }
- case "reverb":{
- filterChain.reverbValue(value);
- break;
- }
- }
-
- }
-
- function handleKnobState(knob,value){
-
- if (!filterChain) return;
- var label = knob.getLabel();
- filterChain.setState(label,value);
- }
-
- me.setLayout = function(){
- if (!UI.mainPanel) return;
- //me.clearCanvas();
-
- background.setSize(me.width,me.height);
-
- var knobSize = 70;
-
- var cols = Math.max(1,Math.floor(me.width/knobSize));
-
- var margin = Math.floor((me.width - cols*knobSize)/2);
- var colWidth = Math.floor((me.width - margin*2)/cols);
- var knobSpaceY = 70;
- var knobTop = 0;
-
- knobs.forEach(function(knob,index){
- var colIndex = index%cols;
- knob.setPosition((colIndex * colWidth) + margin,knobTop);
- if (colIndex === cols-1){
- knobTop += knobSpaceY;
- }
- })
-
- };
-
- return me;
-
-};
-
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/infopanel.js
^
|
@@ -1,105 +0,0 @@
-UI.InfoPanel = function(){
-
- var me = UI.element();
- var text = "";
- var source = "";
- var status = "";
- var moreInfoUrl;
-
- var infoButton = UI.Assets.generate("buttonDark");
- infoButton.setLabel("More info ");
- infoButton.onClick = function(){
- if (moreInfoUrl) window.open(moreInfoUrl);
- };
- me.addChild(infoButton);
-
- var spinner = UI.animsprite(5,7,20,18,"boing",11);
- me.addChild(spinner);
- spinner.hide();
-
- EventBus.on(EVENT.statusChange,function(context){
- if (context){
- if (typeof context.status !== "undefined") status = context.status;
- if (typeof context.info !== "undefined"){
- text = context.info;
- source = context.source;
- moreInfoUrl = context.url;
- }
- if (typeof context.showSpinner !== "undefined"){
- spinner.toggle(!!context.showSpinner)
- }
- }
- me.refresh();
- });
-
-
- var properties = ["left","top","width","height","name","type","zIndex"];
- me.setProperties = function(p){
-
- properties.forEach(function(key){
- if (typeof p[key] !== "undefined") me[key] = p[key];
- });
-
- me.setSize(me.width,me.height);
- me.setPosition(me.left,me.top);
-
- if (me.setLayout) me.setLayout(me.left,me.top,me.width, me.height);
- };
-
- me.setLayout = function(){
-
- var width = Layout.col1W;
- var label = "More Info";
- if (width<100) label = "info";
- if (width<45) label = "i";
-
- infoButton.setProperties({
- width: Layout.col1W,
- height: 24,
- top: 2,
- left:Layout.col5X - 2 - me.left,
- label: label,
- font: fontFT
- });
-
- };
-
-
- me.render = function(internal){
- if (!me.isVisible()) return;
-
- internal = !!internal;
-
- if (this.needsRendering){
- me.clearCanvas();
-
- if (moreInfoUrl) infoButton.render();
-
- var fText = text;
- if (status) fText = status + ": " + fText;
-
- var textX = 6;
- if (spinner.isVisible()){
- spinner.render();
- textX += 20;
- }
-
- window.fontFT.write(me.ctx,fText,textX,11,0);
-
-
-
- }
-
- this.needsRendering = false;
- if (internal){
- return me.canvas;
- }else{
- me.parentCtx.drawImage(me.canvas,me.left,me.top,me.width,me.height);
- }
-
- };
-
- return me;
-
-};
-
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/input.js
^
|
@@ -1,889 +0,0 @@
-var Input = (function(){
-
- var me={};
-
- var touchData = {};
- touchData.touches = [];
- touchData.mouseWheels = [];
- var focusElement;
- var currentEventTarget;
- var resizeTimer = 0;
- var isTouched = false;
- var inputNotes = []; // keep track of notes played through keyboard input
- var keyDown = {};
- var isMetaKeyDown = false;
-
- var currentOctave = 2;
- var maxOctave = 3;
- var minOctave = 1;
-
- var prevHoverTarget;
- var prevIndex = 13;
-
- me.init = function(){
-
- // mouse, touch and key handlers
-
- canvas.addEventListener("mousedown",handleTouchDown,false);
- canvas.addEventListener("mousemove",handleTouchMove,false);
- canvas.addEventListener("mouseup",handleTouchUp,false);
- canvas.addEventListener("mouseout",handleTouchOut,false);
-
- canvas.addEventListener("touchstart", handleTouchDown,false);
- canvas.addEventListener("touchmove", handleTouchMove,false);
- canvas.addEventListener("touchend", handleTouchUp,false);
-
- if (window.navigator.msPointerEnabled){
- canvas.addEventListener("MSPointerDown", handleTouchDown,false);
- canvas.addEventListener("MSPointerMove", handleTouchMove,false);
- canvas.addEventListener("MSPointerEnd", handleTouchUp,false);
- }
-
- canvas.addEventListener("mousewheel", handleMouseWheel,false);
- canvas.addEventListener("DOMMouseScroll", handleMouseWheel,false);
-
- window.addEventListener("keydown",handleKeyDown,false);
- window.addEventListener("keyup",handleKeyUp,false);
-
- canvas.addEventListener("dragenter", handleDragenter, false);
- canvas.addEventListener("dragover", handleDragover, false);
- canvas.addEventListener("drop", handleDrop, false);
-
- window.addEventListener("paste", handlePaste,false);
- window.addEventListener("copy", handleCopy,false);
- window.addEventListener("cut", handleCut,false);
- window.addEventListener("undo", handleUndo,false);
- window.addEventListener("delete", handleDelete,false);
-
- if (!App.isPlugin) window.addEventListener("resize",handleResize,false);
-
-
- function handleTouchDown(event){
-
- event.preventDefault();
- window.focus();
-
- if (!isTouched){
- // first touch - init media on IOS and Android
- // note: audioContext.resume must be called on touchup, touchdown is too soon.
-
- if (typeof Audio !== "undefined" && Audio.playSilence){
-
- if (Audio.context && Audio.context.state !== "suspended"){
- Audio.playSilence();
- isTouched = true;
- }
- }
- }
-
-
- if (event.touches && event.touches.length>0){
- var touches = event.changedTouches;
- for (var i=0; i < touches.length; i++) {
- var touch = touches[i];
- initTouch(touch.identifier,touch.pageX,touch.pageY);
- }
- }else{
- var touchIndex = getTouchIndex("notouch");
- if (touchIndex>=0) touchData.touches.splice(touchIndex, 1);
- initTouch("notouch",event.pageX,event.pageY);
- //initTouch("notouch",event.clientX,event.clientY);
- }
-
- function initTouch(id,x,y){
- touchData.isTouchDown = true;
-
- var rect = canvas.getBoundingClientRect();
- x -= (rect.left + window.pageXOffset);
- y -= (rect.top + window.pageYOffset);
-
- currentEventTarget = UI.getModalElement();
- if (currentEventTarget){
- currentEventTarget.eventX = x;
- currentEventTarget.eventY = y;
- }else{
- currentEventTarget = UI.getEventElement(x,y);
- }
-
- if (currentEventTarget && focusElement && focusElement.deActivate && focusElement.name !== currentEventTarget.name){
- focusElement.deActivate(currentEventTarget);
- }
-
- var touchX = currentEventTarget? currentEventTarget.eventX : x ;
- var touchY = currentEventTarget? currentEventTarget.eventY : y ;
-
- var thisTouch = {
- id: id,
- x: touchX,
- y: touchY,
- startX: touchX,
- startY: touchY,
- globalX: x,
- globalY: y,
- globalStartX: x,
- globalStartY: y,
- UIobject: currentEventTarget,
-
- isMeta: event.shiftKey || event.metaKey || event.ctrlKey || event.altKey
- };
-
- touchData.touches.push(thisTouch);
-
- if (thisTouch.UIobject){
- if (thisTouch.UIobject.onDragStart) thisTouch.UIobject.onDragStart(thisTouch);
- if (thisTouch.UIobject.onDown) thisTouch.UIobject.onDown(thisTouch);
-
- //console.log(thisTouch.UIobject);
- }
- }
- }
-
- function handleTouchMove(event){
- event.preventDefault();
- var rect = canvas.getBoundingClientRect();
-
-
- if (event.touches && event.touches.length>0){
- var touches = event.changedTouches;
-
- for (var i=0; i < touches.length; i++) {
- var touch = touches[i];
- updateTouch(getTouchIndex(touch.identifier),touch.pageX-rect.left,touch.pageY-rect.top);
- }
- }else{
- var _x = event.pageX-rect.left;
- var _y = event.pageY-rect.top;
- updateTouch(getTouchIndex("notouch"),_x,_y);
- touchData.currentMouseX = _x;
- touchData.currentMouseY = _y;
- touchData.mouseMoved = new Date().getTime();
-
- if (SETTINGS.useHover){
- var hoverEventTarget = UI.getEventElement(_x,_y);
- if (hoverEventTarget && hoverEventTarget.onHover) hoverEventTarget.onHover(touchData);
-
- if (prevHoverTarget && prevHoverTarget != hoverEventTarget){
- if (prevHoverTarget.onHoverExit) prevHoverTarget.onHoverExit(touchData,hoverEventTarget);
- }
- prevHoverTarget = hoverEventTarget;
- }
-
- }
-
- function updateTouch(touchIndex,x,y){
- if (touchIndex>=0){
- var thisTouch =touchData.touches[touchIndex];
-
- thisTouch.globalX = x-window.pageXOffset;
- thisTouch.globalY = y-window.pageYOffset;
-
- thisTouch.deltaX = thisTouch.globalX - thisTouch.globalStartX;
- thisTouch.deltaY = thisTouch.globalY - thisTouch.globalStartY;
-
- thisTouch.x = thisTouch.startX + thisTouch.deltaX;
- thisTouch.y = thisTouch.startY + thisTouch.deltaY;
-
- touchData.touches.splice(touchIndex, 1, thisTouch);
-
- if (touchData.isTouchDown && thisTouch.UIobject){
- if (thisTouch.UIobject.onDrag){
- thisTouch.dragX = x;
- thisTouch.dragY = y;
- thisTouch.UIobject.onDrag(thisTouch);
- }
- }
- }
- }
-
- }
-
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/main.js
^
|
@@ -1,720 +0,0 @@
-var canvas;
-var ctx;
-
-var UI = (function(){
-
- var me={};
-
- var screenWidth;
- var screenHeight;
- var useDevicePixelRatio = false;
-
- var children = [];
- var fontSmall;
- var fontMed;
- var fontBig;
- var fontFT;
- var fontCondensed;
- var fontDark;
-
- var maxWidth = 1200;
- var maxHeight = 2000;
- var minHeight = 200;
- var modalElement;
- var needsRendering = true;
- var skipRenderSteps = 0;
- var renderStep = 0;
- var beginTime = 0;
- var beginRenderTime = 0;
- var lastRenderTime = 0;
- var beginMeasure = 0;
- var currentMeasure = 0;
- var endMeasure = 0;
- var frames = 0;
- var fps;
- var minFps = 100;
- var fpsList = [];
- var renderfpsList = [];
- var selection;
- var prevSelection;
- var prevEventExpired = 0;
- var maxRenderFps = 60;
- var fpsCalculated = false;
-
- var UICache = {};
-
- var tracks = getUrlParameter("tracks");
- if (tracks == 8) maxWidth = 1200;
- if (tracks == 16) maxWidth = 1600;
- if (tracks >= 32) maxWidth = 3200;
-
-
- // some light polyfills - mainly to ensure the App can still show the "browser not supported" message
- var nowFunction;
- if (window.performance && performance.now){
- nowFunction = function(){ return performance.now()};
- }else{
- nowFunction = Date.now;
- }
-
- if (!window.requestAnimationFrame){
- var lastTime = 0;
- window.requestAnimationFrame = function(callback, element) {
- var currTime = new Date().getTime();
- var timeToCall = Math.max(0, 16 - (currTime - lastTime));
- var id = window.setTimeout(function() { callback(currTime + timeToCall); },
- timeToCall);
- lastTime = currTime + timeToCall;
- return id;
- };
- }
-
-
- me.init = function(next){
- canvas = document.getElementById("canvas");
- ctx = canvas.getContext("2d");
- ctx.imageSmoothingEnabled=false;
-
- var w = window.innerWidth;
- var h = window.innerHeight;
-
- if (w>maxWidth) w=maxWidth;
- if (h>maxHeight) h=maxHeight;
-
- screenWidth = w;
- screenHeight = h;
- canvas.width =screenWidth;
- canvas.height=screenHeight;
-
- ctx.fillStyle = "black";
- ctx.fillRect(0,0,canvas.width,canvas.height);
-
- ctx.fillStyle = "#78828F"
- ctx.font = "20px sans-serif";
- ctx.textAlign = "center";
- ctx.fillText("Loading ...", canvas.width/2, canvas.height/2);
-
- if (debug) UI.measure("Create Main Canvas");
-
-
- UI.Assets.preLoad(function(){
-
- if (debug) UI.measure("UI sprites");
- console.log("UI assets loaded");
- initAssets();
- Input.init();
- if (debug) UI.measure("Input Init");
- render();
- if (debug) UI.measure("First render");
-
- // check version
- if (typeof versionNumber !== "undefined"){
- FetchService.json("package.json?ts=" + new Date().getTime(),function(result){
- if (result && result.version && result.version !== versionNumber){
- console.error("app needs updating");
-
- var lastMessage = localStorage.getItem("updatemessageshown") || 0;
- lastMessage = parseInt(lastMessage,10);
- if (isNaN(lastMessage)) lastMessage=0;
-
- window.reload = function(){
- localStorage.setItem("updatemessageshown",new Date().getTime());
- window.location.reload(true);
- };
-
- if (new Date().getTime() - lastMessage > 1000*60*30){
- var message = document.createElement("div");
- message.className = "message";
- message.innerHTML = 'A new version of BassoonTracker is available. Please <a href="#" onclick="reload()">refresh your browser</a>';
- document.body.appendChild(message);
- }
- }
- });
- }
-
-
- if (next) next();
-
- });
-
- };
-
- me.initPlugin = function(config){
- console.log("init plugin");
- if (config.canvas){
- canvas = config.canvas;
- }else{
- canvas = document.getElementById("canvas");
- var w = window.innerWidth;
-
- if (w>maxWidth) w=maxWidth;
- if (w>maxHeight) w=maxHeight;
- canvas.width = w;
- //canvas.height = window.innerHeight;
- }
-
- ctx = canvas.getContext("2d");
- ctx.fillStyle = "black";
- ctx.fillRect(0,0,canvas.width,canvas.height);
-
- Settings.baseUrl = config.baseUrl;
- App.isPlugin = true;
- buildNumber = Math.random();
- UI.Assets.preLoad(function(){
-
- console.log("UI assets loaded");
- initAssets();
- render();
-
-
- Settings.readSettings();
- App.init();
- if (config.callback) config.callback();
-
- });
-
- };
-
-
- me.setSize = function(newWidth,newHeight){
- if (newWidth>maxWidth) newWidth = maxWidth;
- if (newHeight>maxHeight) newHeight = maxHeight;
- if (newHeight<minHeight) newHeight = minHeight;
-
- if ((newWidth !== canvas.width) || (newHeight !== canvas.height)){
- ctx.clearRect(0,0,canvas.width,canvas.height);
- screenWidth = newWidth;
- screenHeight = newHeight;
-
- me.scaleToDevicePixelRatio(useDevicePixelRatio);
- me.mainPanel.setSize(newWidth,newHeight);
- //me.mainPanel.setLayout(0,0,newWidth,newHeight);
-
- if (modalElement){
- modalElement.setProperties({width: newWidth, height: newHeight});
- }
- needsRendering = true;
- }
- };
-
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/mainPanel.js
^
|
@@ -1,122 +0,0 @@
-UI.MainPanel = function(){
- var me = UI.panel(0,0,canvas.width,canvas.height,true);
- me.setProperties({
- backgroundColor: "#071028"
- });
- me.name = "mainPanel";
-
- var contextMenus = {};
-
- var menu = UI.app_menu(me);
- me.addChild(menu);
-
- var appPanel = UI.app_mainPanel();
- me.addChild(appPanel);
-
- var controlPanel = UI.app_controlPanel();
- me.addChild(controlPanel);
-
- var patternPanel = UI.app_patternPanel();
- me.addChild(patternPanel);
-
- var sidebar = UI.app_sidebar();
- if (Layout.showAppSideBar){
- me.addChild(sidebar);
- }
-
- var pianoPanel = UI.app_pianoView();
- pianoPanel.hide();
- me.addChild(pianoPanel);
-
-
- me.createContextMenu = function(properties){
- var contextMenu = contextMenus[properties.name];
- if (!contextMenu){
- contextMenu = UI.menu(100,100,128,42,me);
- contextMenu.zIndex = 100;
- contextMenu.setProperties({
- background: UI.Assets.panelMainScale9,
- layout: "buttons"
- });
- contextMenu.setItems(properties.items);
- contextMenu.hide();
- me.addChild(contextMenu);
- contextMenus[properties.name] = contextMenu;
-
- }
- return contextMenu;
- };
-
-
- me.onResize = function(){
- Layout.setLayout(me.width,me.height);
-
- menu.setSize(Layout.mainWidth,menu.height);
- var panelTop = menu.height;
-
- appPanel.setSize(Layout.mainWidth,appPanel.height);
- appPanel.setPosition(Layout.mainLeft,panelTop);
- panelTop += appPanel.height;
-
- controlPanel.setSize(Layout.mainWidth,Layout.controlPanelHeight);
- controlPanel.setPosition(Layout.mainLeft,panelTop);
- panelTop += controlPanel.height;
-
- var remaining = me.height-panelTop;
- if (pianoPanel.isVisible()){
- pianoPanel.setSize(Layout.mainWidth,Layout.pianoHeight);
- pianoPanel.setPosition(Layout.mainLeft,me.height-pianoPanel.height);
- remaining = remaining- pianoPanel.height;
- }
-
- patternPanel.setPosition(Layout.mainLeft,panelTop);
- patternPanel.setSize(Layout.mainWidth,remaining);
-
- sidebar.setPosition(0,0);
- sidebar.setSize(Layout.sidebarWidth,me.height);
-
- };
-
- me.sortZIndex();
- me.onResize();
-
- EventBus.on(EVENT.toggleView,function(view){
- if (view === "piano"){
- pianoPanel.toggle();
- var remaining = me.height - patternPanel.top;
- if (pianoPanel.isVisible()){
- pianoPanel.setSize(Layout.mainWidth,Layout.pianoHeight);
- pianoPanel.setPosition(Layout.mainLeft,me.height-pianoPanel.height);
- remaining = remaining-pianoPanel.height;
- }
- patternPanel.setSize(Layout.mainWidth,remaining);
- }
-
- if (view === "sidebar"){
- Layout.showAppSideBar = !Layout.showAppSideBar;
- Layout.setLayout();
- me.onResize();
- }
- });
-
- EventBus.on(EVENT.showContextMenu,function(properties){
- var contextMenu = me.createContextMenu(properties);
- var x = properties.x;
- if ((x+contextMenu.width)>Layout.mainWidth) x = Layout.mainWidth-contextMenu.width;
- contextMenu.setPosition(x,properties.y-contextMenu.height-2);
- contextMenu.show();
- me.refresh();
- });
-
- EventBus.on(EVENT.hideContextMenu,function(){
- for (var key in contextMenus){
- contextMenus[key].hide();
- }
- me.refresh();
- });
-
- return me;
-
-
-};
-
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/optionsPanel.js
^
|
@@ -1,467 +0,0 @@
-UI.OptionsPanel = function(){
-
- var me = UI.panel();
- me.hide();
-
- var background = UI.scale9Panel(0,0,20,20,UI.Assets.panelMainScale9);
- background.ignoreEvents = true;
- me.addChild(background);
-
- var mainLabel = UI.label({
- label: "Options:",
- font: fontMed,
- left: 5,
- height: 18,
- top: 9,
- width: 200
- });
- me.addChild(mainLabel);
-
- //var insetPanel = UI.scale9Panel(0,0,0,0,UI.Assets.panelInsetScale9);
- //me.addChild(insetPanel);
-
- var closeButton = UI.Assets.generate("button20_20");
- closeButton.setLabel("x");
- closeButton.onClick = function(){
- App.doCommand(COMMAND.showTopMain);
- };
- me.addChild(closeButton);
-
- var options = [
- {
- label: "VU bars",
- values: ["NONE", "COLOURS: AMIGA","TRANSPARENT"],
- valueLabels: {
- "COLOURS: AMIGA": [
- {width: 56, label: "AMIGA"},
- {width: 110, label: "COLOURS: AMIGA"}
- ]
- },
- setValue: function (index) {
- if (index === 0){
- SETTINGS.vubars = "none";
- }else if (index === 2){
- SETTINGS.vubars = "trans";
- }else{
- SETTINGS.vubars = "colour";
- }
- Settings.saveSettings();
- },
- getValue: function () {
- var result = 1;
- if (SETTINGS.vubars === "none") result = 0;
- if (SETTINGS.vubars === "trans") result = 2;
- return result;
- }
- },
- {
- label: "Stereo",
- values: ["Hard: Amiga", "Balanced", "None: mono"],
- setValue: function (index) {
- if (index === 0){
- Audio.setStereoSeparation(STEREOSEPARATION.FULL)
- }else if (index === 2){
- Audio.setStereoSeparation(STEREOSEPARATION.NONE)
- }
- else{
- Audio.setStereoSeparation(STEREOSEPARATION.BALANCED)
- }
- Settings.saveSettings();
- },
- getValue: function () {
- var result = 1;
- if (SETTINGS.stereoSeparation === STEREOSEPARATION.NONE) result = 2;
- if (SETTINGS.stereoSeparation === STEREOSEPARATION.FULL) result = 0;
- return result;
- }
- },
- {
- label: "Keyboard Layout",
- labels : [
- {width: 56, label: "Keyboard"},
- {width: 110, label: "Keyboard Layout"}
- ],
- values: ["QWERTY","AZERTY","QWERTZ","Dvorak"],
- setValue:function(index){
- if (index === 0){
- SETTINGS.keyboardTable = "qwerty";
- }else if (index === 1){
- SETTINGS.keyboardTable = "azerty";
- }else if (index === 2) {
- SETTINGS.keyboardTable = "qwertz";
- }else{
- SETTINGS.keyboardTable = "dvorak";
- }
- Settings.saveSettings();
- },
- getValue:function(){
- var result = 0;
- if (SETTINGS.keyboardTable === "azerty") result = 1;
- if (SETTINGS.keyboardTable === "qwertz") result = 2;
- if (SETTINGS.keyboardTable === "dvorak") result = 3;
- return result;
- },
- checkBoxes:[{
- label : "Show Key Input",
- labels: [
- {width: 60, label: "Show"},
- {width: 100, label: "Show Key"},
- {width: 150, label: "Show Key Input"}
- ],
- getValue: function(){return SETTINGS.showKey},
- handler: function(active){
- SETTINGS.showKey = active;
- Settings.saveSettings();
- EventBus.trigger(EVENT.menuLayoutChanged);
- }
- }]
- },
- {
- label: "Screen refresh",
- labels : [
- {width: 56, label: "Screen"},
- {width: 100, label: "Screen refresh"}
- ],
- values: ["Smooth", "Normal", "Economical" , "Low CPU"],
- setValue: function (index) {
- UI.skipFrame(index);
- Settings.saveSettings();
- },
- getValue: function () {
- return UI.getSkipFrame();
- },
- checkBoxes:[{
- label : "Optimize High DPI",
- labels: [
- {width: 60, label: "H-DPI"},
- {width: 100, label: "High DPI"},
- {width: 155, label: "Optimize High DPI"}
- ],
- getValue: function(){return SETTINGS.highDPI},
- handler: function(active){
- SETTINGS.highDPI = active;
- Settings.saveSettings();
- UI.scaleToDevicePixelRatio(active);
- }
- }]
- },
- {
- label: "Frequency table",
- labels : [
- {width: 56, label: "Frequency"},
- {width: 110, label: "Frequency table"}
- ],
- values: ["Linear", "Amiga periods"],
- valueLabels: {
- "Amiga periods": [
- {width: 56, label: "AMIGA"},
- {width: 110, label: "Amiga periods"}
- ]
- },
- setValue: function (index) {
- Tracker.useLinearFrequency = index === 0;
- },
- getValue: function () {
- return Tracker.useLinearFrequency ? 0 : 1;
- }
- },
- {
- label: "Dropbox: existing file",
- labels : [
- {width: 20, label: "Dropbox"},
- {width: 80, label: "Dropbox save"},
- {width: 160, label: "Dropbox existing file"}
- ],
- values: ["Rename", "Overwrite"],
- setValue: function (index) {
- if (index === 0){
- SETTINGS.dropboxMode = "rename";
- }else{
- SETTINGS.dropboxMode = "overwrite";
- }
- Settings.saveSettings();
- },
- getValue: function () {
- var result = 0;
- if (SETTINGS.dropboxMode === "overwrite") result = 1;
- return result;
- }
- },
- {
- label: "Midi-in",
- labels : [
- {width: 20, label: "Midi"},
- {width: 80, label: "Midi-in"}
- ],
- values: ["Disabled", "Enabled Note", "Enabled Note-Volume"],
- valueLabels: {
- "Enabled Note": [
- {width: 80, label: "Note"},
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/sampleView.js
^
|
@@ -1,934 +0,0 @@
-UI.SampleView = function(){
-
- var me = UI.panel();
- me.name = "SampleView";
- me.hide();
-
- var currentInstrumentIndex;
- var subPanel = "loop";
-
- var inputboxHeight = 20;
- var font = window.fontMed;
- font = window.fontCondensed;
-
- var instrumentName = UI.inputbox({
- name: "instrumentName",
- height: inputboxHeight,
- trackUndo: true,
- undoInstrument: true,
- onChange: function(value){
- if (currentInstrumentIndex){
- var instrument = Tracker.getInstrument(currentInstrumentIndex);
- if (instrument) instrument.name = value;
- EventBus.trigger(EVENT.instrumentNameChange,currentInstrumentIndex);
- }
- }
- });
- me.addChild(instrumentName);
-
- var closeButton = UI.Assets.generate("button20_20");
- closeButton.setLabel("x");
- closeButton.onClick = function(){
- App.doCommand(COMMAND.showBottomMain);
- };
- me.addChild(closeButton);
-
- var buttonProperties = {
- background: UI.Assets.buttonKeyScale9,
- activeBackground:UI.Assets.buttonKeyActiveScale9,
- isActive:false,
- textAlign: "center",
- font: window.fontDark,
- paddingTopActive: 1
- };
-
- var bit8Button = UI.button();
- var bit16Button = UI.button();
-
- bit8Button.setProperties(buttonProperties);
- bit8Button.setLabel("8");
- bit8Button.setActive(true);
- bit8Button.onDown = function(){
- changeSampleBit(8);
- };
- me.addChild(bit8Button);
- bit16Button.setProperties(buttonProperties);
- bit16Button.setLabel("16");
- bit16Button.onDown = function(){
- changeSampleBit(16);
- };
- me.addChild(bit16Button);
-
-
- var waveForm = UI.WaveForm();
- me.addChild(waveForm);
-
- waveForm.onMouseWheel = function(touchData){
- if (touchData.mouseWheels[0] > 0){
- waveForm.zoom(1.01)
- }else{
- waveForm.zoom(0.99)
- }
- };
-
-
- var volumeEnvelope = UI.EnvelopePanel("volume");
- me.addChild(volumeEnvelope);
-
- var panningEnvelope = UI.EnvelopePanel("panning");
- me.addChild(panningEnvelope);
-
- var sideButtonPanel = new UI.panel();
- sideButtonPanel.setProperties({
- name: "instrumentSideButtonPanel"
- });
-
- var spinBoxInstrument = UI.spinBox({
- name: "Instrument",
- label: "",
- value: 1,
- max: 64,
- padLength: 2,
- min:1,
- font: font,
- onChange : function(value){Tracker.setCurrentInstrumentIndex(value);}
- });
- me.addChild(spinBoxInstrument);
-
-
- var volumeSlider = UI.sliderBox({
- name: "Volume",
- label: "Volume",
- font: font,
- height: 200,
- width: 40,
- value: 64,
- max: 64,
- min: 0,
- step:1,
- vertical:true,
- trackUndo: true,
- undoInstrument: true,
- onChange: function(value){
- var instrument = Tracker.getCurrentInstrument();
- if (instrument) {
- instrument.sample.volume = value;
- }
- }
- });
- sideButtonPanel.addChild(volumeSlider);
-
- var fineTuneSlider = UI.sliderBox({
- name: "Finetune",
- label: "Finetune",
- font: font,
- value: 0,
- max: 7,
- min: -8,
- step:1,
- vertical:true,
- trackUndo: true,
- undoInstrument: true,
- onChange: function(value){
- var instrument = Tracker.getCurrentInstrument();
- if (instrument) instrument.setFineTune(value);
- }
- });
- sideButtonPanel.addChild(fineTuneSlider);
-
- var panningSlider = UI.sliderBox({
- name: "Panning",
- label: "Panning",
- font: font,
- value: 0,
- max: 127,
- min: -127,
- vertical:true,
- trackUndo: true,
- undoInstrument: true,
- onChange: function(value){
- var instrument = Tracker.getCurrentInstrument();
- if (instrument) {
- instrument.panning = value;
- instrument.sample.panning = value;
- }
- }
- });
- sideButtonPanel.addChild(panningSlider);
-
- var repeatSpinbox = UI.spinBox({
- name: "Repeat",
- label: "Start",
- value: 0,
- max: 65535,
- min:0,
- step:2,
- font: font,
- trackUndo: true,
- undoInstrument: true,
- onChange: function(value){
- var instrument= Tracker.getCurrentInstrument();
- if (instrument){
- if ((instrument.sample.loop.length+value)>instrument.sample.length) {
- value = instrument.sample.length-instrument.sample.loop.length;
- repeatSpinbox.setValue(value,true);
- }
- instrument.sample.loop.start = value;
- }
- waveForm.refresh();
- }
- });
- sideButtonPanel.addChild(repeatSpinbox);
-
- var repeatLengthSpinbox = UI.spinBox({
- name: "Repeat Length",
- label: "Length",
- value: 0,
- max: 65535,
- min:0,
- step:2,
- font: font,
- trackUndo: true,
- undoInstrument: true,
- onChange: function(value){
- var instrument = Tracker.getCurrentInstrument();
- if (instrument){
- if ((instrument.sample.loop.start+value)>instrument.sample.length) {
- value = instrument.sample.length-instrument.sample.loop.start;
- repeatLengthSpinbox.setValue(value,true);
- }
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/sliderBox.js
^
|
@@ -1,242 +0,0 @@
-UI.sliderBox = function(initialProperties){
- var me = UI.element();
- me.type = "sliderBox";
-
- var label = "";
- var value = 0;
- var prevValue = 0;
- var min = 0;
- var max = 100;
- var step = 1;
- var font;
- var properties;
- var padLength = 4;
- var padChar = " ";
- var onChange;
- var vertical;
-
- var labelX=0;
- var labelY=0;
- var digitX=0;
- var digitY=0;
- var digitW=10;
- var digitH=10;
-
- var sliderHeight = 20;
- var sliderwidth = 20;
- var disabled = false;
-
- var lineVer = Y.getImage("line_ver");
-
- var properties = ["left","top","width","height","name","label","value","onChange","min","max","step","vertical","font","trackUndo","undoLabel","undoInstrument"];
- if (initialProperties) setPropertiesValues(initialProperties);
-
- if (max>9999) padLength = 5;
-
- function padValue(){
- var result = "" + value;
- while (result.length < padLength){
- result = padChar + result;
- }
- return result;
- }
-
- var slider = UI.rangeSlider({
- min: min,
- max: max,
- height: sliderHeight,
- width: sliderwidth,
- vertical: !!vertical,
- onChange: function(v){
- if (v!==value){
- me.setValue(v);
- }
- }
- });
- me.addChild(slider);
-
- var numberDisplay = UI.numberDisplay({
- min: min,
- max: max,
- padLength: 4,
- size: "small",
- onChange:function(v){
- if (v!==value){
- me.setValue(v);
- }
- }
- });
- numberDisplay.paddingBottom = -1;
- me.addChild(numberDisplay);
-
-
- me.setProperties = function(newProperties){
- setPropertiesValues(newProperties);
-
- me.setSize(me.width,me.height);
- me.setPosition(me.left,me.top);
-
- };
-
- function setPropertiesValues(p){
-
- properties.forEach(function(key){
- if (typeof p[key] != "undefined"){
- switch(key){
- case "label": label=p[key];break;
- case "value" :
- value=p[key];
- prevValue = value;
- break;
- case "min" : min=p[key];break;
- case "max" : max=p[key];break;
- case "step" : step=p[key];break;
- case "onChange" : onChange=p[key];break;
- case "font" : font=p[key];break;
- case "vertical" :
- vertical=!!p[key];
- if (slider) slider.setProperties({vertical: vertical})
- break;
- default:
- me[key] = p[key];
- }
- }
- });
- }
-
- me.setValue = function(newValue,internal){
- if (newValue!==value) {
- prevValue=value;
- }
- value=newValue;
- slider.setValue(value,internal);
- numberDisplay.setValue(value,internal);
- me.refresh();
- if (!internal && onChange) {
-
- if (me.trackUndo){
- var editAction = StateManager.createValueUndo(me);
- editAction.name= me.undoLabel || "Change " + me.name;
- if (me.undoInstrument) {
- editAction.instrument = Tracker.getCurrentInstrumentIndex();
- editAction.id += editAction.instrument;
- }
- StateManager.registerEdit(editAction);
- }
-
-
- onChange(value);
- }
- };
-
- me.getValue = function(){
- return value;
- };
-
- me.getPrevValue = function(){
- return prevValue;
- };
-
- me.setMax = function(newMax,skipCheck){
- max = newMax;
- if (!skipCheck && value>max) me.setValue(max);
- slider.setMax(max,skipCheck);
- numberDisplay.setMax(max,skipCheck);
- };
-
- me.setMin = function(newMin,skipCheck){
- min = newMin;
- if (!skipCheck && value<min) me.setValue(min);
- slider.setMin(min,skipCheck);
- numberDisplay.setMin(min,skipCheck);
- };
-
- me.setDisabled = function(value){
- disabled = value;
- me.refresh();
- me.ignoreEvents = disabled;
- };
-
- me.render = function(internal){
- internal = !!internal;
- if (me.needsRendering){
- me.clearCanvas();
-
- //me.ctx.drawImage(Y.getImage("panel_inset_dark"),digitX,digitY,digitW,digitH);
- //window.fontLed.write(me.ctx,padValue(),digitX+4,digitY+2,0);
- slider.render();
- numberDisplay.render();
-
- if (font){
- font.write(me.ctx,label,labelX,labelY,0);
- }else{
- me.ctx.fillStyle = "white";
- me.ctx.fillText(label,labelX,labelY);
- }
-
- if (vertical){
- me.ctx.drawImage(lineVer,me.width-2,0,2,me.height);
- }
-
- if (disabled){
- me.ctx.fillStyle = "rgba(34, 49, 85, 0.6)";
- me.ctx.fillRect(1,0,me.width-1,me.height);
- }
-
-
- }
- me.needsRendering = false;
-
- if (internal){
- return me.canvas;
- }else{
- me.parentCtx.drawImage(me.canvas,me.left,me.top,me.width,me.height);
- }
-
- };
-
- me.onMouseWheel = function(touchData){
- if (touchData.mouseWheels[0] > 0){
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/spinBox.js
^
|
@@ -1,217 +0,0 @@
-UI.spinBox = function(initialProperties){
-
- var me = UI.numberDisplay(initialProperties);
- me.type = "spinBox";
-
- var size="medium";
- var label = "";
- var labels;
- var font;
- var step = 1;
-
- if (initialProperties) setPropertiesValues(initialProperties);
-
-
- var buttonDown = UI.Assets.generate("button20_20");
- buttonDown.onDown = function(){
- if (me.isDisabled) return;
- me.updateValue(me.getValue()-step);
- UI.ticker.onEachTick4(function(){
- me.updateValue(me.getValue()-step);
- },10);
- };
- buttonDown.onTouchUp = function(){
- UI.ticker.onEachTick4();
- };
-
- buttonDown.setProperties({
- name:"buttonDown",
- label:"↓"
- });
- me.addChild(buttonDown);
-
- var buttonUp = UI.Assets.generate("button20_20");
- buttonUp.onDown = function(){
- if (me.isDisabled) return;
- me.updateValue(me.getValue()+step);
- UI.ticker.onEachTick4(function(){
- me.updateValue(me.getValue()+step);
- },10);
- };
- buttonUp.onTouchUp = function(){
- UI.ticker.onEachTick4();
- };
- buttonUp.setProperties({
- name:"buttonUp",
- label:"↑"
- });
- me.addChild(buttonUp);
-
- var setPropertiesIntern = me.setProperties;
-
- me.setProperties = function(newProperties){
- setPropertiesValues(newProperties);
- if (setPropertiesIntern) setPropertiesIntern(newProperties);
- }
-
- /*me.setProperties = function(newProperties){
- if (!newProperties) return properties;
-
- properties = newProperties || {};
- setPropertiesValues(properties);
-
- me.setSize(me.width,me.height);
- me.setPosition(me.left,me.top);
-
-
- };*/
-
- function setPropertiesValues(properties){
- if (typeof properties.size != "undefined") size = properties.size;
- if (typeof properties.label != "undefined") label = properties.label;
- if (typeof properties.labels != "undefined") labels = properties.labels;
- if (typeof properties.font != "undefined") font = properties.font;
- if (typeof properties.step != "undefined") step = properties.step;
- //if (typeof properties.disabled != "undefined") disabled = !!properties.disabled;
- }
-
-
-
- me.renderInternal = function(){
-
-
- if (label){
- if (font){
- font.write(me.ctx,label,6,11,0);
- }else{
- me.ctx.fillStyle = "white";
- me.ctx.fillText(label,10,10);
- }
- }
-
- buttonUp.render();
- buttonDown.render();
-
-
- //if (me.needsRendering){
- //me.clearCanvas();
-
-
-
- //if (size === "big"){
- //me.ctx.drawImage(Y.getImage(backGroundImage),buttonUp.left - 36,-1,34+2,me.height+1);
-
- //window.fontLedBig.write(me.ctx,padValue(),buttonUp.left - 36,2,0);
- //window.fontLedBig.write(me.ctx,padValue(),buttonUp.left - 31,4,0);
-
- //}else{
-
- /*
- var padding = 2;
-
-
- var valueX = buttonUp.left - 32 - 10 - 4;
- var valueY = 2;
- var valueW = 40;
- var valueH = 24 + padding*2;
-
-
- if (padLength === 2){
- valueW = 24;
- valueX += 16;
- }
-
- if (padLength === 3){
- valueW = 32;
- valueX += 8;
- }
-
- if (padLength === 5){
- valueW = 48;
- valueX -= 8;
- }
-
- valueW += padding*2;
- valueX -= padding;
- valueY -= padding;
-
-
-
- me.ctx.drawImage(Y.getImage(backGroundImage),valueX,valueY,valueW,valueH);
-
- valueX +=4;
- valueY = 7;
- window.fontLed.write(me.ctx,padValue(),valueX,valueY,0);
-
- if (isCursorVisible){
- me.ctx.fillStyle = "rgba(255,201,65,0.7)";
- var charWidth = 8;
- var cursorX = valueX + cursorPos*charWidth;
- me.ctx.fillRect(cursorX,4,2,me.height-8);
- }
- */
- //}
-
- //body.style.backgroundColor ="rgba(255,201,65,0.7)";
-
-
-
- //var b = buttonUp.render(true);
- //me.ctx.drawImage(b,10,10,50,30);
- //}
-
-
- };
-
- me.onResize = function(){
- //me.setPadLength(Math.floor(me.width/9) - 1);
-
- if (labels){
- labels.forEach(function(item){
- if (me.width>=item.width) label=item.label;
- })
- }
-
- if (size === "big"){
- buttonUp.setProperties({
- left: me.width - buttonDown.width,
- height: Math.floor(me.height/2),
- top:0
- });
- buttonDown.setProperties({
- left:buttonUp.left,
- height: buttonUp.height,
- top: me.height - buttonUp.height
- });
-
- me.paddingLeft = 2;
- me.paddingRight = buttonUp.width;
- me.paddingBottom = -1;
- me.paddingTop = -1;
-
- }else{
- buttonDown.setProperties({
- left: me.width - buttonDown.width,
- top:3
- });
- buttonUp.setProperties({
- left:me.width - buttonUp.width - buttonDown.width,
- top:3
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/stateManager.js
^
|
@@ -1,258 +0,0 @@
-var StateManager = function(){
- var me = {};
- var maxHistory = 100;
- var history = {undo:[],redo:[]};
- var locked;
-
- me.registerEdit = function(action){
- var doRegister = true;
-
- if (locked){
- // we're already in a UNDO/REDO action, or in a init state action
- return;
- }
-
- if (history.undo.length){
- switch (action.type) {
- case EDITACTION.VALUE:
- var lastAction = history.undo[history.undo.length-1];
- if (lastAction && lastAction.type === action.type && lastAction.id===action.id){
- doRegister = false;
- lastAction.to = action.to;
- console.log("Ignoring sequential Undo, to: " + action.to);
- }else{
- console.log("Add Value Undo");
- }
- break;
- }
- }
-
- if (doRegister){
- history.undo.push(action);
- if (history.undo.length>maxHistory) history.undo.shift();
- history.redo = [];
- }
-
- };
-
- me.undo = function(){
- if(history.undo.length){
- var action = history.undo.pop();
- locked = true;
-
- if (action.instrument && action.instrument !== Tracker.getCurrentInstrumentIndex()) Tracker.setCurrentInstrumentIndex(action.instrument);
-
- switch (action.type) {
- case EDITACTION.NOTE:
- case EDITACTION.RANGE:
- case EDITACTION.TRACK:
- case EDITACTION.PATTERN:
- var patternData = Tracker.getSong().patterns[action.id];
- if (action.id !== Tracker.getCurrentPattern()){
- Tracker.setCurrentPattern(action.id);
- }
- action.data.forEach(function(item){
- //console.error(item);
- if (patternData){
- var note = patternData[item.position.row][item.position.track] || new Note();
- note.populate(item.from);
- }
- });
- EventBus.trigger(EVENT.patternChange,action.id);
- break;
- case EDITACTION.VALUE:
- action.target.setValue(action.from);
- break;
- case EDITACTION.DATA:
- if (action.target === EDITACTION.SAMPLE){
- action.undo = true;
- action.redo = false;
- EventBus.trigger(EVENT.showView,"sample");
- EventBus.trigger(EVENT.commandProcessSample,action);
- }
- break;
- default:
- console.warn("Unknown UNDO action")
- console.warn(action);
- }
-
-
- history.redo.push(action);
- locked = false;
-
- if (action.name){
- UI.setStatus("Undo " + action.name);
- }
- }
- };
-
- me.redo = function(){
- if(history.redo.length){
- var action = history.redo.pop();
- locked = true;
-
- if (action.instrument && action.instrument !== Tracker.getCurrentInstrumentIndex()) Tracker.setCurrentInstrumentIndex(action.instrument);
-
- switch (action.type) {
- case EDITACTION.NOTE:
- case EDITACTION.RANGE:
- case EDITACTION.TRACK:
- case EDITACTION.PATTERN:
- var patternData = Tracker.getSong().patterns[action.id];
- if (action.id !== Tracker.getCurrentPattern()){
- Tracker.setCurrentPattern(action.id);
- }
- action.data.forEach(function(item){
- if (patternData){
- var note = patternData[item.position.row][item.position.track] || new Note();
- item.to ? note.populate(item.to) : note.clear();
- }
- });
- EventBus.trigger(EVENT.patternChange,action.id);
- break;
- case EDITACTION.VALUE:
- action.target.setValue(action.to);
- break;
- case EDITACTION.DATA:
- if (action.target === EDITACTION.SAMPLE){
- action.undo = false;
- action.redo = true;
- EventBus.trigger(EVENT.showView,"sample");
- EventBus.trigger(EVENT.commandProcessSample,action);
- }
- break;
- default:
- console.warn("Unknown UNDO action")
- console.warn(action);
- }
-
- history.undo.push(action);
- locked = false;
-
- if (action.name){
- UI.setStatus("Redo " + action.name);
- }
- }
- };
-
-
- me.createNoteUndo = function(pattern,track,row,note){
- return {
- target: EDITACTION.PATTERN,
- type: EDITACTION.NOTE,
- id: pattern,
- data:[{
- position: {
- track: track,
- row: row
- },
- from: note.duplicate()
- }]
- };
- };
-
- me.createTrackUndo = function(pattern){
- return {
- target: EDITACTION.PATTERN,
- type: EDITACTION.TRACK,
- id: pattern,
- data:[]
- };
- };
-
- me.createPatternUndo = function(pattern){
- return {
- target: EDITACTION.PATTERN,
- type: EDITACTION.PATTERN,
- id: pattern,
- data:[]
- };
- };
-
- me.createRangeUndo = function(pattern){
- return {
- target: EDITACTION.PATTERN,
- type: EDITACTION.RANGE,
- id: pattern,
- data:[]
- };
- };
-
- me.createValueUndo = function(control){
- return {
- target: control,
- type: EDITACTION.VALUE,
- id: control.name,
- from: control.getPrevValue(),
- to: control.getValue()
- };
- };
-
- me.createSampleUndo = function(action,rangeStart,rangeLength){
- return {
- target: EDITACTION.SAMPLE,
- type: EDITACTION.DATA,
- id: "sample" + Tracker.getCurrentInstrumentIndex(),
- instrument: Tracker.getCurrentInstrumentIndex(),
- from: rangeStart || 0,
- to: rangeLength || 0,
- action: action
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/ticker.js
^
|
@@ -1,48 +0,0 @@
-UI.ticker = (function(){
- // groups UI related timers
-
- var me = {};
- var onEachTick2,onEachTick4;
- var onEachTick2Delay,onEachTick4Delay;
- var onEachTick2Count,onEachTick4Count;
- var ticker2 = 0;
- var ticker4 = 0;
- var tickerActive = false;
-
-
- me.onEachTick2 = function(handler,delay){
- onEachTick2Count = 0;
- onEachTick2Delay = delay || 0;
- onEachTick2 = handler;
- tickerActive = onEachTick2 || onEachTick4;
- };
-
- me.onEachTick4 = function(handler,delay){
- onEachTick4Count = 0;
- onEachTick4Delay = delay || 0;
- onEachTick4 = handler;
- tickerActive = onEachTick2 || onEachTick4;
- };
-
- EventBus.on(EVENT.screenRefresh,function(){
- if (tickerActive){
- ticker2 = 1-ticker2;
- if (ticker2){
- ticker4 = 1-ticker4;
- if (onEachTick2) {
- onEachTick2Count++;
- if (onEachTick2Count>onEachTick2Delay) onEachTick2();
- }
- if (ticker4){
- if (onEachTick4) {
- onEachTick4Count++;
- if (onEachTick4Count>onEachTick4Delay) onEachTick4();
- }
- }
- }
- }
-
- });
-
- return me;
-}());
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/waveform.js
^
|
@@ -1,1061 +0,0 @@
-UI.WaveForm = function(){
-
- var me = UI.element();
- me.name = "Waveform";
- var currentSampleData;
- var currentInstrument;
- var isPlaying;
- var isDraggingRange;
- var hasRange;
- var startPlayTime;
- var sampleRate;
- var sampleLength;
- var dragRangeStart;
- var dragRangeEnd;
- var rangeStart = -1;
- var rangeEnd = -1;
- var rangeLength = 0;
- var dragMarker = 0;
- var activeDragMarker = 0;
- var dragMarkerStart = 0;
- var isDown = false;
- var zoom = 1;
- var zoomStart = 0;
- var zoomEnd = 0;
- var zoomLength = 0;
- var hasHorizontalScrollBar;
- var ignoreInstrumentChange;
- var rangeCache = [];
- var playingOffset = 0;
-
- var MARKERTYPE = {
- loopStart: 1,
- loopEnd: 2,
- rangeStart: 3,
- rangeEnd: 4
- };
-
- var waveformDisplay = UI.element();
-
- var background = UI.scale9Panel(0,0,me.width,me.height,{
- img: Y.getImage("panel_dark"),
- left:3,
- top:3,
- right:2,
- bottom: 2
- });
- background.ignoreEvents = true;
-
- var scrollBar = UI.scale9Panel(1,0,100,18,{
- img: Y.getImage("bar"),
- left:2,
- top:2,
- right:3,
- bottom: 3
- });
-
- scrollBar.onDragStart=function(){
- //if (Tracker.isPlaying()) return;
- scrollBar.startDragIndex = zoomStart;
- scrollBar.startLeft = scrollBar.left;
- };
-
- scrollBar.onDrag=function(touchData){
- var delta = touchData.deltaX;
- var newPos = scrollBar.startLeft + delta;
- var min = 1;
- var max = me.width - scrollBar.width - 1;
-
- newPos = Math.max(newPos,min);
- newPos = Math.min(newPos,max);
-
- scrollBar.setPosition(newPos,scrollBar.top);
-
- var range = newPos/(max-min);
- zoomLength = zoomEnd - zoomStart;
- zoomStart = Math.floor((sampleLength-zoomLength) * range);
- zoomEnd = zoomStart + zoomLength;
- waveformDisplay.refresh();
-
-
-
- };
- me.addChild(scrollBar);
-
-
- function isRefreshing(){
- return isPlaying || isDraggingRange;
- }
-
- EventBus.on(EVENT.screenRefresh,function(){
- if (!isRefreshing()) return;
- if (!me.isVisible()) return;
- me.refresh();
- });
-
-
- me.scroll = function(delta){
- var newPos = scrollBar.left + delta;
- var min = 1;
- var max = me.width - scrollBar.width - 1;
-
- newPos = Math.max(newPos,min);
- newPos = Math.min(newPos,max);
-
- scrollBar.setPosition(newPos,scrollBar.top);
-
- var range = newPos/(max-min);
- zoomLength = zoomEnd - zoomStart;
- zoomStart = Math.floor((sampleLength-zoomLength) * range);
- zoomEnd = zoomStart + zoomLength;
- waveformDisplay.refresh();
-
- }
-
- me.onDragStart = function(touchData){
-
- var x = touchData.startX;
-
- if (currentInstrument.sample.loop.enabled){
-
- var markerX = getLoopMarkerPos(MARKERTYPE.loopEnd);
- if (Math.abs(x-markerX)<5){
- dragMarker = MARKERTYPE.loopEnd;
- dragMarkerStart = currentInstrument.sample.loop.length;
- return;
- }
-
- markerX = getLoopMarkerPos(MARKERTYPE.loopStart);
- if (Math.abs(x-markerX)<5){
- dragMarker = MARKERTYPE.loopStart;
- dragMarkerStart = currentInstrument.sample.loop.start;
- return;
- }
-
- }
-
- if (rangeLength){
- markerX = getRangeMarkerPos(MARKERTYPE.rangeEnd);
- if (Math.abs(x-markerX)<5){
- dragMarker = MARKERTYPE.rangeEnd;
- dragMarkerStart = rangeLength;
- return;
- }
- }
-
- if (rangeStart>=0){
- markerX = getRangeMarkerPos(MARKERTYPE.rangeStart);
- if (Math.abs(x-markerX)<5){
- dragMarker = MARKERTYPE.rangeStart;
- dragMarkerStart = rangeStart;
- return;
- }
- }
-
- isDraggingRange = true;
- dragRangeStart = dragRangeEnd = touchData.startX;
-
- var pixelValue = (currentInstrument.sample.length/me.width)/zoom;
- rangeStart = rangeEnd = Math.round(zoomStart + (dragRangeStart * pixelValue));
- rangeLength = 0;
- EventBus.trigger(EVENT.samplePropertyChange,{
- rangeLength: rangeLength
- });
- };
-
- me.onDrag = function(touchData){
- var pixelValue = (currentInstrument.sample.length/me.width)/zoom;
-
- if (dragMarker && (dragMarker === MARKERTYPE.loopStart || dragMarker === MARKERTYPE.loopEnd)){
- activeDragMarker = dragMarker;
- var delta = touchData.deltaX;
- var value = dragMarkerStart + Math.round(pixelValue*delta);
- if (!Tracker.inFTMode()) value -= value%2;
-
- var newProps = {};
-
- if (dragMarker === MARKERTYPE.loopStart){
- value = Math.min(value,sampleLength-2);
- value = Math.max(value,0);
- newProps.loopStart = value;
-
- if ((newProps.loopStart + currentInstrument.sample.loop.length)>sampleLength){
- newProps.loopLength = sampleLength - newProps.loopStart;
- }
- }else{
- value = Math.max(value,2);
- value = Math.min(value,sampleLength-currentInstrument.sample.loop.start);
-
- newProps.loopLength = value;
- }
-
- EventBus.trigger(EVENT.samplePropertyChange,newProps);
- me.refresh();
- return;
- }
-
-
- if (dragMarker && (dragMarker === MARKERTYPE.rangeStart || dragMarker === MARKERTYPE.rangeEnd)){
- activeDragMarker = dragMarker;
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/yascal/sprite.js
^
|
@@ -1,23 +0,0 @@
-Yascal.sprite = function(initialProperties){
- var me = {};
-
- me.canvas = document.createElement("canvas");
- me.ctx = me.canvas.getContext("2d");
-
- if (initialProperties){
- if (initialProperties.width){
- me.canvas.width = initialProperties.width;
- me.canvas.height = initialProperties.height || initialProperties.width;
- }
-
- if (initialProperties.img){
- var x=initialProperties.x||0;
- var y=initialProperties.y||0;
- var w=me.canvas.width;
- var h=me.canvas.height;
- me.ctx.drawImage(initialProperties.img,x,y,w,h,0,0,w,h);
- }
- }
-
- return me;
-};
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/script/src/ui/yascal/yascal.js
^
|
@@ -1,23 +0,0 @@
-var Yascal = (function(){
- var me = {};
-
- me.sprites = {};
- me.getImage = function(name){
- return me.sprites[name] ? me.sprites[name].canvas : undefined;
- };
-
- me.loadImage = function(url,next){
- var img = new Image();
- img.onload = function(){
- if (next) next(img);
- };
- img.onerror = function(){
- console.error('XHR error while loading ' + url);
- };
- img.src = url;
- };
-
- return me;
-})();
-
-var Y = Yascal;
\ No newline at end of file
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/skin.psd
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/background.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/bar.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/bar_hover.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/boing.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/button_hover_green.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/button_inlay.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/button_inlay_active.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/button_inlay_blue.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/button_inlay_blue_active.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/button_inlay_green.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/button_inlay_green_active.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/button_inlay_plain.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/button_inlay_red.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/button_inlay_red_active.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/button_inlay_red_hover.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/button_light.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/button_light_hover.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/checkbox_off.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/checkbox_on.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/dropbox.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/dropzone.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/font.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/font.psd
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/icons_small/disk.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/icons_small/module.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/icons_small/sample.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/keybutton.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/keybutton_highlight2.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/keybutton_highlight3.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/keybutton_hover.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/knob_back.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/knob_back_inactive.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/knob_front.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/lednumber.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/line_hor.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/line_ver.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/logo_colour_70.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/logo_grey_70.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/mute.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/nibbles.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/oscilloscope.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/panel_black_insert.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/panel_dark.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/panel_dark_blueish.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/panel_dark_greyish.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/panel_dark_insert.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/panel_inset.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/panel_inset_dark.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/panel_inset_dark_active.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/panel_inset_dark_inactive.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/panel_light.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/panel_mid.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/panel_trans.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/piano.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/pianokey_black.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/pianokey_black_down.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/pianokey_white.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/pianokey_white_down.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/play.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/play_active_red.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/play_green.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/play_green_hover.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/radio_active.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/radio_big_active.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/radio_big_inactive.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/radio_inactive.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/record.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/record_active.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/record_hover.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/slider_back.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/slider_back_vert.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/slider_knob.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/slider_knob_vert.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/solo.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/steffest.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/tracker.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/vu_green.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/vu_green_active.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/vu_red.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/vu_red_active.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/vu_yellow.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/vu_yellow_active.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/vubar.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/wave_saw.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/wave_saw_inverse.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/wave_sin.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/src/wave_square.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/work/button_dark2.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/work/button_inlay_yellow.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/work/button_inlay_yellow_active.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/work/icon.psd
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/work/logo.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/work/logo.psd
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/work/logo_grey.psd
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/work/logo_spark.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/work/logo_spark_72.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/work/oscilloscope.psd
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/work/oscilloscope_back.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/work/oscilloscope_back_trans.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/work/oscilloscopeb.png
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/work/piano.psd
^
|
|
Deleted |
_service:tar_git:harbour-bassoontracker-0.4.0.tar.bz2/qml/html/skin/work/play_active.png
^
|