Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(344)

Side by Side Diff: mojo/dart/packages/mojo_services/lib/mojo/media/media_factory.mojom.dart

Issue 2009643002: Motown: Implement MediaTimelineController and use it. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Sync Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | mojo/services/media/control/interfaces/media_factory.mojom » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 library media_factory_mojom; 5 library media_factory_mojom;
6 import 'dart:async'; 6 import 'dart:async';
7 import 'package:mojo/bindings.dart' as bindings; 7 import 'package:mojo/bindings.dart' as bindings;
8 import 'package:mojo/core.dart' as core; 8 import 'package:mojo/core.dart' as core;
9 import 'package:mojo/mojo/bindings/types/service_describer.mojom.dart' as servic e_describer; 9 import 'package:mojo/mojo/bindings/types/service_describer.mojom.dart' as servic e_describer;
10 import 'package:mojo_services/mojo/media/media_demux.mojom.dart' as media_demux_ mojom; 10 import 'package:mojo_services/mojo/media/media_demux.mojom.dart' as media_demux_ mojom;
11 import 'package:mojo_services/mojo/media/media_player.mojom.dart' as media_playe r_mojom; 11 import 'package:mojo_services/mojo/media/media_player.mojom.dart' as media_playe r_mojom;
12 import 'package:mojo_services/mojo/media/media_sink.mojom.dart' as media_sink_mo jom; 12 import 'package:mojo_services/mojo/media/media_sink.mojom.dart' as media_sink_mo jom;
13 import 'package:mojo_services/mojo/media/media_source.mojom.dart' as media_sourc e_mojom; 13 import 'package:mojo_services/mojo/media/media_source.mojom.dart' as media_sourc e_mojom;
14 import 'package:mojo_services/mojo/media/media_type_converter.mojom.dart' as med ia_type_converter_mojom; 14 import 'package:mojo_services/mojo/media/media_type_converter.mojom.dart' as med ia_type_converter_mojom;
15 import 'package:mojo_services/mojo/media/media_types.mojom.dart' as media_types_ mojom; 15 import 'package:mojo_services/mojo/media/media_types.mojom.dart' as media_types_ mojom;
16 import 'package:mojo_services/mojo/media/seeking_reader.mojom.dart' as seeking_r eader_mojom; 16 import 'package:mojo_services/mojo/media/seeking_reader.mojom.dart' as seeking_r eader_mojom;
17 import 'package:mojo_services/mojo/media/timeline_controller.mojom.dart' as time line_controller_mojom;
17 18
18 19
19 20
20 class _MediaFactoryCreatePlayerParams extends bindings.Struct { 21 class _MediaFactoryCreatePlayerParams extends bindings.Struct {
21 static const List<bindings.StructDataHeader> kVersions = const [ 22 static const List<bindings.StructDataHeader> kVersions = const [
22 const bindings.StructDataHeader(24, 0) 23 const bindings.StructDataHeader(24, 0)
23 ]; 24 ];
24 seeking_reader_mojom.SeekingReaderInterface reader = null; 25 seeking_reader_mojom.SeekingReaderInterface reader = null;
25 media_player_mojom.MediaPlayerInterfaceRequest player = null; 26 media_player_mojom.MediaPlayerInterfaceRequest player = null;
26 27
(...skipping 532 matching lines...) Expand 10 before | Expand all | Expand 10 after
559 "url: $url" ", " 560 "url: $url" ", "
560 "reader: $reader" ")"; 561 "reader: $reader" ")";
561 } 562 }
562 563
563 Map toJson() { 564 Map toJson() {
564 throw new bindings.MojoCodecError( 565 throw new bindings.MojoCodecError(
565 'Object containing handles cannot be encoded to JSON.'); 566 'Object containing handles cannot be encoded to JSON.');
566 } 567 }
567 } 568 }
568 569
570
571 class _MediaFactoryCreateTimelineControllerParams extends bindings.Struct {
572 static const List<bindings.StructDataHeader> kVersions = const [
573 const bindings.StructDataHeader(16, 0)
574 ];
575 timeline_controller_mojom.MediaTimelineControllerInterfaceRequest timelineCont roller = null;
576
577 _MediaFactoryCreateTimelineControllerParams() : super(kVersions.last.size);
578
579 static _MediaFactoryCreateTimelineControllerParams deserialize(bindings.Messag e message) {
580 var decoder = new bindings.Decoder(message);
581 var result = decode(decoder);
582 if (decoder.excessHandles != null) {
583 decoder.excessHandles.forEach((h) => h.close());
584 }
585 return result;
586 }
587
588 static _MediaFactoryCreateTimelineControllerParams decode(bindings.Decoder dec oder0) {
589 if (decoder0 == null) {
590 return null;
591 }
592 _MediaFactoryCreateTimelineControllerParams result = new _MediaFactoryCreate TimelineControllerParams();
593
594 var mainDataHeader = decoder0.decodeStructDataHeader();
595 if (mainDataHeader.version <= kVersions.last.version) {
596 // Scan in reverse order to optimize for more recent versions.
597 for (int i = kVersions.length - 1; i >= 0; --i) {
598 if (mainDataHeader.version >= kVersions[i].version) {
599 if (mainDataHeader.size == kVersions[i].size) {
600 // Found a match.
601 break;
602 }
603 throw new bindings.MojoCodecError(
604 'Header size doesn\'t correspond to known version size.');
605 }
606 }
607 } else if (mainDataHeader.size < kVersions.last.size) {
608 throw new bindings.MojoCodecError(
609 'Message newer than the last known version cannot be shorter than '
610 'required by the last known version.');
611 }
612 if (mainDataHeader.version >= 0) {
613
614 result.timelineController = decoder0.decodeInterfaceRequest(8, false, time line_controller_mojom.MediaTimelineControllerStub.newFromEndpoint);
615 }
616 return result;
617 }
618
619 void encode(bindings.Encoder encoder) {
620 var encoder0 = encoder.getStructEncoderAtOffset(kVersions.last);
621 try {
622 encoder0.encodeInterfaceRequest(timelineController, 8, false);
623 } on bindings.MojoCodecError catch(e) {
624 e.message = "Error encountered while encoding field "
625 "timelineController of struct _MediaFactoryCreateTimelineControllerPar ams: $e";
626 rethrow;
627 }
628 }
629
630 String toString() {
631 return "_MediaFactoryCreateTimelineControllerParams("
632 "timelineController: $timelineController" ")";
633 }
634
635 Map toJson() {
636 throw new bindings.MojoCodecError(
637 'Object containing handles cannot be encoded to JSON.');
638 }
639 }
640
569 const int _mediaFactoryMethodCreatePlayerName = 0; 641 const int _mediaFactoryMethodCreatePlayerName = 0;
570 const int _mediaFactoryMethodCreateSourceName = 1; 642 const int _mediaFactoryMethodCreateSourceName = 1;
571 const int _mediaFactoryMethodCreateSinkName = 2; 643 const int _mediaFactoryMethodCreateSinkName = 2;
572 const int _mediaFactoryMethodCreateDemuxName = 3; 644 const int _mediaFactoryMethodCreateDemuxName = 3;
573 const int _mediaFactoryMethodCreateDecoderName = 4; 645 const int _mediaFactoryMethodCreateDecoderName = 4;
574 const int _mediaFactoryMethodCreateNetworkReaderName = 5; 646 const int _mediaFactoryMethodCreateNetworkReaderName = 5;
647 const int _mediaFactoryMethodCreateTimelineControllerName = 6;
575 648
576 class _MediaFactoryServiceDescription implements service_describer.ServiceDescri ption { 649 class _MediaFactoryServiceDescription implements service_describer.ServiceDescri ption {
577 dynamic getTopLevelInterface([Function responseFactory]) => 650 dynamic getTopLevelInterface([Function responseFactory]) =>
578 responseFactory(null); 651 responseFactory(null);
579 652
580 dynamic getTypeDefinition(String typeKey, [Function responseFactory]) => 653 dynamic getTypeDefinition(String typeKey, [Function responseFactory]) =>
581 responseFactory(null); 654 responseFactory(null);
582 655
583 dynamic getAllTypeDefinitions([Function responseFactory]) => 656 dynamic getAllTypeDefinitions([Function responseFactory]) =>
584 responseFactory(null); 657 responseFactory(null);
(...skipping 20 matching lines...) Expand all
605 } 678 }
606 s.connectToService(url, p, name); 679 s.connectToService(url, p, name);
607 return p; 680 return p;
608 } 681 }
609 void createPlayer(seeking_reader_mojom.SeekingReaderInterface reader, media_pl ayer_mojom.MediaPlayerInterfaceRequest player); 682 void createPlayer(seeking_reader_mojom.SeekingReaderInterface reader, media_pl ayer_mojom.MediaPlayerInterfaceRequest player);
610 void createSource(seeking_reader_mojom.SeekingReaderInterface reader, List<med ia_types_mojom.MediaTypeSet> allowedMediaTypes, media_source_mojom.MediaSourceIn terfaceRequest source); 683 void createSource(seeking_reader_mojom.SeekingReaderInterface reader, List<med ia_types_mojom.MediaTypeSet> allowedMediaTypes, media_source_mojom.MediaSourceIn terfaceRequest source);
611 void createSink(String destinationUrl, media_types_mojom.MediaType mediaType, media_sink_mojom.MediaSinkInterfaceRequest sink); 684 void createSink(String destinationUrl, media_types_mojom.MediaType mediaType, media_sink_mojom.MediaSinkInterfaceRequest sink);
612 void createDemux(seeking_reader_mojom.SeekingReaderInterface reader, media_dem ux_mojom.MediaDemuxInterfaceRequest demux); 685 void createDemux(seeking_reader_mojom.SeekingReaderInterface reader, media_dem ux_mojom.MediaDemuxInterfaceRequest demux);
613 void createDecoder(media_types_mojom.MediaType inputMediaType, media_type_conv erter_mojom.MediaTypeConverterInterfaceRequest decoder); 686 void createDecoder(media_types_mojom.MediaType inputMediaType, media_type_conv erter_mojom.MediaTypeConverterInterfaceRequest decoder);
614 void createNetworkReader(String url, seeking_reader_mojom.SeekingReaderInterfa ceRequest reader); 687 void createNetworkReader(String url, seeking_reader_mojom.SeekingReaderInterfa ceRequest reader);
688 void createTimelineController(timeline_controller_mojom.MediaTimelineControlle rInterfaceRequest timelineController);
615 } 689 }
616 690
617 abstract class MediaFactoryInterface 691 abstract class MediaFactoryInterface
618 implements bindings.MojoInterface<MediaFactory>, 692 implements bindings.MojoInterface<MediaFactory>,
619 MediaFactory { 693 MediaFactory {
620 factory MediaFactoryInterface([MediaFactory impl]) => 694 factory MediaFactoryInterface([MediaFactory impl]) =>
621 new MediaFactoryStub.unbound(impl); 695 new MediaFactoryStub.unbound(impl);
622 factory MediaFactoryInterface.fromEndpoint( 696 factory MediaFactoryInterface.fromEndpoint(
623 core.MojoMessagePipeEndpoint endpoint, 697 core.MojoMessagePipeEndpoint endpoint,
624 [MediaFactory impl]) => 698 [MediaFactory impl]) =>
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
749 if (!ctrl.isBound) { 823 if (!ctrl.isBound) {
750 ctrl.proxyError("The Proxy is closed."); 824 ctrl.proxyError("The Proxy is closed.");
751 return; 825 return;
752 } 826 }
753 var params = new _MediaFactoryCreateNetworkReaderParams(); 827 var params = new _MediaFactoryCreateNetworkReaderParams();
754 params.url = url; 828 params.url = url;
755 params.reader = reader; 829 params.reader = reader;
756 ctrl.sendMessage(params, 830 ctrl.sendMessage(params,
757 _mediaFactoryMethodCreateNetworkReaderName); 831 _mediaFactoryMethodCreateNetworkReaderName);
758 } 832 }
833 void createTimelineController(timeline_controller_mojom.MediaTimelineControlle rInterfaceRequest timelineController) {
834 if (!ctrl.isBound) {
835 ctrl.proxyError("The Proxy is closed.");
836 return;
837 }
838 var params = new _MediaFactoryCreateTimelineControllerParams();
839 params.timelineController = timelineController;
840 ctrl.sendMessage(params,
841 _mediaFactoryMethodCreateTimelineControllerName);
842 }
759 } 843 }
760 844
761 class _MediaFactoryStubControl 845 class _MediaFactoryStubControl
762 extends bindings.StubMessageHandler 846 extends bindings.StubMessageHandler
763 implements bindings.StubControl<MediaFactory> { 847 implements bindings.StubControl<MediaFactory> {
764 MediaFactory _impl; 848 MediaFactory _impl;
765 849
766 _MediaFactoryStubControl.fromEndpoint( 850 _MediaFactoryStubControl.fromEndpoint(
767 core.MojoMessagePipeEndpoint endpoint, [MediaFactory impl]) 851 core.MojoMessagePipeEndpoint endpoint, [MediaFactory impl])
768 : super.fromEndpoint(endpoint, autoBegin: impl != null) { 852 : super.fromEndpoint(endpoint, autoBegin: impl != null) {
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
814 case _mediaFactoryMethodCreateDecoderName: 898 case _mediaFactoryMethodCreateDecoderName:
815 var params = _MediaFactoryCreateDecoderParams.deserialize( 899 var params = _MediaFactoryCreateDecoderParams.deserialize(
816 message.payload); 900 message.payload);
817 _impl.createDecoder(params.inputMediaType, params.decoder); 901 _impl.createDecoder(params.inputMediaType, params.decoder);
818 break; 902 break;
819 case _mediaFactoryMethodCreateNetworkReaderName: 903 case _mediaFactoryMethodCreateNetworkReaderName:
820 var params = _MediaFactoryCreateNetworkReaderParams.deserialize( 904 var params = _MediaFactoryCreateNetworkReaderParams.deserialize(
821 message.payload); 905 message.payload);
822 _impl.createNetworkReader(params.url, params.reader); 906 _impl.createNetworkReader(params.url, params.reader);
823 break; 907 break;
908 case _mediaFactoryMethodCreateTimelineControllerName:
909 var params = _MediaFactoryCreateTimelineControllerParams.deserialize(
910 message.payload);
911 _impl.createTimelineController(params.timelineController);
912 break;
824 default: 913 default:
825 throw new bindings.MojoCodecError("Unexpected message name"); 914 throw new bindings.MojoCodecError("Unexpected message name");
826 break; 915 break;
827 } 916 }
828 return null; 917 return null;
829 } 918 }
830 919
831 MediaFactory get impl => _impl; 920 MediaFactory get impl => _impl;
832 set impl(MediaFactory d) { 921 set impl(MediaFactory d) {
833 if (d == null) { 922 if (d == null) {
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
890 } 979 }
891 void createDemux(seeking_reader_mojom.SeekingReaderInterface reader, media_dem ux_mojom.MediaDemuxInterfaceRequest demux) { 980 void createDemux(seeking_reader_mojom.SeekingReaderInterface reader, media_dem ux_mojom.MediaDemuxInterfaceRequest demux) {
892 return impl.createDemux(reader, demux); 981 return impl.createDemux(reader, demux);
893 } 982 }
894 void createDecoder(media_types_mojom.MediaType inputMediaType, media_type_conv erter_mojom.MediaTypeConverterInterfaceRequest decoder) { 983 void createDecoder(media_types_mojom.MediaType inputMediaType, media_type_conv erter_mojom.MediaTypeConverterInterfaceRequest decoder) {
895 return impl.createDecoder(inputMediaType, decoder); 984 return impl.createDecoder(inputMediaType, decoder);
896 } 985 }
897 void createNetworkReader(String url, seeking_reader_mojom.SeekingReaderInterfa ceRequest reader) { 986 void createNetworkReader(String url, seeking_reader_mojom.SeekingReaderInterfa ceRequest reader) {
898 return impl.createNetworkReader(url, reader); 987 return impl.createNetworkReader(url, reader);
899 } 988 }
989 void createTimelineController(timeline_controller_mojom.MediaTimelineControlle rInterfaceRequest timelineController) {
990 return impl.createTimelineController(timelineController);
991 }
900 } 992 }
901 993
902 994
903 995
OLDNEW
« no previous file with comments | « no previous file | mojo/services/media/control/interfaces/media_factory.mojom » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698