TweakMonkey (advanced options page) 1.02 - 4/2/2007 [MM2+3]

Download and get help for different MediaMonkey for Windows 4 Addons.

Moderators: Peke, Gurus

Teknojnky
Posts: 5537
Joined: Tue Sep 06, 2005 11:01 pm
Contact:

TweakMonkey (advanced options page) 1.02 - 4/2/2007 [MM2+3]

Post by Teknojnky »

As far I know, the script works fine with MM 3. Any issues or questions can be posted to this thread.

NEW 1.02 VERSION HERE Courtesy of STEEGY!!

Older version modified version by Teknojnky (not updated)

-------------------------------------------------------------------------------

What features/settings would you want in an advanced option type page that integrated within the MM options like the scrobblerDJ options page.

For myself, the following would be highly desireable (yes I am aware that many of them are available via individual scripts):
  • Auto-play

    auto-load/play specific playlists

    auto-resume (start track from time it stopped)

    hide/show any individual nodes

    expand/collapse any specific nodes

    startup node

    auto-save current now playing list to a database playlist on shutdown

    auto-set player volume at startup (no more super loud music when play starts)

    a method to change the location of your library database and optionally move/copy the db file to the new location.
Thats all I can think of off the top of my head, I'm sure I will remember more.

What else would others want to see available?

Here are some screenshots of the tweakmonkey options as of 4/10/2006

Image

Image
Last edited by Teknojnky on Wed Jan 30, 2008 12:04 pm, edited 13 times in total.
Teknojnky
Posts: 5537
Joined: Tue Sep 06, 2005 11:01 pm
Contact:

Post by Teknojnky »

Ok I started on implementing such a script to provide a set of option sheets to set the various functionalities.

At this point its just a shell from which to expand but already getting some OLE errors ("800A01C2") which I assume are from not having the init and save subs populated?

Also, I have created a script menu item to run the script manually via the Tools > Scripts submenu, but every time I run it it creates a new set of sheets...

The questions then, can I test for the existence of the sheets before I create new ones? If am adding/changing the init/save subs, do I need to reload the script or simply close/re-open the options window to refresh the controls within the sheets? Is there a better way to test than closing/re-starting MM constantly?

Code: Select all

removed

Last edited by Teknojnky on Wed Mar 22, 2006 2:44 pm, edited 1 time in total.
Teknojnky
Posts: 5537
Joined: Tue Sep 06, 2005 11:01 pm
Contact:

Post by Teknojnky »

I've commented out the sub-sheets and populated the init and save sheets subs, but I still can't seem to get rid of the OLE errors when accessing/saving the property sheets.

Any ideas?

I been comparing to scrobblerdj config and peke's tree config, but I must be missing something.
Steegy
Posts: 3452
Joined: Sat Nov 05, 2005 7:17 pm

Post by Steegy »

Here's an (other) example options pane: http://home.tiscali.be/ruben.castelein/ ... xample.htm

You can run it if you have the helper script "Utility_Controls.vbs" in the Scripts folder. (this is on the Scripts Resources page, see my signature).

But you don't really need to run the script to see how it works. Because I made my own GUI methods/functions, the concept can be seen very clearly through the simple code.

Tip: when you post code, please make it with right comments, indentations, ... (consistency is important, certainly in programming) so the whole remains a bit readible from within the forum pages.
BTW: my example isn't good in coding either. Always use "Option Explicit" in the beginning of your file, and always declare (using "Dim") every variable you use.

Cheers
Steegy
Extensions: ExternalTools, ExtractFields, SongPreviewer, LinkedTracks, CleanImport, and some other scripts (Need Help with Addons > List of All Scripts).
Teknojnky
Posts: 5537
Joined: Tue Sep 06, 2005 11:01 pm
Contact:

Post by Teknojnky »

Ok I figure out my OLE issues, was missing the (sheet) param on the init/save sheet subs.

Here is a working, work in progress which currently sets startup options: volume & auto-play.

I am having trouble setting/retreiving the startup node, getting a type mismatch so I am guessing that "SDB.MainTree.CurrentNode" is not stored as text...

How would I save that value?

Code: Select all

removed
Last edited by Teknojnky on Sun Apr 09, 2006 9:26 pm, edited 1 time in total.
Steegy
Posts: 3452
Joined: Sat Nov 05, 2005 7:17 pm

Post by Steegy »

I am having trouble setting/retreiving the startup node, getting a type mismatch so I am guessing that "SDB.MainTree.CurrentNode" is not stored as text...

How would I save that value?
Hmm, maybe using the StartupNode script? :o
Extensions: ExternalTools, ExtractFields, SongPreviewer, LinkedTracks, CleanImport, and some other scripts (Need Help with Addons > List of All Scripts).
Teknojnky
Posts: 5537
Joined: Tue Sep 06, 2005 11:01 pm
Contact:

Post by Teknojnky »

Had time to work a bit on this tonite, it appears to be functioning ok for me.

Suggestions for further improvements/options appreciated.

Updated again, I have the code for the auto-load-playlists but current its not functioning properly (for me) on startup, however if I manually invoke the same code, it appears to function fine.

I also added a couple screenshots to the first post.

Code: Select all

Removed
Last edited by Teknojnky on Thu Apr 20, 2006 4:49 pm, edited 2 times in total.
Teknojnky
Posts: 5537
Joined: Tue Sep 06, 2005 11:01 pm
Contact:

Post by Teknojnky »

Does anyone know how to add a 'choose' button to select a playlist like the auto-dj options:

Image

I don't see anything about a open playlist dialog in the script help file.
onkel_enno
Posts: 2153
Joined: Fri Jan 14, 2005 1:45 am
Location: Germany
Contact:

Post by onkel_enno »

Teknojnky wrote:I don't see anything about a open playlist dialog in the script help file.
You'll have to do this on your own:

Code: Select all

Set cbPlaylist = SDB.UI.NewDropDown
...
Teknojnky
Posts: 5537
Joined: Tue Sep 06, 2005 11:01 pm
Contact:

Post by Teknojnky »

You mean like make my own form/dialog?

But the auto-dj dialog looks so spiffy, there is no way to call that one?
Steegy
Posts: 3452
Joined: Sat Nov 05, 2005 7:17 pm

Post by Steegy »

But the auto-dj dialog looks so spiffy, there is no way to call that one?
Seems a nice feature to have this available through scripting indeed. Maybe you can mention your idea in the scripting wishlist?
( http://www.mediamonkey.com/forum/viewtopic.php?t=7973 )

I was thinking that it indeed may be a good idea to include the StartupNode script in your TweakMonkey script.
First I would like to provide a cleaner method to get a reference to whatever node is wanted, so this "set of methods" can be used in other scripts too. I have done that for the great part, but it might be improved a bit further.
Anyway, if the time is right and the TweakMonkey script performance is good enough to build in StartupNode (if the performance is good, people probably won't mind this), then maybe this can be made.

*personal remark:
StartupNode's options submenu could be included in TweakMonkey's options panel, but remark that there's also the "Set as StartupNode" item in the context menu. This seems like a new thing to TweakMonkey, as it currently is a "stand-alone" script (it doesn't do anything out of the options dialog panel).


If I come across other ideas for your handy script, I certainly will let them know.
*note to myself: write them down immediately, so you won't forget them later. :roll:

Currently other ideas:
  • Ability to clear histories, like the search history, on startup/shutdown or on demand (isn't possible yet through MM scripting, but asked in the wishlist thread)
  • Make your options panel large and "plug-in"able. This sounds strange, but I just want to say that maybe other scripts (like the FavouriteNodes script) could use a portion of your options panel. Your script would look if a "partner" script is present, and then execute a method in that "partner" script to add in it's settings piece. Probably doesn't sound very logical to you, but that would especcially be great if your script would become a standard script in MM.
    Of course, these "partner" scripts should be scripts with not too many options. Scripts with many options would have their own options panel or so.
    To summarise (example with FavouriteNodes script):
    - Check if "FavouriteNodes.vbs" is present
    - If so, then run a method in that script to add it's settings options in the allocated space in your panel.
    It would be great for that if panels were scrollable (not yet possible), so you could add a new panel "Installed Scripts" that contains all scripts that have their settings through your panel. Scrollable -> number of scripts is not an issue. (dreaming away again.....)
Actually this last thing could also be a totally new script, but it does have something to do with TweakMonkey.

Cheers
Steegy
Extensions: ExternalTools, ExtractFields, SongPreviewer, LinkedTracks, CleanImport, and some other scripts (Need Help with Addons > List of All Scripts).
Teknojnky
Posts: 5537
Joined: Tue Sep 06, 2005 11:01 pm
Contact:

Post by Teknojnky »

My startup node implementation is completely separate from yours. I did not want to encroach upon your script to include it directly.

The way I implemented limits my startup nodes to the main nodes only, where as yours is very flexible and allows setting of any subnode. As I used an array/loop to check/populate the various node options.

I certainly do not mind if you decide to make any specific modifications, you (or any one else) are certainly free to take the existing code and change/add/merge functionality to it and please credit yourself within any code you may add.

Your suggested features sound very useful, I will certainly be trying to figure out how to best implement them unless someone beats me to it!
Teknojnky
Posts: 5537
Joined: Tue Sep 06, 2005 11:01 pm
Contact:

Post by Teknojnky »

I was just thinking, 2 nifty features that I will start working on...

Options to add Context menu to open the current file/folder with windows explorer and command prompts.
Teknojnky
Posts: 5537
Joined: Tue Sep 06, 2005 11:01 pm
Contact:

Post by Teknojnky »

I noticed a couple things.

The context menu changes when in a 'location' subnode. How do I go about doing that? I was using "SDB.UI.Menu_POP_Tree", but that appears to add it to all tree menu's.

I want the 2 menu items to appear on the following:

Location subnodes @ SDB.UI.Menu_POP_Tree
Files in nowplaying @ Menu_Pop_NP
Files in tracklist @ Menu_Pop_TrackList

Also, the menu item for 'now playing' only displays when you right click in the now playing window, but not in the larger now playing node track list, and the 'tracklist' menu doesnt either.

The icon for the built-in context menu "Open in Explorer" does not appear to be available on the icon index @ http://www.mediamonkey.com/forum/viewtopic.php?t=7980 is this icon hardcoded?
Steegy
Posts: 3452
Joined: Sat Nov 05, 2005 7:17 pm

Post by Steegy »

The context menu changes when in a 'location' subnode. How do I go about doing that? I was using "SDB.UI.Menu_POP_Tree", but that appears to add it to all tree menu's.
Yes, this is a known scripting limitation and has been discussed before. See the scripting wishlist discussion thread for more information (page 2 or 3 I think).
It theoretically *is* possible to do this a the hard way, but it's "dirty coding" and doesn't work in all cases. I'm was waiting for the scripting possibilities to be enhanced to enable that.

The icon for the built-in context menu "Open in Explorer" does not appear to be available on the icon index @ http://www.mediamonkey.com/forum/viewtopic.php?t=7980 is this icon hardcoded?
I think MM uses the icon from Windows' explorer.Exe file, but I'm not sure.
Extensions: ExternalTools, ExtractFields, SongPreviewer, LinkedTracks, CleanImport, and some other scripts (Need Help with Addons > List of All Scripts).
Post Reply