/*
 * Copyright (C) 2017 Open Source Robotics Foundation
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
*/

syntax = "proto3";
package ignition.msgs;
option java_package = "com.ignition.msgs";
option java_outer_classname = "LogPlaybackControlProtos";

/// \ingroup ignition.msgs
/// \interface LogPlaybackControl
/// \brief A message that allows for control of log playback functions.

import "ignition/msgs/time.proto";
import "ignition/msgs/header.proto";

message LogPlaybackControl
{
  /// \brief Optional header data
  Header header     = 1;

  /// \brief Pause/play the log file.
  bool pause        = 2;

  /// \brief Make a relative jump. The value indicates the number of
  ///        iterations that will be executed at once. If a negative
  ///        value is specified, the playback will jump backwards.
  sint32 multi_step = 3;

  /// \brief Jump to the beginning of the log file.
  bool rewind       = 4;

  /// \brief Jump to the end of the log file.
  bool forward      = 5;

  /// \brief Jump to a specific simulation time in the log file. The
  ///        playback service will load the frame with the closest
  ///        simulation time bigger than the "seek" value.
  Time seek         = 6;
}
