×
Namespaces

Variants
Actions
(Difference between revisions)

Archived:Media File Symbian API

From Nokia Developer Wiki
Jump to: navigation, search
Forum Nokia KB (Talk | contribs)
extkbeditor1 (Talk | contribs)
m
Line 3: Line 3:
 
__NOEDITSECTION__
 
__NOEDITSECTION__
 
{{KBCS}}
 
{{KBCS}}
{|style="background:#eceff2" width="660px" border="1" cellpadding="5" cellspacing="0"
+
{{CodeSnippet
|-
+
|id=CS001036
|'''ID''' ||CS001036
+
|platform=S60 3rd Edition, FP2
|'''Creation date''' || June 13, 2008
+
|devices=
|-
+
|category=S60 3rd Edition, FP2
|'''Platform''' ||S60 3rd Edition, FP2
+
|subcategory=Media
|'''Tested on devices''' ||  
+
|creationdate=June 13, 2008
|-
+
|keywords=Media File API
|'''Category''' ||S60 3rd Edition, FP2
+
}}
|'''Subcategory''' || Media
+
|-
+
|}
+
 
+
 
+
{|style="background:#eceff2" width="660px" border="1" cellpadding="5" cellspacing="0"
+
|-
+
|'''Keywords (APIs, classes, methods, functions):''' Media File API
+
|}
+
  
  

Revision as of 22:57, 13 October 2008

Template:KBCS

Article Metadata
Compatibility
Platform(s): S60 3rd Edition, FP2
S60 3rd Edition FP2
Article
Keywords: Media File API
Created: (13 Jun 2008)
Last edited: extkbeditor1 (13 Oct 2008)


Template:NoteS

This API is not part of the public SDK. It can be found in the SDK API Plug-in.

Template:NoteE

The Media File API is responsible for sending notifications about file updates to the Media Gallery. It also offers an API to check duplicate media files, that is, to check if the file name is a unique media file name in the phone memory or the multimedia card.

Header files

 #include <MGXFileManagerFactory.h>
 #include <CMGXFileManager.h>
 #include <CMGXFileNotificationHandler.h>
 #include <MMGXFileNotificationObserver.h>

Link against

 LIBRARY   MGXMediafileapi.lib

Required capability

 CAPABILITY  ReadUserData WriteDeviceData

Example code

Creating File Manager and the file notification handler

 CMGXFileManager* iFileManager = MGXFileManagerFactory::NewFileManagerL(
iCoeEnv->FsSession() );
CMGXFileNotificationHandler* iFNH =
MGXFileManagerFactory::NewFileNotificationHandlerL();

Updating a file

There are different file update types:
1) A general update to the media gallery.
2) Notify Media Gallery after saving a file from a viewer application.
3) Notify Media Gallery after renaming a media file.
4) Update Media Gallery files (an array of files).

The code snippet to send an update is:

 // Create an array of descriptors for the selected files
CDesCArrayFlat* fileArray = new (ELeave) CDesCArrayFlat(5);
CleanupStack::PushL(fileArray);
TBool allowMultiple(EFalse);
TBuf <20> lHeading;
lHeading.Append(_L("Image Files"));
// Open the dialog. this is overloaded
TBool ret = MGFetch::RunL(*fileArray,EImageFile,allowMultiple,KNullDesC,lHeading);
if( ret )
{
BaflUtils::RenameFile(CEikonEnv::Static()->FsSession(),
fileArray->MdcaPoint(0),_L("c:\\Data\\Images\\new.bmp"));
iContainer->SetTextL( _L("File Renamed") );
iFileManager->UpdateL(fileArray->MdcaPoint(0),_L("c:\\Data\\Images\\new.bmp"));
}
else
{
iContainer->SetTextL( _L("File Not Selected") );
}
CleanupStack::PopAndDestroy(); // fileArray

Checking for duplicate file names :

 TBool ret = iFileManager->SuccessFileNameL( iFileName, EDriveC );
//To check for file in phone memory.
//iFileName is filename to be checked.
//To check if it exists in MMC use "EDriveE" instead of "EDriveC"

Register and unregister observer

You can also register to get notifications of changed media files (for example, new files are created or existing files are modified or deleted, etc.)

1) Derive your class from MMGXFileNotificationObserver and implement the pure virtual function HandleFileNotificationEventL.
2) Register for observations:

 iFNH->SetObserver( *this )

3) Unregister to stop getting notifications :

 iFNH->RemoveObserver(*this);

Example project

File:MediaFileEx.zip

122 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×