INTERACT FORUM

Windows => Plug-in Development => Topic started by: @l@n on April 13, 2004, 11:52:49 pm

Title: problem with MJFileAutomation's GetImageFile function
Post by: @l@n on April 13, 2004, 11:52:49 pm
I'm having a problem with the GetImageFile function of the MJFileAutomation object.

I'm using this object in my aTagger plug-in.  aTagger is a .Net application written in C#.

The problem is that after I successfully retrieve a valid image file, subsequent calls to the function (with a different MJFileAutomation object) return the same filename (with the same contents).  Additionally, when I exit my plug-in, all of cover art that I display within Media Center is the same image.  After restarting Media Center cover art is back to normal.

Has anyone else seen simular results or have any ideas for me?

Thanks...  @l@n
Title: Re:problem with MJFileAutomation's GetImageFile function
Post by: Matt on April 14, 2004, 09:16:28 am
I'm having a problem with the GetImageFile function of the MJFileAutomation object in Media center 10.0.110.

I'm using this object in my aTagger plug-in.  aTagger is a .Net application written in C#.

The problem is that after I successfully retrieve a valid image file, subsequent calls to the function (with a different MJFileAutomation object) return the same filename (with the same contents).  Additionally, when I exit my plug-in, all of cover art that I display within Media Center is the same image.  After restarting Media Center cover art is back to normal.

Thanks for your help...  @l@n

Hopefully the notes listed here will clear up the confusion:
http://www.musicex.com/mediacenter/DevZone/MJAutomation.html#CMJFileAutomation
Title: Re:problem with MJFileAutomation's GetImageFile function
Post by: @l@n on April 14, 2004, 12:44:30 pm
Quote
Hopefully the notes listed here will clear up the confusion:
http://www.musicex.com/mediacenter/DevZone/MJAutomation.html#CMJFileAutomation

Matt, the nImageFileFlag options IMAGEFILE_DISPLAY_NO_DEFAULT and IMAGEFILE_DISPLAY_NO_DEFAULT_STANDARD_JPG are not available in the type libe that is on my machine.  I am using Media Center version 10.0.110.  I see that these two options were added back in January (at least the doco was updated back in January).  

I do not know if there is a way to get/view the version of the type lib.

Any suggestions?

Thanks...  @l@n
Title: Re:problem with MJFileAutomation's GetImageFile function
Post by: Matt on April 14, 2004, 12:58:33 pm
Sorry, the latest TLB wasn't getting included.

Next version will fix that.
Title: Re:problem with MJFileAutomation's GetImageFile function
Post by: @l@n on April 14, 2004, 11:08:42 pm
Quote
Sorry, the latest TLB wasn't getting included.

Next version will fix that.

Matt, the latest build provided me with the latest TLB  :), bit I'm still having problems  :-[.

I wrote a sample .Net program that demonstrates what I am about to describe.  It is available for download at http://atagger.auldridge.biz/downloads/mctest.zip (http://atagger.auldridge.biz/downloads/mctest.zip).  MCTest, iterates through the list of songs in Playing Now.  For each of the songs, it gets the image using each of the following nImageFile Flags: IMAGEFILE_DISPLAY, IMAGEFILE_IN_DATABASE, IMAGEFILE_IN_FILE, IMAGEFILE_DISPLAY_NO_DEFAULT, and IMAGEFILE_DISPLAY NO_DEFAULT_STANDARD_JPG.  The image, song name, and image file name is displayed for each of the 5 file flags.

When I play several albums (all with INTERNAL images), then start MCTest...  The first album (all songs in the album) doesnt find any image (even though it is there).  The image for the second song is found (IMAGEFILE_IN_DATABASE correctly identifies the image as INTERNAL).  All other albums display the same image found for album 2.  The name and contents of the image file never change.

Thanks for your assistance...  @l@n
Title: Re:problem with MJFileAutomation's GetImageFile function
Post by: Matt on April 15, 2004, 10:40:25 am
That link isn't working for me.

However, remember that subsequent calls can return the same filename.  That means you need to load the image (or create a copy) before making the next call.  Otherwise you could see the same image over and over.

Could that be the issue?
Title: Re:problem with MJFileAutomation's GetImageFile function
Post by: @l@n on April 15, 2004, 11:06:21 am
Quote
That link isn't working for me.

However, remember that subsequent calls can return the same filename.  That means you need to load the image (or create a copy) before making the next call.  Otherwise you could see the same image over and over.

Could that be the issue?

Matt, the link works fine for me, so I downloaded the .zip to work and have emailed it to you.

Immediately after calling GetImageFile(), I load the file's contents into a bitmap, then I never bother with the file again.  After, MF gives me an image, the contents of the image file never change with subsequent calls to GetImageFile().  Additionally, it is not uncommon for calls to GetImageFile() to return an empty file name string when there IS an image available for the song.  Hopefully the sample that I emailed to you will allow you to identify the problem.

Thanks...  @l@n
Title: Re:problem with MJFileAutomation's GetImageFile function
Post by: Matt on April 15, 2004, 04:04:44 pm
The problem is that the CBitmap object is locking the temporary file.

On the next call, the plugin tries to put the new image in the same place.  It fails because the last file (with the same filename) is locked by C#.

I'm not a C# jedi, but maybe there are some CBitmap flags you can use. (?)
Title: Re:problem with MJFileAutomation's GetImageFile function
Post by: @l@n on April 15, 2004, 06:57:04 pm
I updated aTagger to load the file from a FileStream rather than a file name and it works like a champ.  I would have never imagined that the Bitmap constructor would keep the file locked.

THANKS for all of your help...  @l@n