2#include <ossia/editor/scenario/time_signature.hpp> 
    4#include <ossia-qt/time_value.hpp> 
   10using musical_sync = double;
 
   18  friend bool operator==(
const bar_time& lhs, 
const bar_time& rhs) 
noexcept 
   20    return lhs.bars == rhs.bars && lhs.quarters == rhs.quarters
 
   21           && lhs.semiquavers == rhs.semiquavers && lhs.cents == rhs.cents;
 
   23  friend bool operator!=(
const bar_time& lhs, 
const bar_time& rhs) 
noexcept 
   30inline QDataStream& operator<<(QDataStream& i, 
const ossia::time_signature& sel)
 
   32  return i << sel.upper << sel.lower;
 
   35inline QDataStream& operator>>(QDataStream& i, ossia::time_signature& sel)
 
   37  return i >> sel.upper >> sel.lower;
 
   40inline QDataStream& operator<<(QDataStream& i, 
const ossia::bar_time& sel)
 
   42  return i << sel.bars << sel.quarters << sel.semiquavers << sel.cents;
 
   45inline QDataStream& operator>>(QDataStream& i, ossia::bar_time& sel)
 
   47  return i >> sel.bars >> sel.quarters >> sel.semiquavers >> sel.cents;
 
   50Q_DECLARE_METATYPE(ossia::musical_sync)
 
   51W_REGISTER_ARGTYPE(ossia::musical_sync)
 
   53Q_DECLARE_METATYPE(ossia::bar_time)
 
   54W_REGISTER_ARGTYPE(ossia::bar_time)
 
   56Q_DECLARE_METATYPE(ossia::time_signature)
 
   57W_REGISTER_ARGTYPE(ossia::time_signature)