ibutton_key.c 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #include "ibutton_key_i.h"
  2. struct iButtonKey {
  3. iButtonProtocolId protocol_id;
  4. iButtonProtocolData* protocol_data;
  5. size_t protocol_data_size;
  6. };
  7. iButtonKey* ibutton_key_alloc(size_t data_size) {
  8. iButtonKey* key = malloc(sizeof(iButtonKey));
  9. key->protocol_id = iButtonProtocolIdInvalid;
  10. key->protocol_data = malloc(data_size);
  11. key->protocol_data_size = data_size;
  12. return key;
  13. }
  14. void ibutton_key_free(iButtonKey* key) {
  15. free(key->protocol_data);
  16. free(key);
  17. }
  18. void ibutton_key_reset(iButtonKey* key) {
  19. key->protocol_id = iButtonProtocolIdInvalid;
  20. memset(key->protocol_data, 0, key->protocol_data_size);
  21. }
  22. iButtonProtocolId ibutton_key_get_protocol_id(const iButtonKey* key) {
  23. return key->protocol_id;
  24. }
  25. void ibutton_key_set_protocol_id(iButtonKey* key, iButtonProtocolId protocol_id) {
  26. key->protocol_id = protocol_id;
  27. }
  28. iButtonProtocolData* ibutton_key_get_protocol_data(const iButtonKey* key) {
  29. return key->protocol_data;
  30. }
  31. size_t ibutton_key_get_protocol_data_size(const iButtonKey* key) {
  32. return key->protocol_data_size;
  33. }