Use EnumIndexedVector in ReelWriter.
authorCarl Hetherington <cth@carlh.net>
Mon, 26 Sep 2022 22:52:20 +0000 (00:52 +0200)
committerCarl Hetherington <cth@carlh.net>
Tue, 27 Sep 2022 11:46:16 +0000 (13:46 +0200)
src/lib/reel_writer.cc
src/lib/reel_writer.h

index a247349d5a08c0f75e89dfcff5ec7ed05e5a3341..4227a45fd01979c5de34dfe6473acc9c79c2a993 100644 (file)
@@ -315,7 +315,7 @@ ReelWriter::write (shared_ptr<const Data> encoded, Frame frame, Eyes eyes)
 
        auto fin = _picture_asset_writer->write (encoded->data(), encoded->size());
        write_frame_info (frame, eyes, fin);
 
        auto fin = _picture_asset_writer->write (encoded->data(), encoded->size());
        write_frame_info (frame, eyes, fin);
-       _last_written[static_cast<int>(eyes)] = encoded;
+       _last_written[eyes] = encoded;
 }
 
 
 }
 
 
@@ -355,10 +355,7 @@ ReelWriter::repeat_write (Frame frame, Eyes eyes)
                return;
        }
 
                return;
        }
 
-       auto fin = _picture_asset_writer->write (
-               _last_written[static_cast<int>(eyes)]->data(),
-               _last_written[static_cast<int>(eyes)]->size()
-               );
+       auto fin = _picture_asset_writer->write(_last_written[eyes]->data(), _last_written[eyes]->size());
        write_frame_info (frame, eyes, fin);
 }
 
        write_frame_info (frame, eyes, fin);
 }
 
index 6e92e89230937bb2f8555b5e6c0695d6c6120462..e2c713cc5fccc56e115ff2ee8427887f8c5ceec1 100644 (file)
@@ -22,6 +22,7 @@
 #include "atmos_metadata.h"
 #include "dcp_text_track.h"
 #include "dcpomatic_time.h"
 #include "atmos_metadata.h"
 #include "dcp_text_track.h"
 #include "dcpomatic_time.h"
+#include "enum_indexed_vector.h"
 #include "font_id_map.h"
 #include "player_text.h"
 #include "referenced_reel_asset.h"
 #include "font_id_map.h"
 #include "player_text.h"
 #include "referenced_reel_asset.h"
@@ -125,7 +126,7 @@ private:
        /** the first picture frame index that does not already exist in our MXF */
        int _first_nonexistent_frame;
        /** the data of the last written frame, if there is one */
        /** the first picture frame index that does not already exist in our MXF */
        int _first_nonexistent_frame;
        /** the data of the last written frame, if there is one */
-       std::shared_ptr<const dcp::Data> _last_written[static_cast<int>(Eyes::COUNT)];
+       EnumIndexedVector<std::shared_ptr<const dcp::Data>, Eyes> _last_written;
        /** index of this reel within the DCP (starting from 0) */
        int _reel_index;
        /** number of reels in the DCP */
        /** index of this reel within the DCP (starting from 0) */
        int _reel_index;
        /** number of reels in the DCP */