15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef MEDIA_BASE_MEDIA_LOG_EVENT_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define MEDIA_BASE_MEDIA_LOG_EVENT_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "base/time/time.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/values.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace media { 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct MediaLogEvent { 14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) MediaLogEvent() {} 15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) MediaLogEvent(const MediaLogEvent& event) { 17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *this = event; 18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) MediaLogEvent& operator=(const MediaLogEvent& event) { 21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) id = event.id; 22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) type = event.type; 23eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch scoped_ptr<base::DictionaryValue> event_copy(event.params.DeepCopy()); 24c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) params.Swap(event_copy.get()); 25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) time = event.time; 26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return *this; 27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) enum Type { 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // A WebMediaPlayer is being created or destroyed. 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // params: none. 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WEBMEDIAPLAYER_CREATED, 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WEBMEDIAPLAYER_DESTROYED, 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // A Pipeline is being created or destroyed. 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // params: none. 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PIPELINE_CREATED, 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PIPELINE_DESTROYED, 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // A media player is loading a resource. 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // params: "url": <URL of the resource>. 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) LOAD, 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // A media player has started seeking. 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // params: "seek_target": <number of seconds to which to seek>. 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SEEK, 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // A media player has been told to play or pause. 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // params: none. 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PLAY, 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PAUSE, 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The state of Pipeline has changed. 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // params: "pipeline_state": <string name of the state>. 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PIPELINE_STATE_CHANGED, 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // An error has occurred in the pipeline. 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // params: "pipeline_error": <string name of the error>. 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PIPELINE_ERROR, 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The size of the video has been determined. 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // params: "width": <integral width of the video>. 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // "height": <integral height of the video>. 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) VIDEO_SIZE_SET, 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // A property of the pipeline has been set by a filter. 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // These take a single parameter based upon the name of the event and of 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // the appropriate type. e.g. DURATION_SET: "duration" of type TimeDelta. 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DURATION_SET, 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TOTAL_BYTES_SET, 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NETWORK_ACTIVITY_SET, 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 731320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Audio/Video stream playback has ended. 741320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ENDED, 751320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 761320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Text stream playback has ended. 77f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) TEXT_ENDED, 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The extents of the sliding buffer have changed. 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // params: "buffer_start": <first buffered byte>. 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // "buffer_current": <current offset>. 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // "buffer_end": <last buffered byte>. 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) BUFFERED_EXTENTS_CHANGED, 842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Errors reported by Media Source Extensions code. 862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) MEDIA_SOURCE_ERROR, 872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // params: "error": Error string describing the error detected. 883240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 893240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // A property has changed without any special event occurring. 903240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch PROPERTY_CHANGE, 915f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 925f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) TYPE_LAST = PROPERTY_CHANGE 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32 id; 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Type type; 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::DictionaryValue params; 98eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch base::TimeTicks time; 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace media 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // MEDIA_BASE_MEDIA_LOG_EVENT_H_ 104