Page 1 of 1

ignoring Rating (and other bugs)

Posted: 20 Jan 2014 11:55
by hdradio
I 've setup folder based media libraries and a script that asks for songs having "[Rating] >= '80'"
There are thousand of songs available. But a track is chosen that has lower rating. I see in tag editor for this file: Rating : "Poor [20*]"
This is a big problem because files with those ratings should never play.

Also when I find a track and click space to pfl this track, it plays ok but the label on quick monitor player does not change.

A few days ago while testing again pf there were some errors:

Code: Select all

02/01/2014 18:29:48 [v3.0.12.10]:********** Error/Exception Information **********
Error Message: Cannot access a disposed object.
Object name: 'b'.
Error Type: System.ObjectDisposedException
Error Source: System.Windows.Forms.System.Object MarshaledInvoke(System.Windows.Forms.Control, System.Delegate, System.Object[], Boolean)
********** System Stack Trace **********
   at System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous)
   at System.Windows.Forms.Control.Invoke(Delegate method, Object[] args)
   at System.Windows.Forms.Control.Invoke(Delegate method)
   at ProppFrexx.Player.b.f(b A_0)
   at ProppFrexx.Player.b.aq()
   at ProppFrexx.Player.b.an()
   at ProppFrexx.Player.b.a(Object A_0, RunWorkerCompletedEventArgs A_1)
   at System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
   at System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)
********** Environment Stack Trace **********
   at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo)
   at System.Environment.get_StackTrace()
   at ProppFrexx.ac.a(Exception A_0, Boolean A_1)
   at ProppFrexx.c1.a(Exception A_0)
   at ProppFrexx.c1.b(Exception A_0)
   at ProppFrexx.c1.a(Object A_0, ThreadExceptionEventArgs A_1)
   at System.Windows.Forms.Application.ThreadContext.OnThreadException(Exception t)
   at System.Windows.Forms.Control.InvokeMarshaledCallbacks()
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
   at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   at ProppFrexx.a7.b(Boolean A_0)
   at ProppFrexx.a7.a(Boolean A_0)
   at System.ComponentModel.Component.Dispose()
   at System.Windows.Forms.Control.Dispose(Boolean disposing)
   at DevExpress.XtraBars.Docking.ControlContainer.Dispose(Boolean disposing)
   at System.ComponentModel.Component.Dispose()
   at System.Windows.Forms.Control.Dispose(Boolean disposing)
   at DevExpress.XtraBars.Docking.ZIndexControl.Dispose(Boolean disposing)
   at System.ComponentModel.Component.Dispose()
   at System.Windows.Forms.Control.Dispose(Boolean disposing)
   at DevExpress.XtraBars.Docking.ZIndexControl.Dispose(Boolean disposing)
   at System.ComponentModel.Component.Dispose()
   at System.Windows.Forms.Control.Dispose(Boolean disposing)
   at DevExpress.XtraBars.Docking.ZIndexControl.Dispose(Boolean disposing)
   at System.ComponentModel.Component.Dispose()
   at DevExpress.XtraBars.Docking.DockManager.Clear()
   at DevExpress.XtraBars.Docking.DockManager.Dispose(Boolean disposing)
   at System.ComponentModel.Component.Dispose()
   at System.ComponentModel.Container.Dispose(Boolean disposing)
   at System.ComponentModel.Container.Dispose()
   at ProppFrexx.c1.Dispose(Boolean disposing)
   at System.ComponentModel.Component.Dispose()
   at System.Windows.Forms.Form.WmClose(Message& m)
   at System.Windows.Forms.Form.WndProc(Message& m)
   at DevExpress.XtraEditors.XtraForm.WndProc(Message& msg)
   at DevExpress.XtraBars.Ribbon.RibbonForm.WndProc(Message& msg)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   at System.Windows.Forms.UnsafeNativeMethods.SendMessage(HandleRef hWnd, Int32 msg, Int32 wParam, Int32 lParam)
   at System.Windows.Forms.Control.SendMessage(Int32 msg, Int32 wparam, Int32 lparam)
   at System.Windows.Forms.Form.Close()
   at ProppFrexx.c1.cg(Object A_0, ItemClickEventArgs A_1)
   at DevExpress.XtraBars.BarItem.OnClick(BarItemLink link)
   at DevExpress.XtraBars.BarButtonItem.OnClick(BarItemLink link)
   at DevExpress.XtraBars.BarItemLink.OnLinkClick()
   at DevExpress.XtraBars.BarButtonItemLink.OnLinkClick()
   at DevExpress.XtraBars.BarItemLink.OnLinkAction(BarLinkAction action, Object actionArgs)
   at DevExpress.XtraBars.BarButtonItemLink.OnLinkAction(BarLinkAction action, Object actionArgs)
   at DevExpress.XtraBars.BarItemLink.OnLinkActionCore(BarLinkAction action, Object actionArgs)
   at DevExpress.XtraBars.ViewInfo.BarSelectionInfo.ClickLink(BarItemLink link)
   at DevExpress.XtraBars.ViewInfo.BarSelectionInfo.UnPressLink(BarItemLink link)
   at DevExpress.XtraBars.Controls.CustomLinksControl.OnMouseUp(MouseEventArgs e)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at DevExpress.XtraBars.Controls.CustomControl.WndProc(Message& msg)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
   at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.Run(Form mainForm)
   at ProppFrexx.dt.a(String[] A_0)
********** End **********

Code: Select all

03/01/2014 10:32:44 [v3.0.12.10]:********** Error/Exception Information **********
Error Message: Object reference not set to an instance of an object.
Error Type: System.NullReferenceException
Error Source: DevExpress.XtraBars.v13.1.DevExpress.XtraBars.Docking.Helpers.DockZone GetDockZoneAtPos(System.Drawing.Point)
********** System Stack Trace **********
   at DevExpress.XtraBars.Docking.Helpers.DockingHandlerStateVS2005.GetDockZoneAtPos(Point screenPoint)
   at DevExpress.XtraBars.Docking.Helpers.DockingHandlerStateVS2005.BaseMouseOver(Point screenPoint)
   at DevExpress.XtraBars.Docking.Helpers.DockingHandlerStateVS2010.MouseOver(Point point)
   at DevExpress.XtraBars.Docking.Helpers.DockingHandlerStateVS2010.DoDocking(Point pt)
   at DevExpress.XtraBars.Docking.Helpers.DockingHandlerState.MouseMove(HitInfo hitInfo)
   at DevExpress.XtraBars.Docking.Helpers.DockPanelMouseHandler.MouseMove(MouseEventArgs e)
   at DevExpress.XtraBars.Docking.DockPanel.OnMouseMove(MouseEventArgs e)
   at System.Windows.Forms.Control.WmMouseMove(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ContainerControl.WndProc(Message& m)
   at DevExpress.XtraBars.Docking.ZIndexControl.WndProc(Message& m)
   at DevExpress.XtraBars.Docking.DockPanel.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
********** Environment Stack Trace **********
   at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo)
   at System.Environment.get_StackTrace()
   at ProppFrexx.ac.a(Exception A_0, Boolean A_1)
   at ProppFrexx.c1.a(Exception A_0)
   at ProppFrexx.c1.b(Exception A_0)
   at ProppFrexx.c1.a(Object A_0, ThreadExceptionEventArgs A_1)
   at System.Windows.Forms.Application.ThreadContext.OnThreadException(Exception t)
   at System.Windows.Forms.Control.WndProcException(Exception e)
   at System.Windows.Forms.Control.ControlNativeWindow.OnThreadException(Exception e)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
   at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.Run(Form mainForm)
   at ProppFrexx.dt.a(String[] A_0)
********** End **********

Code: Select all

03/01/2014 10:32:44 [v3.0.12.10]:********** Error/Exception Information **********
Error Message: Object reference not set to an instance of an object.
Error Type: System.NullReferenceException
Error Source: DevExpress.XtraBars.v13.1.DevExpress.XtraBars.Docking.Helpers.DockZone GetDockZoneAtPos(System.Drawing.Point)
********** System Stack Trace **********
   at DevExpress.XtraBars.Docking.Helpers.DockingHandlerStateVS2005.GetDockZoneAtPos(Point screenPoint)
   at DevExpress.XtraBars.Docking.Helpers.DockingHandlerStateVS2005.BaseMouseOver(Point screenPoint)
   at DevExpress.XtraBars.Docking.Helpers.DockingHandlerStateVS2010.MouseOver(Point point)
   at DevExpress.XtraBars.Docking.Helpers.DockingHandlerStateVS2010.DoDocking(Point pt)
   at DevExpress.XtraBars.Docking.Helpers.DockingHandlerState.MouseMove(HitInfo hitInfo)
   at DevExpress.XtraBars.Docking.Helpers.DockPanelMouseHandler.MouseMove(MouseEventArgs e)
   at DevExpress.XtraBars.Docking.DockPanel.OnMouseMove(MouseEventArgs e)
   at System.Windows.Forms.Control.WmMouseMove(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ContainerControl.WndProc(Message& m)
   at DevExpress.XtraBars.Docking.ZIndexControl.WndProc(Message& m)
   at DevExpress.XtraBars.Docking.DockPanel.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
********** Environment Stack Trace **********
   at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo)
   at System.Environment.get_StackTrace()
   at ProppFrexx.ac.a(Exception A_0, Boolean A_1)
   at ProppFrexx.c1.a(Exception A_0)
   at ProppFrexx.c1.b(Exception A_0)
   at ProppFrexx.c1.a(Object A_0, ThreadExceptionEventArgs A_1)
   at System.Windows.Forms.Application.ThreadContext.OnThreadException(Exception t)
   at System.Windows.Forms.Control.WndProcException(Exception e)
   at System.Windows.Forms.Control.ControlNativeWindow.OnThreadException(Exception e)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
   at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.Run(Form mainForm)
   at ProppFrexx.dt.a(String[] A_0)
********** End **********

Re: ignoring Rating (and other bugs)

Posted: 20 Jan 2014 12:47
by hdradio
I think that the attached screenshot will better explain where the problem is:
Rating is compared as a character and not as number so 9 is greater than 80.
Also see that although the quick monitor plays the selected file, some other file is shown.
bug1.jpg
bug1.jpg (108.52 KiB) Viewed 10353 times

Re: ignoring Rating (and other bugs)

Posted: 20 Jan 2014 19:09
by hdradio
Indeed I am using an other tagger for my library. In fact I use both MediaMonkey and MusicBee to tag my audio files. Those taggers are very popular so I think that will be good for pf to be compatible with them.

About the other bugs, if I remember, happened when I tried to dock the overlay window to the bottom of the screen.
They might not be critical but I suppose you don't want them popup in your application.

Re: ignoring Rating (and other bugs)

Posted: 20 Jan 2014 19:51
by radio42
The "Rating" tag is no defined standard (except as for ID3v2 and WMA, where we use the defined recommendations) - else we use Mp3Tag, iTunes, Winamp, Windows Media Player, FooBar and others as a reference.
Anyhow, as said: I might add an additional 'Rating Value' property to the next version, which might then try to convert a rating string value into a numerical representation.

And yes, I also take a look to the other issues as well and try to reproduce them...if I can they will of course be fixed with the next release!

Re: ignoring Rating (and other bugs)

Posted: 20 Jan 2014 20:55
by radio42
The Quick-Monitor display thing is actually a bug introduced in the last version of the UI library (DevExpress) I am using. Unfortunately that is 3rd party software I am using.
I have already filed a bug ticket and hope, that this issue is fixed soon!

Yes, the 'Rating' comparison is indeed be a string comparison as of today, since the Rating meta data tag is a string as well.
It seems, that you have used another tagger (meta data editor) than ProppFrexx to apply the 'Rating' value (as ProppFrexx only uses the following value):
100 = excellent, 5-stars
80 = very good, 4-stars
60 = good, 3-stars
40 = average, 2-stars
20 = poor, 1-star
0 = unrated
When using this (default) notation you wouldn't have gotten any issues.
But as other taggers (meta data editors) might use the rating property field as a plain text (string) field, it is currently begin compared as a string.
However, I might add an additional 'Rating Value' property to the next version, which might then try to convert a rating string value into a numerical representation.

The other errors seems to have happened, when ProppFrexx was being shut down and are as such totally uncritical as they didn't break anything.

Re: ignoring Rating (and other bugs)

Posted: 12 Feb 2014 20:40
by radio42
Fixed in v3.0.12.12!