View Issue Details

IDProjectCategoryView StatusLast Update
0017174MMW 5Extensions frameworkpublic2022-04-06 20:35
Reporterdrakinite Assigned To 
PriorityurgentSeveritycrashReproducibilityalways
Status closedResolutionreopened 
Product Version5.0 
Target Version5.0.2Fixed in Version5.0.2 
Summary0017174: Issues with SDBApplication.Player getters and methods [COM]
DescriptionI tested all the gets/sets in SDBApplication.Player, and here are the problematic ones:
1) Crash when attempting to change Player.CurrentSongIndex. Log ID: 65812BBD
  If I do Player.CurrentSongIndex = 3, for example, it crashes MM.
2) Crash when attempting to execute Player.Next: Log ID 18A4B7F7 and BA461236
3) Crash when atempting to change Player.PlaybackTime: Log ID 20EDDBF3
4) Crash when attempting to get Player.PlaylistSelected(0)
5) Crash when attempting to execute Player.Previous: Log ID CC82B715

6) Setting isAutoDJ does not work
7) isEqualizer does not work (Always returns false even when enabled; setting does not enable equalizer)
8) PlaylistClear works, but it does not stop current song (Not sure if that's expected behavior or not)
9) PlaylistCount does not work (always returns 0)
10) PlaylistFocused does not appear to work (always returns -1)
11) PlaylistItems does not appear to work (When attempting "Set sd = Player.PlaylistItems(0)" then "Text = sd.Title", it gives an error that seems to imply that sd is undefined.
12) PlaylistMoveTrack does not work
13) I'm not sure if PlaylistAddTrack, PlaylistAddTracks, PlaylistInsertTrack and PlaylistInsertTracks work, but it could just be an issue of me not being that good with datatypes in VBScript.

14) PlaylistByID and PlaylistByTitle both appear to return null.

NOTE: 6 through 13 are lower priority, but worth looking into.
Additional Information[Ticket # 2159 ]
TagsNo tags attached.
Fixed in build2528

Relationships

related to 0017823 closeddrakinite (Regression) Creating SongsDB5.SDBApplication object when MM5 is not running does not open MM5 [COM] 
related to 0017788 closedpetr [COM] Access violation when using auto shuffle playlist script 
related to 0018953 closedLudek Some COM methods not implemented 

Activities

drakinite

2021-04-28 01:15

developer   ~0062936

Updated description to use numbers instead of letters. Added #13 after investigating 0017788

petr

2021-04-28 18:26

developer   ~0062949

1) fixed

petr

2021-07-31 10:14

developer   ~0064341

Last edited: 2021-08-04 10:39

Items 2-13) fixed

petr

2021-08-05 19:10

developer   ~0064356

Fixed

peke

2021-11-12 12:30

developer   ~0065886

Verified 2518

All points from 1-14 are re tested.

Ludek

2021-12-13 14:04

developer   ~0066373

Last edited: 2021-12-13 14:06

Re-opened, there is still problem (testing stuff in the ticket # 2159)

where it stucks on TSDBPlayer.Get_isPaused for 10 seconds

Debugging it why (using the gen_monkeymote.dll that the user attached to ticket # 2159 as gen_monkeymote.rar )
and found that problem is in message processing:

1) Browser process (MediaMonkey.exe) gets 'b_com_event' (in TCustomClient.OnProcessMessageReceived )
2) Browser sends 'r_com_player_is_paused' message to Render process (MediaMonkeyEngine.exe)
3) The Render process gets 'r_com_player_is_paused' and replies with 'b_com_command_result'
4) Browser is wating for 'b_com_command_result' , but 'b_com_command_result' cannot came, because it is coming to TCustomClient.OnProcessMessageReceived (which is currently processing the 'b_com_event' from the step 1)
=> i.e. this is deadlock,
Once the 'b_com_event' processing times out (10 seconds) then 'b_com_command_result' from the Render process comes to TCustomClient.OnProcessMessageReceived

Per IM discussion with Petr assigned to him to solve this conflict/message processing issue...

petr

2021-12-14 12:01

developer   ~0066378

Fixed

peke

2021-12-18 01:49

developer   ~0066414

Verified 2528

Unable to replicate.