# Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS.  All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.

# Inspired by chromium.org:
# http://dev.chromium.org/developers/contributing-code/watchlists

{
  'WATCHLIST_DEFINITIONS': {
    'this_file': {
      'filepath': '^WATCHLISTS$',
    },
    'all_webrtc': {
      # NOTE: if you like this you might like webrtc-reviews@webrtc.org!
      'filepath': 'webrtc/.*',
    },
    'root_files': {
      # webrtc/build/ and non-recursive contents of ./ and webrtc/
      'filepath': '^[^/]*$|webrtc/[^/]*$|webrtc/build/.*',
    },
    'documented_interfaces': {
      'filepath': 'webrtc/[^/]*\.h$|'\
                  'webrtc/voice_engine/include/.*',
    },
    'build_files': {
      'filepath': '\.gyp$|\.gypi$|Android\.mk$',
    },
    'java_files': {
      'filepath': '\.java$|\.xml$',
    },
    'video_engine': {
      'filepath': 'webrtc/video_engine/.*|'\
                  'webrtc/video/.*',
    },
    'voice_engine': {
      'filepath': 'webrtc/voice_engine/.*',
    },
    'common_audio': {
      'filepath': 'webrtc/common_audio/.*',
    },
    'common_video': {
      'filepath': 'webrtc/common_video/.*',
    },
    'video_capture': {
      'filepath': 'webrtc/modules/video_capture/.*',
    },
    'video_render': {
      'filepath': 'webrtc/modules/video_render/.*',
    },
    'audio_device': {
      'filepath': 'webrtc/modules/audio_device/.*',
    },
    'audio_coding': {
      'filepath': 'webrtc/modules/audio_coding/.*',
    },
    'neteq': {
      'filepath': 'webrtc/modules/audio_coding/neteq/.*',
    },
    'audio_processing': {
      'filepath': 'webrtc/modules/audio_processing/.*',
    },
    'video_coding': {
      'filepath': 'webrtc/modules/video_coding/.*',
    },
    'video_processing': {
      'filepath': 'webrtc/modules/video_processing/.*',
    },
    'bitrate_controller': {
      'filepath': 'webrtc/modules/bitrate_controller/.*'
    },
    'remote_bitrate_estimator': {
      'filepath': 'webrtc/modules/remote_bitrate_estimator/.*'
    },
    'pacing': {
      'filepath': 'webrtc/modules/pacing/.*'
    },
    'rtp_rtcp': {
      'filepath': 'webrtc/modules/rtp_rtcp/.*'
    },
    'system_wrappers': {
      'filepath': 'webrtc/system_wrappers/.*',
    },
  },

  'WATCHLISTS': {
    'this_file': [''],
    'all_webrtc': ['tterriberry@mozilla.com'],
    'root_files': ['andrew@webrtc.org',
                   'niklas.enbom@webrtc.org',
                   'yujie.mao@webrtc.org',
                   'qiang.lu@intel.com'],
    'documented_interfaces': ['interface-changes@webrtc.org',
                              'rwolff@gocast.it'],
    'common_audio': ['aluebs@webrtc.org',
                     'andrew@webrtc.org',
                     'bjornv@webrtc.org'],
    'video_engine': ['andresp@webrtc.org',
                     'mflodman@webrtc.org',
                     'perkj@webrtc.org',
                     'stefan@webrtc.org',
                     'yujie.mao@webrtc.org',
                     'solenberg@webrtc.org'],
    'voice_engine': ['henrika@webrtc.org',
                     'henrik.lundin@webrtc.org',
                     'solenberg@webrtc.org'],
    'video_capture': ['mflodman@webrtc.org',
                      'perkj@webrtc.org'],
    'video_render': ['mflodman@webrtc.org',
                     'perkj@webrtc.org'],
    'audio_device': ['henrika@webrtc.org'],
    'audio_coding': ['tina.legrand@webrtc.org',
                     'henrik.lundin@webrtc.org',
                     'kwiberg@webrtc.org'],
    'neteq': ['henrik.lundin@webrtc.org'],
    'audio_processing': ['aluebs@webrtc.org',
                         'andrew@webrtc.org',
                         'bjornv@webrtc.org',
                         'kwiberg@webrtc.org',
                         'henrik.lundin@webrtc.org',
                         'solenberg@webrtc.org'],
    'video_coding': ['stefan@webrtc.org',
                     'mflodman@webrtc.org'],
    'video_processing': ['stefan@webrtc.org'],
    'bitrate_controller': ['stefan@webrtc.org',
                           'mflodman@webrtc.org'],
    'remote_bitrate_estimator': ['stefan@webrtc.org',
                                 'mflodman@webrtc.org'],
    'pacing': ['stefan@webrtc.org',
               'mflodman@webrtc.org'],
    'rtp_rtcp': ['mflodman@webrtc.org',
                 'stefan@webrtc.org'],
    'system_wrappers': ['mflodman@webrtc.org',
                        'henrika@webrtc.org',
                        'andrew@webrtc.org'],
  },
}
