Doc tweaks.
authorCarl Hetherington <cth@carlh.net>
Tue, 17 Jul 2012 23:53:52 +0000 (00:53 +0100)
committerCarl Hetherington <cth@carlh.net>
Tue, 17 Jul 2012 23:53:52 +0000 (00:53 +0100)
doc/mainpage.txt
src/dcp.cc
src/dcp.h
src/exceptions.h
src/metadata.cc
src/metadata.h
src/types.h
src/util.h

index 2ebabc0238b4d22f573facf1705a3191918a8dba..9d7139fa1197905470e9b27e19beb3eac480a7d4 100644 (file)
@@ -7,10 +7,83 @@ libdcp is a small library to create Digital Cinema Packages (DCPs) from JPEG2000
 Most of the hard work is done by a (slightly patched) version of asdcplib (http://www.cinecert.com/asdcplib/)
 which is included in the source distribution for libdcp.
 
-See libdcp::DCP for an example of libdcp's use.
-
 libdcp is distributed under the GNU GPL.
 
+Typical use might be:
+@code
+#include <libdcp/dcp.h>
+using namespace std;
+
+libdcp::DCP dcp ("My Film DCP", "My Film", libdcp::DCP::FEATURE, 24, 50000);
+
+vector<string> j2k_files;
+j2k_files.push_back ("1.j2c");
+...
+j2k_files.push_back ("50000.j2c");
+
+// These images are 1998x1080 pixels (DCI Flat)
+dcp.add_picture_asset (j2k_files, 1998, 1080);
+
+vector<string> wav_files;
+wav_files.push_back ("L.wav");
+wav_files.push_back ("R.wav");
+wav_files.push_back ("C.wav");
+wav_files.push_back ("Lfe.wav");
+wav_files.push_back ("Ls.wav");
+wav_files.push_back ("Rs.wav");
+dcp.add_sound_asset (wav_files);
+
+dcp.write_xml ();
+
+@endcode
+
+This will create a DCP at 24 frames per second with 50000 frames, writing
+data to a directory "My Film DCP", naming the DCP "My Film" and marking
+as a Feature.  We then add the picture and sound files (which creates
+MXF files inside the DCP directory) and then write the required XML files.
+
+If you want to report progress for long jobs (add_picture_asset() can
+take a long time, in particular, as it must do a lot of disk I/O for
+large DCPs), connect to the libdcp::DCP::Progress signal and report its parameter
+to the user (it will range between 0 for 0% and 1 for 100%).
+
+If you can generate content paths algorithmically, you may prefer to do something
+like this:
+
+@code
+
+string
+j2k_path (int frame)
+{
+       stringstream s;
+       s << "my_j2ks/" << frame << ".j2c"
+       return s.str ();
+}
+
+string
+wav_path (libdcp::Channel channel)
+{
+       switch (channel) {
+       case LEFT:
+               return "left.wav";
+       case RIGHT:
+               return "right.wav";
+       }
+
+       return "";
+}
+
+...
+
+// Our images are 1998x1080 (DCI Flat)
+dcp.add_picture_asset (sigc::ptr_fun (&j2k_path), 1998, 1080);
+// We have two sound channels
+dcp.add_sound_asset (sigc::ptr_fun (&wav_path), 2);
+
+...
+
+@endcode
+
 */
 
 
index c466396cf5313c50e72c926d73628950bc24a9a1..27ae9636da7ee3a4cff317acc929f1a29518fa51 100644 (file)
 
 */
 
+/** @file  src/dcp.cc
+ *  @brief A class to create a DCP.
+ */
+
 #include <sstream>
 #include <fstream>
 #include <iomanip>
index f683c419b721d57171a4084af5b6cbb252f2073d..9bd5f3ea66b8d312d4316c5a5ba58c45bbccb545 100644 (file)
--- a/src/dcp.h
+++ b/src/dcp.h
 
 */
 
+/** @file  src/dcp.h
+ *  @brief A class to create a DCP.
+ */
+
 #ifndef LIBDCP_DCP_H
 #define LIBDCP_DCP_H
 
@@ -34,46 +38,8 @@ class Asset;
 
 /** @class DCP dcp.h libdcp/dcp.h
  *  @brief A class to create a DCP.
- *
- *  Typical use might be:
- *  @code
- *  #include <libdcp/dcp.h>
- *  using namespace std;
- *
- *  libdcp::DCP dcp ("My Film DCP", "My Film", libdcp::DCP::FEATURE, 24, 50000);
- *
- *  vector<string> j2k_files;
- *  j2k_files.push_back ("1.j2c");
- *  ...
- *  j2k_files.push_back ("50000.j2c");
- *
- *  // These images are 1998x1080 pixels (DCI Flat)
- *  dcp.add_picture_asset (j2k_files, 1998, 1080);
- *
- *  vector<string> wav_files;
- *  wav_files.push_back ("L.wav");
- *  wav_files.push_back ("R.wav");
- *  wav_files.push_back ("C.wav");
- *  wav_files.push_back ("Lfe.wav");
- *  wav_files.push_back ("Ls.wav");
- *  wav_files.push_back ("Rs.wav");
- *  dcp.add_sound_asset (wav_files);
- *
- *  dcp.write_xml ();
- *
- *  @endcode
- *
- *  This will create a DCP at 24 frames per second with 50000 frames, writing
- *  data to a directory "My Film DCP", naming the DCP "My Film" and marking
- *  as a Feature.  We then add the picture and sound files (which creates
- *  MXF files inside the DCP directory) and then write the required XML files.
- *
- *  If you want to report progress for long jobs (add_picture_asset() can
- *  take a long time, in particular, as it must do a lot of disk I/O for
- *  large DCPs), connect to the libdcp::DCP::Progress signal and report its parameter
- *  to the user (it will range between 0 for 0% and 1 for 100%).
  */
+       
 class DCP
 {
 public:
index 0dbbec4b5cb62ef25f8d771a0b2499fd4998cf39..7443db151184a2564a51be25858d88f3f4d4c96d 100644 (file)
@@ -24,6 +24,7 @@
 namespace libdcp
 {
 
+/** @brief An exception related to a file */
 class FileError : public std::exception
 {
 public:
@@ -34,30 +35,38 @@ public:
                            
        ~FileError () throw () {}
 
+       /** @return error message */
        char const * what () const throw () {
                return _message.c_str ();
        }
        
+       /** @return filename of file that was involved */
        std::string filename () const {
                return _filename;
        }
 
 private:
+       /** error message */
        std::string _message;
+       /** filename of file that was involved */
        std::string _filename;
 };
 
+
+/** @brief A miscellaneous exception */
 class MiscError : public std::exception
 {
 public:
        MiscError (std::string const & message) : _message (message) {}
        ~MiscError () throw () {}
 
+       /** @return error message */
        char const * what () const throw () {
                return _message.c_str ();
        }
 
 private:
+       /** error message */
        std::string _message;
 };
 
index 797d645da95da9fcb202761b7eab2322534d6eec..07e289b3ccaadeee38ab06d254dbe6758d516037 100644 (file)
 
 */
 
+/** @file  src/metadata.cc
+ *  @brief Metadata for writing to the DCP.
+ */
+
 #include "metadata.h"
 
 using namespace std;
index 7660c4dda01a58a558b4e2c6a5549f81ff42c085..1610491eaea9fe31cefaa2fea90c0f09c126b232 100644 (file)
 
 */
 
+/** @file  src/metadata.h
+ *  @brief Metadata for writing to the DCP.
+ */
+
 #include <string>
 
 namespace libdcp
 {
 
-/** A class to hold various metadata that will be written
- *  to the DCP.  The values are initialised, and can be modified
- *  if desired.
+/** @brief A class to hold various metadata that will be written
+ *  to the DCP.
+ *
+ *  The values are initialised, and can be modified if desired.
  */
 class Metadata
 {
index 286c36236e4924cef603319e7ae4e7db9ba2c7a5..e2b916706014a97136b2af967ba4a56f17acc612 100644 (file)
 
 */
 
-#ifndef LIBDCP_CHANNEL_H
-#define LIBDCP_CHANNEL_H
+/** @file  src/types.h
+ *  @brief Miscellaneous types.
+ */
+
+#ifndef LIBDCP_TYPES_H
+#define LIBDCP_TYPES_H
 
 namespace libdcp
 {
index e4034da26cac7e72f49cdeace5bdd2722dc41e2f..b6c945a5a812933f6598c2811985b83e965f81b7 100644 (file)
 
 */
 
+/** @file  src/util.h
+ *  @brief Utility methods.
+ */
+
 #include <string>
 #include <sigc++/sigc++.h>