1 /*
2    mkvmerge -- utility for splicing together matroska files
3    from component media subtypes
4 
5    Distributed under the GPL v2
6    see the file COPYING for details
7    or visit https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
8 
9    Helper functions for creating unique numbers.
10 
11    Written by Moritz Bunkus <moritz@bunkus.org>.
12 */
13 
14 #pragma once
15 
16 #include "common/common_pch.h"
17 
18 enum unique_id_category_e {
19   UNIQUE_ALL_IDS        = -1,
20   UNIQUE_TRACK_IDS      = 0,
21   UNIQUE_CHAPTER_IDS    = 1,
22   UNIQUE_EDITION_IDS    = 2,
23   UNIQUE_ATTACHMENT_IDS = 3
24 };
25 
26 void clear_list_of_unique_numbers(unique_id_category_e category);
27 bool is_unique_number(uint64_t number, unique_id_category_e category);
28 void add_unique_number(uint64_t number, unique_id_category_e category);
29 void remove_unique_number(uint64_t number, unique_id_category_e category);
30 uint64_t create_unique_number(unique_id_category_e category);
31 void ignore_unique_numbers(unique_id_category_e category);
32