{"version":3,"file":"mediaPlayResult.mjs","names":[],"sources":["../../../../src/hooks/playback/internal/mediaPlayResult.ts"],"sourcesContent":["import {\n  TimelineMediaError,\n  type TimelineMediaPlayFailureReason,\n} from '@techsquidtv/canvas-timeline-core';\nimport type { RationalTime } from '@techsquidtv/canvas-timeline-utils';\nimport { withMediaCauseMessage } from '#react/hooks/playback/mediaError';\n\n/** Result returned from a media-synchronized timeline play request. */\nexport type TimelineMediaPlayResult =\n  /** Playback started successfully at the returned timeline time. */\n  | { ok: true; time: RationalTime }\n  /** Playback failed before the timeline and external media clock could run together. */\n  | {\n      /** Discriminant for a failed media play command. */\n      ok: false;\n      /** Machine-readable play failure category. */\n      reason: TimelineMediaPlayFailureReason;\n      /** Human-readable failure detail suitable for status UI or logs. */\n      message: string;\n      /** Underlying adapter or decoder failure, when one was thrown. */\n      cause?: Error;\n    };\n\nexport function createMediaPlayFailure(\n  reason: TimelineMediaPlayFailureReason,\n  message: string,\n  onError: ((error: TimelineMediaError) => void) | undefined,\n  cause?: Error\n): TimelineMediaPlayResult {\n  const error = new TimelineMediaError(reason, withMediaCauseMessage(message, cause), { cause });\n  const result = {\n    ok: false,\n    reason,\n    message: error.message,\n    ...(cause !== undefined ? { cause } : {}),\n  } as const;\n  onError?.(error);\n  return result;\n}\n\nexport function createCancelledMediaPlayResult(): TimelineMediaPlayResult {\n  return {\n    ok: false,\n    reason: 'cancelled',\n    message: 'Media playback start was cancelled.',\n  };\n}\n"],"mappings":";;;AAuBA,SAAgB,uBACd,QACA,SACA,SACA,OACyB;CACzB,MAAM,QAAQ,IAAI,mBAAmB,QAAQ,sBAAsB,SAAS,KAAK,GAAG,EAAE,MAAM,CAAC;CAC7F,MAAM,SAAS;EACb,IAAI;EACJ;EACA,SAAS,MAAM;EACf,GAAI,UAAU,KAAA,IAAY,EAAE,MAAM,IAAI,CAAC;CACzC;CACA,UAAU,KAAK;CACf,OAAO;AACT;AAEA,SAAgB,iCAA0D;CACxE,OAAO;EACL,IAAI;EACJ,QAAQ;EACR,SAAS;CACX;AACF"}