OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |