The JUCE cross-platform C++ framework, with DISTRHO/KXStudio specific changes
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

88 lines
2.5KB

  1. /*
  2. ==============================================================================
  3. This file is part of the JUCE library - "Jules' Utility Class Extensions"
  4. Copyright 2004-10 by Raw Material Software Ltd.
  5. ------------------------------------------------------------------------------
  6. JUCE can be redistributed and/or modified under the terms of the GNU General
  7. Public License (Version 2), as published by the Free Software Foundation.
  8. A copy of the license is included in the JUCE distribution, or can be found
  9. online at www.gnu.org/licenses.
  10. JUCE is distributed in the hope that it will be useful, but WITHOUT ANY
  11. WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
  12. A PARTICULAR PURPOSE. See the GNU General Public License for more details.
  13. ------------------------------------------------------------------------------
  14. To release a closed-source product which uses JUCE, commercial licenses are
  15. available: visit www.rawmaterialsoftware.com/juce for more information.
  16. ==============================================================================
  17. */
  18. #include "../../core/juce_StandardHeader.h"
  19. BEGIN_JUCE_NAMESPACE
  20. #include "juce_MACAddress.h"
  21. //==============================================================================
  22. MACAddress::MACAddress()
  23. : asInt64 (0)
  24. {
  25. }
  26. MACAddress::MACAddress (const MACAddress& other)
  27. : asInt64 (other.asInt64)
  28. {
  29. }
  30. MACAddress& MACAddress::operator= (const MACAddress& other)
  31. {
  32. asInt64 = other.asInt64;
  33. return *this;
  34. }
  35. MACAddress::MACAddress (const uint8 bytes[6])
  36. : asInt64 (0)
  37. {
  38. memcpy (asBytes, bytes, sizeof (asBytes));
  39. }
  40. const String MACAddress::toString() const
  41. {
  42. String s;
  43. for (int i = 0; i < numElementsInArray (asBytes); ++i)
  44. {
  45. s << String::toHexString ((int) asBytes[i]).paddedLeft ('0', 2);
  46. if (i < numElementsInArray (asBytes) - 1)
  47. s << '-';
  48. }
  49. return s;
  50. }
  51. int64 MACAddress::toInt64() const throw()
  52. {
  53. int64 n = 0;
  54. for (int i = numElementsInArray (asBytes); --i >= 0;)
  55. n = (n << 8) | asBytes[i];
  56. return n;
  57. }
  58. bool MACAddress::isNull() const throw() { return asInt64 == 0; }
  59. bool MACAddress::operator== (const MACAddress& other) const throw() { return asInt64 == other.asInt64; }
  60. bool MACAddress::operator!= (const MACAddress& other) const throw() { return asInt64 != other.asInt64; }
  61. END_JUCE_NAMESPACE