Fix : Remove exception handling codes at the sample code
[platform/framework/native/content.git] / inc / FCntVideoContentInfo.h
index 52e52dd..f6fbc0f 100644 (file)
@@ -15,7 +15,7 @@
 //
 /**
  * @file                       FCntVideoContentInfo.h
- * @brief              This is the header file for the %VideoContentInfo class.
+ * @brief                      This is the header file for the %VideoContentInfo class.
  *
  * This header file contains the declarations of the %VideoContentInfo class.
  */
@@ -29,42 +29,48 @@ namespace Tizen { namespace Content
 {
 
 class _VideoContentInfoImpl;
+class _VideoContentData;
 
 /**
- * @class      VideoContentInfo
- * @brief      This class provides methods to access the video content information.
+ * @class                      VideoContentInfo
+ * @brief                      This class provides methods to access the video content information.
  *
- * @since      2.0
+ * @since                      2.0
  *
- * @final      This class is not intended for extension.
+ * @final                      This class is not intended for extension.
  *
- * The %VideoContentInfo class provides methods to access the video content information that is extracted from a physical file. @n
+ * The %VideoContentInfo class provides methods to access the video content information that is extracted from a
+ * physical file. @n
  * Before getting the video content information, the ContentManager class must be used to create the content.
  *
- * For more information on the different types of content information, see <a href="../org.tizen.native.appprogramming/html/guide/content/device_content_mgmt.htm">Device Content Management</a>.
+ * For more information on the different types of content information, see
+ * <a href="../org.tizen.native.appprogramming/html/guide/content/device_content_mgmt.htm">
+ * Device Content Management</a>.
  *
  * The following example demonstrates how to use the %VideoContentInfo class.
  *
  * @code
+ * #include <FApp.h>
+ * #include <FBase.h>
+ * #include <FContent.h>
+ * #include <FSystem.h>
+ *
+ * using namespace Tizen::Content;
+ *
  * result
  * MyClass::TestVideoContentInfo(void)
  * {
- *             result r = E_SUCCESS;
- *
- *             ContentId contentId;
  *             ContentManager contentManager;
- *             r = contentManager.Construct();
- *             TryReturn(!IsFailed(r), r, "Construct failed.");
+ *             result r = contentManager.Construct();
  *
  *             VideoContentInfo videoContentInfo;
  *             r = videoContentInfo.Construct(null);
- *             TryReturn(!IsFailed(r), r, "Construct failed.");
  *
  *             Tizen::Base::String sourcePath = Tizen::App::App::GetInstance()->GetAppRootPath() + L"data/flower.wmv";
  *             Tizen::Base::String destPath = Tizen::System::Environment::GetMediaPath() + L"Videos/flower.wmv";
  *
- *             contentId = contentManager.CreateContent(sourcePath, destPath, false, &videoContentInfo);
- *             TryReturn(Tizen::Base::UuId::GetInvalidUuId() != contentId, GetLastResult(), "CreateContent failed.");
+ *             ContentId contentId = contentManager.CreateContent(sourcePath, destPath, false, &videoContentInfo);
+ *             r = GetLastResult();
  *
  *             return r;
  * }
@@ -92,45 +98,47 @@ public:
        /**
         * Initializes this instance of %VideoContentInfo with the specified parameter.
         *
-        * @if OSPCOMPAT
-        * @brief <i> [Compatibility] </i>
+        * @if                  OSPCOMPAT
+        * @brief               <i> [Compatibility] </i>
         * @endif
-        * @since                       2.0
-        * @if OSPCOMPAT
-        * @compatibility This method has compatibility issues with OSP compatible applications. @n
-        *                       For more information, see @ref CompVideoContentInfoConstructPage "here".
+        * @since               2.0
+        * @if                  OSPCOMPAT
+        * @compatibility       This method has compatibility issues with OSP compatible applications. @n
+        *                  For more information, see @ref CompVideoContentInfoConstructPage "here".
         * @endif
         *
-        * @return                      An error code
+        * @return              An error code
         * @param[in]   pContentPath                    The content path @n
-        *                                                              The path should be started with directory path returned by 
-        *                                                              either Tizen::System::Environment::GetMediaPath() or Tizen::System::Environment::GetExternalStoragePath(). @n
-        *                                                              If the path is @c null,
-        *                                                              use ContentManager::CreateContent(const Tizen::Base::ByteBuffer&, const Tizen::Base::String&, const ContentInfo*) @n
-        *                                                              or ContentManager::CreateContent(const Tizen::Base::String&, const Tizen::Base::String&, bool, const ContentInfo*), 
-        *                                                              instead of this method.
-        * @exception   E_SUCCESS                                       The method is successful.
+        *                                                                              The path should start with the directory path returned by
+        *                                                                              either Tizen::System::Environment::GetMediaPath() or
+        *                                                                              Tizen::System::Environment::GetExternalStoragePath() @n
+        *                                                                              If the path is @c null, use ContentManager::CreateContent
+        *                                                                              (const Tizen::Base::ByteBuffer&, const Tizen::Base::String&,
+        *                                                                              const ContentInfo*) @n
+        *                                                                              or ContentManager::CreateContent(const Tizen::Base::String&,
+        *                                                                              const Tizen::Base::String&, bool, const ContentInfo*), instead of this
+        *                                                                              method. 
+        * @exception   E_SUCCESS                               The method is successful.
         * @exception   E_FILE_NOT_FOUND                The specified file cannot be found or accessed.
-        * @exception   E_INVALID_ARG                           The specified input parameter is invalid.
-        * @exception   E_OUT_OF_MEMORY         The memory is insufficient.
-        * @exception   E_IO                                                            An I/O error has occurred.
-        * @exception   E_SYSTEM                                                An internal error has occurred.
-        * @remarks             
+        * @exception   E_INVALID_ARG                   The specified input parameter is invalid.
+        * @exception   E_OUT_OF_MEMORY                 The memory is insufficient.
+        * @exception   E_IO                                    An I/O error has occurred.
+        * @exception   E_SYSTEM                                An internal error has occurred.
         */
        result Construct(const Tizen::Base::String* pContentPath);
 
        /**
-        * @if OSPCOMPAT
-        * @page        CompVideoContentInfoConstructPage Compatibility for the file path.
-        * @section     CompVideoContentInfoConstructPageIssueSection Issues
-        *                 The content path argument of this method in OSP compatible applications has the following issues: @n
-        *                 -# The content path should be a path that begins with an allowed path prefix. @n
-        *                     For example, L"/Media/Images/flower.jpg", L"/Storagecard/Media/Images/flower.jpg".
+        * @if                  OSPCOMPAT
+        * @page                CompVideoContentInfoConstructPage Compatibility for the file path.
+        * @section             CompVideoContentInfoConstructPageIssueSection Issues
+        *                              The content path argument of this method in OSP compatible applications has the following issues: @n
+        *              -# The content path should be a path that begins with an allowed path prefix. @n
+        *                 For example, L"/Media/Images/flower.jpg", L"/Storagecard/Media/Images/flower.jpg".
         *
-        * @section     CompVideoContentInfoConstructPageSolutionSection Resolutions
-        *                  This issue has been resolved in Tizen. @n
-        *                 -# The content path can be a path without a specific allowed path prefix. @n
-        *                 Application do not need to know the specific allowed path prefixes. @n
+        * @section             CompVideoContentInfoConstructPageSolutionSection Resolutions
+        *              This issue has been resolved in Tizen. @n
+        *              -# The content path can be a path without a specific allowed path prefix. @n
+        *                 Applications do not need to know the specific allowed path prefixes. @n
         *                 To get the directory path, use the following methods: @n
         *                 - For accessing the media directory, use Tizen::System::Environment::GetMediaPath().
         *                 - For accessing the external storage, use Tizen::System::Environment::GetExternalStoragePath().
@@ -139,32 +147,37 @@ public:
         */
 
        /**
-        * @if OSPDEPREC
+        * @if                  OSPDEPREC
         * Initializes this instance of %VideoContentInfo with the specified parameters.
         *
-        * @brief <i> [Deprecated] </i>
-        * @deprecated   This method is deprecated as there is a problem in managing the user-defined thumbnail and device coordinates. @n
-        *                       Instead of using this method, use Construct(const Tizen::Base::String*). @n
-        *                       To set the coordinates in the ContentInfo instance, use ContentInfo::SetCoordinates(const Tizen::Locations::Coordinates&).
-        * @since                       2.0
+        * @brief               <i> [Deprecated] </i>
+        * @deprecated  This method is deprecated as there is a problem in managing the user-defined thumbnail and
+        *                              device coordinates. @n
+        *              Instead of using this method, use Construct(const Tizen::Base::String*). @n
+        *              To set the coordinates in the ContentInfo instance, use
+        *                              ContentInfo::SetCoordinates(const Tizen::Locations::Coordinates&).
+        * @since               2.0
         *
-        * @return                      An error code
-        * @param[in]           contentPath                                     The content path
-        * @param[in]           thumbnailPath                           The thumbnail path
-        * @param[in]           setGps                                                  Set to @c true to save the device's last known coordinates in the ContentInfo instance, @n
-        *                                                           else @c false @n
-        *                                                                                                                      The coordinate information may be incorrect if it is outdated or has never been updated. @n
-        *                                                           To update the coordinate information or to get the exact value,
-        *                                                           use Tizen::Locations::LocationProvider::RequestLocationUpdates() before calling this method.
-        * @exception           E_SUCCESS                                       The method is successful.
-        * @exception           E_FILE_NOT_FOUND                The specified file cannot be found or accessed.
-        * @exception           E_INVALID_ARG                           The specified input parameter is invalid.
+        * @return              An error code
+        * @param[in]   contentPath                             The content path
+        * @param[in]   thumbnailPath                   The thumbnail path
+        * @param[in]   setGps                                  Set to @c true to save the device's last known coordinates of the
+        *                                                                              ContentInfo instance, @n
+        *                                      else @c false @n
+        *                                                                              The coordinate information may be incorrect if it is outdated or has
+        *                                                                              never been updated @n
+        *                                      To update the coordinate information or to get the exact value, use
+        *                                                                              Tizen::Locations::LocationProvider::RequestLocationUpdates()
+        *                                                                              before calling this method.
+        * @exception           E_SUCCESS                       The method is successful.
+        * @exception           E_FILE_NOT_FOUND        The specified file cannot be found or accessed.
+        * @exception           E_INVALID_ARG           The specified input parameter is invalid.
         * @exception           E_OUT_OF_MEMORY         The memory is insufficient.
-        * @exception           E_IO                                                            An I/O error has occurred.
+        * @exception           E_IO                            An I/O error has occurred.
         * @remarks
-        *                                      - The content path must start with @c '/Media' or @c '/Storagecard/Media'.
-        *                                      - The thumbnail path must start with @c '/Home', @c '/Media', or @c '/Storagecard/Media'. @n
-        *                                              The permitted format for a thumbnail image is bitmap (bmp).
+        *                              - The content path must start with @c '/Media' or @c '/Storagecard/Media'.
+        *                              - The thumbnail path must start with @c '/Home', @c '/Media', or @c '/Storagecard/Media'. @n
+        *                              The permitted format for a thumbnail image is bitmap (bmp).
         * @endif
         */
        virtual result Construct(const Tizen::Base::String& contentPath, const Tizen::Base::String& thumbnailPath = L"", bool setGps = false);
@@ -190,17 +203,18 @@ public:
        Tizen::Base::String GetArtist(void) const;
 
        /**
-        * @if OSPDEPREC
+        * @if                  OSPDEPREC
         * Gets the bit rate of the video file.
         *
-        * @brief       <i> [Deprecated] </i>
+        * @brief               <i> [Deprecated] </i>
         * @deprecated  This method is deprecated because a new method has been added. @n
-        *                  Instead of using this method, use GetAudioBitrate() or GetVideoBitrate().
+        *              Instead of using this method, use GetAudioBitrate() or GetVideoBitrate().
         * @since               2.0
         *
         * @return              The bit rate in bits per second (bps)
-        * @remarks     There are two kinds of bit rates in a video file: audio and video. @n
-        *                                      The return value is the bit rate for the audio.
+        * @remarks
+        *                              - There are two kinds of bit rates in a video file: audio and video.
+        *                              - The return value is the bit rate for the audio.
         * @endif
         */
        int GetBitrate(void) const;
@@ -208,18 +222,18 @@ public:
        /**
         * Gets the audio bit rate of the video file.
         *
-        * @since     2.0
+        * @since       2.0
         *
-        * @return    The audio bit rate in bits per second (bps)
+        * @return      The audio bit rate in bits per second (bps)
         */
        int GetAudioBitrate(void) const;
 
        /**
         * Gets the video bit rate of the video file.
         *
-        * @since     2.0
+        * @since       2.0
         *
-        * @return    The video bit rate in bits per second (bps)
+        * @return      The video bit rate in bits per second (bps)
         */
        int GetVideoBitrate(void) const;
 
@@ -280,32 +294,6 @@ public:
        long GetDuration(void) const;
 
 private:
-       class _VideoContentData
-       {
-       public:
-               _VideoContentData()
-                       : width(0)
-                       , height(0)
-                       , framerate(0)
-                       , audioBitrate(0)
-                       , videoBitrate(0)
-                       , duration(0)
-                       , pArtist(null)
-                       , pGenre(null)
-                       , pTitle(null)
-                       , pAlbumName(null) {}
-
-               int width;
-               int height;
-               int framerate;
-               int audioBitrate;
-               int videoBitrate;
-               long duration;
-               Tizen::Base::String* pArtist;
-               Tizen::Base::String* pGenre;
-               Tizen::Base::String* pTitle;
-               Tizen::Base::String* pAlbumName;
-       };
 
        /**
         * The implementation of this copy constructor is intentionally blank and declared as private to prohibit copying of objects.
@@ -317,26 +305,11 @@ private:
         */
        VideoContentInfo& operator =(const VideoContentInfo& rhs);
 
-       result SetVideoContentData(const _VideoContentData* pVideoContentData);
-
-       _VideoContentData* GetVideoContentData(void);
-
-       result GetVideoMetadata(void) const;
-
-private:
        _VideoContentData* __pVideoContentData;
-
-       friend class _ContentManagerImpl;
-       friend class _ContentSearchImpl;
-       friend class _ContentDirectoryImpl;
-       friend class _ContentUtility;
-       friend class _PlayListManagerImpl;
-       friend class _PlayListImpl;
-
+       _VideoContentInfoImpl* __pVideoContentInfoImpl;
        friend class _VideoContentInfoImpl;
-       _VideoContentInfoImpl* __pImpl;
 
-};  // Class VideoContentInfo
+};  // VideoContentInfo
 
 }}  // Tizen::Content