mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
devices: return index from function adding / removing devices
This will be used to keep the model representing the device-list up to date. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
53118be1f9
commit
fadea413cd
2 changed files with 12 additions and 5 deletions
|
@ -299,17 +299,24 @@ extern "C" void create_device_node(struct device_table *device_table, const char
|
|||
}
|
||||
|
||||
/* Does not check for duplicates! */
|
||||
extern "C" void add_to_device_table(struct device_table *device_table, const struct device *dev)
|
||||
extern "C" int add_to_device_table(struct device_table *device_table, const struct device *dev)
|
||||
{
|
||||
auto it = std::lower_bound(device_table->devices.begin(), device_table->devices.end(), *dev);
|
||||
int idx = it - device_table->devices.begin();
|
||||
device_table->devices.insert(it, *dev);
|
||||
return idx;
|
||||
}
|
||||
|
||||
extern "C" void remove_device(struct device_table *device_table, const struct device *dev)
|
||||
extern "C" int remove_device(struct device_table *device_table, const struct device *dev)
|
||||
{
|
||||
auto it = std::lower_bound(device_table->devices.begin(), device_table->devices.end(), *dev);
|
||||
if (it != device_table->devices.end() && same_device(*it, *dev))
|
||||
if (it != device_table->devices.end() && same_device(*it, *dev)) {
|
||||
int idx = it - device_table->devices.begin();
|
||||
device_table->devices.erase(it);
|
||||
return idx;
|
||||
} else {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
extern "C" void clear_device_table(struct device_table *device_table)
|
||||
|
|
|
@ -29,8 +29,8 @@ extern bool device_used_by_selected_dive(const struct device *dev);
|
|||
|
||||
extern const struct device *get_device_for_dc(const struct device_table *table, const struct divecomputer *dc);
|
||||
extern bool device_exists(const struct device_table *table, const struct device *dev);
|
||||
extern void add_to_device_table(struct device_table *table, const struct device *dev);
|
||||
extern void remove_device(struct device_table *table, const struct device *dev);
|
||||
extern int add_to_device_table(struct device_table *table, const struct device *dev); // returns index
|
||||
extern int remove_device(struct device_table *table, const struct device *dev); // returns index or -1 if not found
|
||||
|
||||
// struct device accessors for C-code. The returned strings are not stable!
|
||||
const char *device_get_model(const struct device *dev);
|
||||
|
|
Loading…
Add table
Reference in a new issue