Rock Ridge

iso_image_file_sourceでRock Ridgeをサポートしました。
とりあえず、ファイル名を記録している「"NM" System Use Entry」だけパースしています。
iso9660_file_source_impl.hppの差分
iso_image_file_source_impl.hppの差分


これまではJolietのボリューム記述子があればJoliet、それ以外はISO 9660として扱ってきましたが、JolietとRock Ridgeのハイブリッドという場合も考慮して、外部からボリューム記述子を選択できるように変更しました。

class iso_image_file_source
{
public:
    // ボリューム記述子のベクタを取得する
    const std::vector<iso9660::volume_descriptor>& volume_descriptors() const;

    // ボリューム記述子をインデックスで選択する
    void select_volume_descriptor(std::size_t index);

    // Rock Ridgeかどうか
    bool is_rock_ridge() const;

    // ...
};

これらのメンバ関数から得られる情報を元に適切なボリューム記述子を選択することになります。