Skip to content

Commit

Permalink
Merge pull request #949 from rern/UPDATE
Browse files Browse the repository at this point in the history
Update
  • Loading branch information
rern authored Jun 18, 2022
2 parents e457cb4 + 1b5fb26 commit 6c96d7d
Show file tree
Hide file tree
Showing 20 changed files with 263 additions and 244 deletions.
24 changes: 12 additions & 12 deletions srv/http/assets/css/info.css
Original file line number Diff line number Diff line change
Expand Up @@ -287,10 +287,11 @@ hr {
#infoTop {
float: left;
width: calc( 100% - 40px );
color: var( --cw );
line-height: 40px;
height: 40px;
padding: 0 0 0 5px;
line-height: 40px;
text-align: left;
color: var( --cw );
}
#infoTop i {
float: left;
Expand Down Expand Up @@ -344,19 +345,17 @@ hr {
text-overflow: ellipsis;
letter-spacing: 2px;
}
#infoArrow {
position: absolute;
#infoTab {
width: 100%;
background: var( --cgd );
}
#infoArrow i {
float: left;
width: 40px;
height: 40px;
font-size: 24px;
color: var( --cm );
#infoTab a {
display: inline-block;
line-height: 40px;
}
.fa-arrow-right {
float: right !important;
#infoTab a.active {
background: var( --cga );
border-radius: 5px 5px 0 0;
}
#infoContent {
padding: 20px 10px 10px 10px;
Expand Down Expand Up @@ -573,6 +572,7 @@ hr {
}
@media ( hover:hover ) {
/* :hover *********************************************************/
#infoTab,
#infoContent label,
input[type=checkbox],
input[type=radio],
Expand Down
223 changes: 110 additions & 113 deletions srv/http/assets/js/equalizer.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,124 +21,121 @@ var content = `
</div>`;
function equalizer() {
bash( [ 'equalizerget' ], function( data ) {
G.eqcurrent = data.current;
G.vcurrent = data.values.join( '' );
G.nameval = data.nameval;
var eqbuttons = {}
var changed = false;
var values = [ '', data.current, ...data.values ]; // [ #eqname, #eqpreset, ... ]
var optpreset = '';
data.presets.forEach( function( name ) {
optpreset += '<option value="'+ name +'">'+ name +'</option>';
} );
info( {
icon : 'equalizer'
, title : 'Equalizer'
, content : content.replace( 'PRESETS', optpreset )
, values : values
, beforeshow : function() {
$( '#infoBox' ).css( 'width', 550 );
eqButtonSet();
if ( !/Android.*Chrome/i.test( navigator.userAgent ) ) { // fix: chrome android cannot drag
$( '#infoRange input' ).on( 'click input keyup', function() {
var $this = $( this );
eqValueSet( band[ $this.index() ], $this.val() )
} );
} else {
var $this, ystart, val, prevval;
var yH = $( '#infoRange input' ).width() - 40;
var step = yH / 40;
$( '#infoRange input' ).on( 'touchstart', function( e ) {
$this = $( this );
ystart = e.changedTouches[ 0 ].pageY;
val = +$this.val();
} ).on( 'touchmove', function( e ) {
var pageY = e.changedTouches[ 0 ].pageY;
var diff = ystart - pageY;
if ( Math.abs( diff ) < step ) return

var v = val + Math.round( diff / step );
if ( v === prevval || v > 80 || v < 40 ) return

prevval = v;
$this.val( v );
eqValueSet( band[ $this.index() ], v )
} );
}
$( '#eqpreset' ).change( function() {
var name = $( this ).val();
G.eqcurrent = name;
bash( [ 'equalizer', 'preset', name ] );
} );
$( '#eqname' ).on( 'keyup paste cut', function( e ) {
var val = $( this ).val().trim();
var blank = val === '';
var exists = data.presets.includes( val );
if ( $( '#eqrename' ).hasClass( 'hide' ) ) {
var changed = !blank && !exists && val !== G.eqcurrent;
} else { // new
var changed = !blank && !exists;
}
if ( e.key === 'Enter' && changed ) $( '#eqsave' ).click();
$( '#eqsave' ).toggleClass( 'disabled', !changed );
} );
$( '#eqdelete' ).click( function() {
G.eqcurrent = 'Flat';
bash( [ 'equalizer', 'delete', $( '#eqpreset' ).val() ] );
$( '#eqcancel' ).click();
} );
$( '#eqrename' ).click( function() {
$( '#eqrename, #eqdelete' ).toggleClass( 'hide' );
$( '#eqname' ).val( G.eqcurrent );
$( '#eqnew' ).click();
} );
$( '#eqsave' ).click( function() {
var eqname = $( '#eqname' ).hasClass( 'hide' ) ? $( '#eqpreset' ).val() : $( '#eqname' ).val();
if ( $( '#eqname' ).hasClass( 'hide' ) ) {
bash( [ 'equalizer', 'save', eqname ] );
} else {
bash( [ 'equalizer', 'rename', G.eqcurrent, eqname ] );
}
$( '#eqcancel' ).click();
$( '#eqrename' ).removeClass( 'disabled' );
$( '#eqsave' ).addClass( 'disabled' );
} );
$( '#eqnew' ).click( function() {
eqbuttons = {};
[ 'eqrename', 'eqsave', 'equndo' ].forEach( function( btn ) {
eqbuttons[ btn ] = $( '#'+ btn ).hasClass( 'disabled' );
} );
$( '#eqnew, #eq .selectric-wrapper' ).addClass( 'hide' );
$( '#eqname, #eqcancel' ).removeClass( 'hide' );
$( '#eqrename' ).addClass( 'disabled' );
$( '#eqsave' ).addClass( 'disabled' );
} );
$( '#eqcancel' ).click( function() {
$( '#eqrename, #eqnew, #eq .selectric-wrapper' ).removeClass( 'hide' );
$( '#eqname, #eqcancel, #eqdelete' ).addClass( 'hide' );
$( '#eqname' ).val( '' );
[ 'eqrename', 'eqsave', 'equndo' ].forEach( function( btn ) {
$( '#'+ btn ).toggleClass( 'disabled', eqbuttons[ btn ] );
} );
G.eq = data;
infoEqualizer();
}, 'json' );
}
function infoEqualizer( update ) {
var values = [ '', G.eq.current, ...G.eq.values ]; // [ #eqname, #eqpreset, ... ]
var optpreset = '';
G.eq.presets.forEach( function( name ) {
optpreset += '<option value="'+ name +'">'+ name +'</option>';
} );
info( {
icon : 'equalizer'
, title : 'Equalizer'
, content : content.replace( 'PRESETS', optpreset )
, values : values
, noreload : update ? 1 : 0
, beforeshow : function() {
$( '#infoBox' ).css( 'width', 550 );
eqButtonSet();
if ( !/Android.*Chrome/i.test( navigator.userAgent ) ) { // fix: chrome android cannot drag
$( '#infoRange input' ).on( 'click input keyup', function() {
var $this = $( this );
eqValueSet( band[ $this.index() ], $this.val() )
} );
$( '#equndo' ).click( function() {
if ( G.eqcurrent === '(unnamed)' ) G.eqcurrent = 'Flat';
bash( [ 'equalizer', 'preset', G.eqcurrent ] );
} else {
var $this, ystart, val, prevval;
var yH = $( '#infoRange input' ).width() - 40;
var step = yH / 40;
$( '#infoRange input' ).on( 'touchstart', function( e ) {
$this = $( this );
ystart = e.changedTouches[ 0 ].pageY;
val = +$this.val();
} ).on( 'touchmove', function( e ) {
var pageY = e.changedTouches[ 0 ].pageY;
var diff = ystart - pageY;
if ( Math.abs( diff ) < step ) return

var v = val + Math.round( diff / step );
if ( v === prevval || v > 80 || v < 40 ) return

prevval = v;
$this.val( v );
eqValueSet( band[ $this.index() ], v )
} );
}
, buttonnoreset : 1
, okno : 1
} );
}, 'json' );
$( '#eqpreset' ).change( function() {
bash( [ 'equalizer', 'preset', $( this ).val() ] );
} );
$( '#eqname' ).on( 'keyup paste cut', function( e ) {
var val = $( this ).val().trim();
var blank = val === '';
var exists = G.eq.presets.includes( val );
if ( $( '#eqrename' ).hasClass( 'hide' ) ) {
var changed = !blank && !exists && val !== G.eq.current;
} else { // new
var changed = !blank && !exists;
}
if ( e.key === 'Enter' && changed ) $( '#eqsave' ).click();
$( '#eqsave' ).toggleClass( 'disabled', !changed );
} );
$( '#eqdelete' ).click( function() {
bash( [ 'equalizer', 'delete', G.eq.current ] );
$( '#eqcancel' ).click();
} );
$( '#eqrename' ).click( function() {
$( '#eqrename, #eqdelete' ).toggleClass( 'hide' );
$( '#eqname' ).val( G.eq.current );
$( '#eqnew' ).click();
} );
$( '#eqsave' ).click( function() {
if ( $( '#eqrename' ).hasClass( 'hide' ) ) {
bash( [ 'equalizer', 'rename', G.eq.current, $( '#eqname' ).val() ] );
} else {
var name = $( '#eqname' ).hasClass( 'hide' ) ? G.eq.current : $( '#eqname' ).val();
bash( [ 'equalizer', 'save', name ] );
}
$( '#eqcancel' ).click();
$( '#eqrename' ).removeClass( 'disabled' );
$( '#eqsave' ).addClass( 'disabled' );
} );
$( '#eqnew' ).click( function() {
$( '#eqnew, #eq .selectric-wrapper' ).addClass( 'hide' );
$( '#eqname, #eqcancel' ).removeClass( 'hide' );
$( '#eqrename' ).addClass( 'disabled' );
$( '#eqsave' ).addClass( 'disabled' );
if ( G.eq.current !== 'Flat' && G.eq.current !== '(unnamed)' ) $( '#eqname' ).val( G.eq.current )
} );
$( '#eqcancel' ).click( function() {
$( '#eqrename, #eqnew, #eq .selectric-wrapper' ).removeClass( 'hide' );
$( '#eqname, #eqcancel, #eqdelete' ).addClass( 'hide' );
$( '#eqname' ).val( '' );
eqButtonSet();
} );
$( '#equndo' ).click( function() {
bash( [ 'equalizer', 'preset', G.eq.current ] );
} );
}
, okno : 1
} );
}
function eqButtonSet() {
var current = $( '#eqpreset' ).val();
var flat = current === 'Flat';
var unnamed = current === '(unnamed)';
var changed = infoVal().slice( 2 ).join( ' ' ) !== G.nameval[ current ];
$( '#eqrename' ).toggleClass( 'disabled', unnamed || flat || changed );
$( '#eqsave' ).toggleClass( 'disabled', unnamed || flat || !changed );
$( '#equndo' ).toggleClass( 'disabled', G.eqcurrent === 'Flat' || !changed );
var flat = G.eq.current === 'Flat';
var unnamed = G.eq.current === '(unnamed)';
if ( flat || unnamed ) {
var changed = false;
} else {
var val = G.eq.nameval[ G.eq.current ].split( ' ' )
var vnew = infoVal().slice( 2 );
var changed = vnew.some( function( v, i ) {
return Math.abs( v - val[ i ] ) > 1 // fix: resolution not precise
} );
}
$( '#eqrename' ).toggleClass( 'disabled', flat || unnamed || changed );
$( '#eqsave' ).toggleClass( 'disabled', flat || unnamed || !changed );
$( '#equndo' ).toggleClass( 'disabled', flat || !changed );
}
function eqValueSet( band, val ) {
clearTimeout( timeout );
Expand Down
11 changes: 3 additions & 8 deletions srv/http/assets/js/features.js
Original file line number Diff line number Diff line change
Expand Up @@ -116,22 +116,17 @@ $( '#setting-camilladsp' ).click( function() {
info( {
icon : 'camilladsp'
, title : 'CamillaGUI'
, textlabel : 'Status: Refresh <gr>(ms)</gr>'
, checkbox : [ 'Apply automatically' ]
, textlabel : 'VU refresh rate <gr>(ms)</gr>'
, focus : 0
, checkblank : 1
, boxwidth : 100
, values : G.camillaguiconf
, boxwidth : 100
, values : G.camillarefresh
, checkchanged : ( G.camilladsp ? 1 : 0 )
, beforeshow : function() {
$( '#infoContent tr:eq( 1 ) td:eq( 0 )' ).text( 'Configurations:' )
}
, cancel : function() {
$( '#camilladsp' ).prop( 'checked', G.camilladsp );
}
, ok : function() {
bash( [ 'camillaguiset', ...infoVal() ] );
bash( [ 'camillaguiset', infoVal() ] );
notify( 'CamillaDSP', G.camilladsp ? 'Change ...' : 'Enable ...', 'camilladsp' );
}
} );
Expand Down
34 changes: 20 additions & 14 deletions srv/http/assets/js/function.js
Original file line number Diff line number Diff line change
Expand Up @@ -429,17 +429,21 @@ function displaySave( keys ) {
bash( [ 'displaysave', JSON.stringify( display ) ] );
}
function displaySubMenu() {
var submenu = [ 'camilladsp', 'equalizer', 'lock', 'relays', 'snapclient', 'multiraudio' ];
submenu.forEach( function( el ) {
if ( G.display.equalizer && typeof infoEqualizer !== 'function' ) {
location.reload();
return
}

$( '#dsp' )
.toggleClass( 'fa-camilladsp', G.display.camilladsp )
.toggleClass( 'fa-equalizer', G.display.equalizer );
G.display.dsp = G.display.camilladsp || G.display.equalizer;
var submenu = [ 'dsp', 'lock', 'relays', 'snapclient', 'multiraudio' ];
submenu.forEach( function( el ) { // submenu toggled by css .settings + .submenu
$( '#'+ el ).prev().toggleClass( 'sub', G.display[ el ] );
} ); // submenu toggled by css .settings + .submenu
} );
if ( G.localhost ) $( '#power' ).addClass( 'sub' );
}
/*function flag( iso ) { // from: https://stackoverflow.com/a/11119265
var iso0 = ( iso.toLowerCase().charCodeAt( 0 ) - 97 ) * -15;
var iso1 = ( iso.toLowerCase().charCodeAt( 1 ) - 97 ) * -20;
return [ iso1, iso0 ];
}*/
function getBio( artist ) {
G.bioartist.push( artist );
if ( artist === $( '#biocontent .artist' ).text() ) {
Expand Down Expand Up @@ -665,8 +669,7 @@ var chklibrary2 = {
, hidecover : 'Hide coverart band <gr>in tracks view</gr>'
, fixedcover : 'Fix coverart band <gr>on large screen</gr>'
}
function infoLibrary( page2 ) {
var page1 = !page2;
function infoLibrary( page1 ) {
var checkbox = Object.values( page1 ? chklibrary : chklibrary2 );
var keys = Object.keys( page1 ? chklibrary : chklibrary2 );
keys = keys.filter( function( k ) {
Expand All @@ -678,16 +681,19 @@ function infoLibrary( page2 ) {
} );
info( {
icon : 'library'
, title : page1 ? 'Library Home' : 'Library'
, message : page1 ? '1/2 - Show:' : '2/2 - Options:'
, title : 'Library'
, messagealign : 'left'
, arrowright : page1 ? function() { infoLibrary( 2 ) } : ''
, arrowleft : page1 ? '' : infoLibrary
, checkbox : checkbox
, checkcolumn : page1 ? 1 : ''
, values : values
, checkchanged : 1
, beforeshow : function() {
var active1 = page1 ? 'class="active"' : '';
var active2 = page1 ? '' : 'class="active"';
$( '#infoContent' ).before( '<div id="infoTab"><a '+ active1 +' style="width: 50%">Show</a><a '+ active2 +' style="width: 50%">Options</a></div>' );
$( '#infoTab a' ).click( function() {
if ( !$( this ).hasClass( 'active' ) ) page1 ? infoLibrary() : infoLibrary( 1 );
} );
if ( !page1 ) {
$( '.infomessage, #infoContent td' ).css( 'width', '287' );
var $chk = $( '#infoContent input' );
Expand Down
Loading

0 comments on commit 6c96d7d

Please sign in to comment.