Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Biography Discussion (Read 109946 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Re: Biography Discussion

Reply #650
New version: Biography v1.2.0-Beta.2

Changelog

Fixed
- Various draw issues
- Old ini file settings sometimes not being imported
- Some issues with options

Re: Biography Discussion

Reply #651
@WilB I'm using the latest version which is great, thanks.

Can I change the album art file name to folder.jpg? Currently it uses folder.png.

Re: Biography Discussion

Reply #652
@WilB After updating to 2 beta, my player crash, I restored the portable build 2 times and still

Crash location:
Module: foo_spider_monkey_panel
Offset: 466A3h

Spoiler (click to show/hide)

Re: Biography Discussion

Reply #653
While working on the interaction with the world map script noticed the updated config part seems to be broken.
As far as I have seen (since I can not open the settings window without IE...) I have to set this config to true to get the tags.
Code: [Select]
		['Notify Tags: Current Track', false, 'boolean', h, 'notifyTags'],

With this
Code: [Select]
window.NotifyOthers('bio_newCfg', {notifyTags: true});


But...
callbacks.js
Code: [Select]
		case 'bio_newCfg':
cfg.updateCfg($.jsonParse(info, {})); //?? JSON.parse(JSON.stringify(info))
break;

settings.js
Code: [Select]
	updateCfg(new_cfg) {
for (const key of Object.keys(this.cfg)) { // Why are you iterating over this instead of the new config?
cfg[key] = this.cfg[key] = new_cfg[key + '_internal'].value; // undefined crash
}
this.parse();
}

There is another thing "missing" which I added in the previous release overwriting your 'on_notify_data' callback, a way to retrieve the current properties of the panel and to set them (to get the selection mode and synchronize it).

Code: [Select]
function on_notify_data(name, info) {
if (name === 'World Map' + ' notifySelectionProperty') {
ppt.focus = info; p.changed(); t.on_playback_new_track(); img.on_playback_new_track();
}

Code: [Select]
	t.draw = function() {
tag.notifyCountry(s.handle(ppt.focus)); // tags
window.NotifyOthers(window.Name + ' notifySelectionProperty', {property: 'focus', val: ppt.focus}); // selection property
return old_t_draw.apply(old_t_draw, arguments);
}

I simply did it for the selection ppt, but obviously it could be done in general. Following your new file structure:

callbacks.js
Code: [Select]
	switch (name) {
case 'bio_setPpt':
clone = JSON.parse(JSON.stringify(info));
for (const key of Object.keys(clone)) {
if (ppt.hasOwnProperty(key) && ppt[key] !== clone [key]) {
ppt[key] = clone [key];
... // I did it for the ppt.focus only since changing some ppts required additional checks on prev. releases
}
}
break;

And somewhere, when sharing tags too:

text.js
Code: [Select]
		this.currentTrackTags = $.debounce(() => {
const handle = $.handle(ppt.focus);
if (handle) tag.write(new FbMetadbHandleList([handle]), true);
}, 2000, {
'leading': true,
'trailing': true
});
window.NotifyOthers('bio_ppt', ppt); // This

Do you plan to add something like that (or just sharing/setting the focus mode)? Or should I simply inject my mod file as I did with the previous release?

EDIT: just seen tagger.js contains selectionMode (along the tags and handle) on window.NotifyOthers('biographyTags'), which covers the get ppt part but there is no way to set the selectionMode which would be missing piece to synchronize it with other panels.

Re: Biography Discussion

Reply #654
That's the missing piece to synchronize the focus mode in 1.2.X. (without caring about other ppts)
Code: [Select]
function on_notify_data(name, info) {
switch (name) {
case 'bio_focusPpt':
if (ppt.focus !== info) { // info -> true/false
  // Mimics setsDisplay()
ppt.toggle('focus');
panel.changed();
txt.on_playback_new_track();
img.on_playback_new_track();
}
break;
}

Re: Biography Discussion

Reply #655
@regor

I'll add that in reply #654 (^) for the next version.
Yes, the user has to enable notify tags by ticking the checkbox in options > server settings... > tagger.

@Black_Over_Bills_Mothers

I don't really understand where you mean?
Any last.fm covers saved automatically use the last.fm image extension. Photos use jpg, as the source list doesn't have the image type.
You can always use a wild card in file\preferences\display\album art... patterns, e.g. folder.*

@Mrakobes

The crash is in Spider Monkey Panel itself, and not an obvious biography issue. Last event seems to be GetSystemMetricsForDpi. Code for reading dpi hasn't changed for ages (it's same as in v1.1.3). Does Beta.1 still work on the same foobar2000 install? - it's possible some other change has exposed an instability within Spider Monkey Panel. I also note you're using some other components that can be problematical. Do you see the issue on a clean foobar2000 install with just Spider Monkey Panel & standard components.

You could try posting the full crash dump in the Spider Monkey thread to see if @TheQwertiest can see anything.

Re: Biography Discussion

Reply #656
^
Hi there.
A few days ago, the same crash started to occur when starting the player.
Here's a fragment:
Spoiler (click to show/hide)
Only reinstalling the foo_spider_monkey_panel and reinstalling all of its panels solved the problem.

 
SimplePortal 1.0.0 RC1 © 2008-2021