388 lines
17 KiB
Python
388 lines
17 KiB
Python
#!/usr/bin/env python
|
|
|
|
import stringmanipulation
|
|
import filemanagement
|
|
import p4commands
|
|
import sys
|
|
|
|
name_space_to_ignore = 'GIPS::'
|
|
#only allow one prefix to be removed since allowing multiple will complicate
|
|
# things
|
|
prefix_to_filter = 'gips'
|
|
#words_to_filter = ['Module']
|
|
# it might be dangerous to remove GIPS but keep it default
|
|
words_to_filter = ['Module','GIPS']
|
|
|
|
# This script finds all the words that should be replaced in an h-file. Once
|
|
# all words that should be replaced are found it does a global search and
|
|
# replace.
|
|
|
|
extensions_to_edit = ['.cpp','.cc','.h']
|
|
|
|
#line = ' ~hiGIPSCriticalSectionScoped()'
|
|
#print line
|
|
#position = stringmanipulation.getword(line,11)
|
|
#old_word = line[position[0]:position[0]+position[1]]
|
|
#result = stringmanipulation.removealloccurances(old_word,'gips')
|
|
#new_word = result
|
|
#print old_word
|
|
#print position[0]
|
|
#print position[0]+position[1]
|
|
#print new_word
|
|
#quit()
|
|
|
|
# Ignore whole line if any item in this table is a substring of the line
|
|
do_not_replace_line_table = []
|
|
do_not_replace_line_table.append('namespace GIPS')
|
|
|
|
# [old_string,new_string]
|
|
# List of things to remove that are static:
|
|
manual_replace_table = []
|
|
#manual_replace_table.append(['using namespace GIPS;',''])
|
|
#manual_replace_table.append(['CreateGipsEvent','CreateEvent'])
|
|
#manual_replace_table.append(['CreateGIPSTrace','CreateTrace'])
|
|
#manual_replace_table.append(['ReturnGIPSTrace','ReturnTrace'])
|
|
#manual_replace_table.append(['CreateGIPSFile','CreateFile'])
|
|
replace_table = manual_replace_table
|
|
#replace_table.append(['GIPS::','webrtc::'])
|
|
# List of things to not remove that are static, i.e. exceptions:
|
|
# don't replace any of the GIPS_Words since that will affect all files
|
|
# do that in a separate script!
|
|
do_not_replace_table = []
|
|
do_not_replace_table.append('GIPS_CipherTypes')
|
|
do_not_replace_table.append('GIPS_AuthenticationTypes')
|
|
do_not_replace_table.append('GIPS_SecurityLevels')
|
|
do_not_replace_table.append('GIPS_encryption')
|
|
do_not_replace_table.append('~GIPS_encryption')
|
|
do_not_replace_table.append('GIPS_transport')
|
|
do_not_replace_table.append('~GIPS_transport')
|
|
do_not_replace_table.append('GIPSTraceCallback')
|
|
do_not_replace_table.append('~GIPSTraceCallback')
|
|
do_not_replace_table.append('GIPS_RTP_CSRC_SIZE')
|
|
do_not_replace_table.append('GIPS_RTPDirections')
|
|
do_not_replace_table.append('GIPS_RTP_INCOMING')
|
|
do_not_replace_table.append('GIPS_RTP_OUTGOING')
|
|
do_not_replace_table.append('GIPSFrameType')
|
|
do_not_replace_table.append('GIPS_FRAME_EMPTY')
|
|
do_not_replace_table.append('GIPS_AUDIO_FRAME_SPEECH')
|
|
do_not_replace_table.append('GIPS_AUDIO_FRAME_CN')
|
|
do_not_replace_table.append('GIPS_VIDEO_FRAME_KEY')
|
|
do_not_replace_table.append('GIPS_VIDEO_FRAME_DELTA')
|
|
do_not_replace_table.append('GIPS_VIDEO_FRAME_GOLDEN')
|
|
do_not_replace_table.append('GIPS_VIDEO_FRAME_DELTA_KEY')
|
|
do_not_replace_table.append('GIPS_PacketType')
|
|
do_not_replace_table.append('GIPS_PACKET_TYPE_RTP')
|
|
do_not_replace_table.append('GIPS_PACKET_TYPE_KEEP_ALIVE')
|
|
do_not_replace_table.append('GIPS_AudioLayers')
|
|
do_not_replace_table.append('GIPS_AUDIO_PLATFORM_DEFAULT')
|
|
do_not_replace_table.append('GIPS_AUDIO_WINDOWS_WAVE')
|
|
do_not_replace_table.append('GIPS_AUDIO_WINDOWS_CORE')
|
|
do_not_replace_table.append('GIPS_AUDIO_LINUX_ALSA')
|
|
do_not_replace_table.append('GIPS_AUDIO_LINUX_PULSE')
|
|
do_not_replace_table.append('GIPS_AUDIO_FORMAT')
|
|
do_not_replace_table.append('GIPS_PCM_16_16KHZ')
|
|
do_not_replace_table.append('GIPS_PCM_16_8KHZ')
|
|
do_not_replace_table.append('GIPS_G729')
|
|
do_not_replace_table.append('GIPSAMRmode')
|
|
do_not_replace_table.append('GIPS_RFC3267_BWEFFICIENT')
|
|
do_not_replace_table.append('GIPS_RFC3267_OCTETALIGNED')
|
|
do_not_replace_table.append('GIPS_RFC3267_FILESTORAGE')
|
|
do_not_replace_table.append('GIPS_NCModes')
|
|
do_not_replace_table.append('GIPS_NC_OFF')
|
|
do_not_replace_table.append('GIPS_NC_MILD')
|
|
do_not_replace_table.append('GIPS_NC_MODERATE')
|
|
do_not_replace_table.append('GIPS_NC_AGGRESSIVE')
|
|
do_not_replace_table.append('GIPS_NC_VERY_AGGRESSIVE')
|
|
do_not_replace_table.append('GIPS_AGCModes')
|
|
do_not_replace_table.append('GIPS_AGC_OFF')
|
|
do_not_replace_table.append('GIPS_AGC_ANALOG')
|
|
do_not_replace_table.append('GIPS_AGC_DIGITAL')
|
|
do_not_replace_table.append('GIPS_AGC_STANDALONE_DIG')
|
|
do_not_replace_table.append('GIPS_ECModes')
|
|
do_not_replace_table.append('GIPS_EC_UNCHANGED')
|
|
do_not_replace_table.append('GIPS_EC_DEFAULT')
|
|
do_not_replace_table.append('GIPS_EC_CONFERENCE')
|
|
do_not_replace_table.append('GIPS_EC_AEC')
|
|
do_not_replace_table.append('GIPS_EC_AES')
|
|
do_not_replace_table.append('GIPS_EC_AECM')
|
|
do_not_replace_table.append('GIPS_EC_NEC_IAD')
|
|
do_not_replace_table.append('GIPS_AESModes')
|
|
do_not_replace_table.append('GIPS_AES_DEFAULT')
|
|
do_not_replace_table.append('GIPS_AES_NORMAL')
|
|
do_not_replace_table.append('GIPS_AES_HIGH')
|
|
do_not_replace_table.append('GIPS_AES_ATTENUATE')
|
|
do_not_replace_table.append('GIPS_AES_NORMAL_SOFT_TRANS')
|
|
do_not_replace_table.append('GIPS_AES_HIGH_SOFT_TRANS')
|
|
do_not_replace_table.append('GIPS_AES_ATTENUATE_SOFT_TRANS')
|
|
do_not_replace_table.append('GIPS_AECMModes')
|
|
do_not_replace_table.append('GIPS_AECM_QUIET_EARPIECE_OR_HEADSET')
|
|
do_not_replace_table.append('GIPS_AECM_EARPIECE')
|
|
do_not_replace_table.append('GIPS_AECM_LOUD_EARPIECE')
|
|
do_not_replace_table.append('GIPS_AECM_SPEAKERPHONE')
|
|
do_not_replace_table.append('GIPS_AECM_LOUD_SPEAKERPHONE')
|
|
do_not_replace_table.append('AECM_LOUD_SPEAKERPHONE')
|
|
do_not_replace_table.append('GIPS_VAD_CONVENTIONAL')
|
|
do_not_replace_table.append('GIPS_VAD_AGGRESSIVE_LOW')
|
|
do_not_replace_table.append('GIPS_VAD_AGGRESSIVE_MID')
|
|
do_not_replace_table.append('GIPS_VAD_AGGRESSIVE_HIGH')
|
|
do_not_replace_table.append('GIPS_NetEQModes')
|
|
do_not_replace_table.append('GIPS_NETEQ_DEFAULT')
|
|
do_not_replace_table.append('GIPS_NETEQ_STREAMING')
|
|
do_not_replace_table.append('GIPS_NETEQ_FAX')
|
|
do_not_replace_table.append('GIPS_NetEQBGNModes')
|
|
do_not_replace_table.append('GIPS_BGN_ON')
|
|
do_not_replace_table.append('GIPS_BGN_FADE')
|
|
do_not_replace_table.append('GIPS_BGN_OFF')
|
|
do_not_replace_table.append('GIPS_OnHoldModes')
|
|
do_not_replace_table.append('GIPS_HOLD_SEND_AND_PLAY')
|
|
do_not_replace_table.append('GIPS_HOLD_SEND_ONLY')
|
|
do_not_replace_table.append('GIPS_HOLD_PLAY_ONLY')
|
|
do_not_replace_table.append('GIPS_PayloadFrequencies')
|
|
do_not_replace_table.append('GIPS_FREQ_8000_HZ')
|
|
do_not_replace_table.append('GIPS_FREQ_16000_HZ')
|
|
do_not_replace_table.append('GIPS_FREQ_32000_HZ')
|
|
do_not_replace_table.append('GIPS_TelephoneEventDetectionMethods')
|
|
do_not_replace_table.append('GIPS_IN_BAND')
|
|
do_not_replace_table.append('GIPS_OUT_OF_BAND')
|
|
do_not_replace_table.append('GIPS_IN_AND_OUT_OF_BAND')
|
|
do_not_replace_table.append('GIPS_ProcessingTypes')
|
|
do_not_replace_table.append('GIPS_PLAYBACK_PER_CHANNEL')
|
|
do_not_replace_table.append('GIPS_PLAYBACK_ALL_CHANNELS_MIXED')
|
|
do_not_replace_table.append('GIPS_RECORDING_PER_CHANNEL')
|
|
do_not_replace_table.append('GIPS_RECORDING_ALL_CHANNELS_MIXED')
|
|
do_not_replace_table.append('GIPS_StereoChannel')
|
|
do_not_replace_table.append('GIPS_StereoLeft')
|
|
do_not_replace_table.append('GIPS_StereoRight')
|
|
do_not_replace_table.append('GIPS_StereoBoth')
|
|
do_not_replace_table.append('GIPS_stat_val')
|
|
do_not_replace_table.append('GIPS_P56_statistics')
|
|
do_not_replace_table.append('GIPS_echo_statistics')
|
|
do_not_replace_table.append('GIPS_NetworkStatistics')
|
|
do_not_replace_table.append('GIPS_JitterStatistics')
|
|
do_not_replace_table.append('GIPSVideoRawType')
|
|
do_not_replace_table.append('GIPS_VIDEO_I420')
|
|
do_not_replace_table.append('GIPS_VIDEO_YV12')
|
|
do_not_replace_table.append('GIPS_VIDEO_YUY2')
|
|
do_not_replace_table.append('GIPS_VIDEO_UYVY')
|
|
do_not_replace_table.append('GIPS_VIDEO_IYUV')
|
|
do_not_replace_table.append('GIPS_VIDEO_ARGB')
|
|
do_not_replace_table.append('GIPS_VIDEO_RGB24')
|
|
do_not_replace_table.append('GIPS_VIDEO_RGB565')
|
|
do_not_replace_table.append('GIPS_VIDEO_ARGB4444')
|
|
do_not_replace_table.append('GIPS_VIDEO_ARGB1555')
|
|
do_not_replace_table.append('GIPS_VIDEO_MJPG')
|
|
do_not_replace_table.append('GIPS_VIDEO_NV12')
|
|
do_not_replace_table.append('GIPS_VIDEO_NV21')
|
|
do_not_replace_table.append('GIPS_VIDEO_Unknown')
|
|
do_not_replace_table.append('GIPSVideoLayouts')
|
|
do_not_replace_table.append('GIPS_LAYOUT_NONE')
|
|
do_not_replace_table.append('GIPS_LAYOUT_DEFAULT')
|
|
do_not_replace_table.append('GIPS_LAYOUT_ADVANCED1')
|
|
do_not_replace_table.append('GIPS_LAYOUT_ADVANCED2')
|
|
do_not_replace_table.append('GIPS_LAYOUT_ADVANCED3')
|
|
do_not_replace_table.append('GIPS_LAYOUT_ADVANCED4')
|
|
do_not_replace_table.append('GIPS_LAYOUT_FULL')
|
|
do_not_replace_table.append('KGIPSConfigParameterSize')
|
|
do_not_replace_table.append('KGIPSPayloadNameSize')
|
|
do_not_replace_table.append('GIPSVideoCodecH263')
|
|
do_not_replace_table.append('GIPSVideoH264Packetization')
|
|
do_not_replace_table.append('GIPS_H264_SingleMode')
|
|
do_not_replace_table.append('GIPS_H264_NonInterleavedMode')
|
|
do_not_replace_table.append('GIPSVideoCodecComplexity')
|
|
do_not_replace_table.append('GIPSVideoCodec_Complexity_Normal')
|
|
do_not_replace_table.append('GIPSVideoCodec_Comlexity_High')
|
|
do_not_replace_table.append('GIPSVideoCodec_Comlexity_Higher')
|
|
do_not_replace_table.append('GIPSVideoCodec_Comlexity_Max')
|
|
do_not_replace_table.append('GIPSVideoCodecH264')
|
|
do_not_replace_table.append('GIPSVideoH264Packetization')
|
|
do_not_replace_table.append('GIPSVideoCodecComplexity')
|
|
do_not_replace_table.append('GIPSVideoCodecProfile')
|
|
do_not_replace_table.append('KGIPSConfigParameterSize')
|
|
do_not_replace_table.append('KGIPSMaxSVCLayers')
|
|
do_not_replace_table.append('GIPSVideoH264LayerTypes')
|
|
do_not_replace_table.append('GIPS_H264SVC_Base')
|
|
do_not_replace_table.append('GIPS_H264SVC_Extend_2X2')
|
|
do_not_replace_table.append('GIPS_H264SVC_Extend_1X1')
|
|
do_not_replace_table.append('GIPS_H264SVC_Extend_MGS')
|
|
do_not_replace_table.append('GIPS_H264SVC_Extend_1_5')
|
|
do_not_replace_table.append('GIPS_H264SVC_Extend_Custom')
|
|
do_not_replace_table.append('GIPSVideoH264LayersProperties')
|
|
do_not_replace_table.append('GIPSVideoH264LayerTypes')
|
|
do_not_replace_table.append('GIPSVideoH264Layers')
|
|
do_not_replace_table.append('GIPSVideoH264LayersProperties')
|
|
do_not_replace_table.append('GIPSVideoCodecH264SVC')
|
|
do_not_replace_table.append('GIPSVideoCodecComplexity')
|
|
do_not_replace_table.append('GIPSVideoCodecProfile')
|
|
do_not_replace_table.append('GIPSVideoH264Layers')
|
|
do_not_replace_table.append('GIPSVideoCodecVP8')
|
|
do_not_replace_table.append('GIPSVideoCodecComplexity')
|
|
do_not_replace_table.append('GIPSVideoCodecMPEG')
|
|
do_not_replace_table.append('GIPSVideoCodecGeneric')
|
|
do_not_replace_table.append('GIPSVideoCodecType')
|
|
do_not_replace_table.append('GIPSVideoCodec_H263')
|
|
do_not_replace_table.append('GIPSVideoCodec_H264')
|
|
do_not_replace_table.append('GIPSVideoCodec_H264SVC')
|
|
do_not_replace_table.append('GIPSVideoCodec_VP8')
|
|
do_not_replace_table.append('GIPSVideoCodec_MPEG4')
|
|
do_not_replace_table.append('GIPSVideoCodec_I420')
|
|
do_not_replace_table.append('GIPSVideoCodec_RED')
|
|
do_not_replace_table.append('GIPSVideoCodec_ULPFEC')
|
|
do_not_replace_table.append('GIPSVideoCodec_Unknown')
|
|
do_not_replace_table.append('GIPSVideoCodecUnion')
|
|
do_not_replace_table.append('GIPSVideoCodecH263')
|
|
do_not_replace_table.append('GIPSVideoCodecH264')
|
|
do_not_replace_table.append('GIPSVideoCodecH264SVC')
|
|
do_not_replace_table.append('GIPSVideoCodecVP8')
|
|
do_not_replace_table.append('GIPSVideoCodecMPEG4')
|
|
do_not_replace_table.append('GIPSVideoCodecGeneric')
|
|
do_not_replace_table.append('GIPSVideoCodec')
|
|
do_not_replace_table.append('GIPSVideoCodecType')
|
|
do_not_replace_table.append('GIPSVideoCodecUnion')
|
|
do_not_replace_table.append('GIPSAudioFrame')
|
|
do_not_replace_table.append('GIPS_CodecInst')
|
|
do_not_replace_table.append('GIPS_FileFormats')
|
|
do_not_replace_table.append('GIPSTickTime')
|
|
do_not_replace_table.append('GIPS_Word64')
|
|
do_not_replace_table.append('GIPS_UWord64')
|
|
do_not_replace_table.append('GIPS_Word32')
|
|
do_not_replace_table.append('GIPS_UWord32')
|
|
do_not_replace_table.append('GIPS_Word16')
|
|
do_not_replace_table.append('GIPS_UWord16')
|
|
do_not_replace_table.append('GIPS_Word8')
|
|
do_not_replace_table.append('GIPS_UWord8')
|
|
|
|
if((len(sys.argv) != 2) and (len(sys.argv) != 3)):
|
|
print 'parameters are: parent directory [--commit]'
|
|
quit()
|
|
|
|
if((len(sys.argv) == 3) and (sys.argv[2] != '--commit')):
|
|
print 'parameters are: parent directory [--commit]'
|
|
quit()
|
|
|
|
commit = (len(sys.argv) == 3)
|
|
|
|
directory = sys.argv[1];
|
|
if(not filemanagement.pathexist(directory)):
|
|
print 'path ' + directory + ' does not exist'
|
|
quit()
|
|
|
|
# APIs are all in h-files
|
|
extension = '.h'
|
|
|
|
# All h-files
|
|
files_to_modify = filemanagement.listallfilesinfolder(directory,\
|
|
extension)
|
|
|
|
def isinmanualremovetable( compare_word ):
|
|
for old_word, new_word in manual_replace_table:
|
|
if(old_word == compare_word):
|
|
return True
|
|
return False
|
|
|
|
# Begin
|
|
# This function looks at each line and decides which words should be replaced
|
|
# that is this is the only part of the script that you will ever want to change!
|
|
def findstringstoreplace(line):
|
|
original_line = line
|
|
# Dont replace compiler directives
|
|
if(line[0] == '#'):
|
|
return []
|
|
# Dont allow global removal of namespace gips since it is very intrusive
|
|
for sub_string_compare in do_not_replace_line_table:
|
|
index = stringmanipulation.issubstring(line,sub_string_compare)
|
|
if(index != -1):
|
|
return []
|
|
|
|
return_value = []
|
|
|
|
line = stringmanipulation.removeccomment(line)
|
|
line = stringmanipulation.whitespacestoonespace(line)
|
|
if(len(line) == 0):
|
|
return []
|
|
if(line[0] == '*'):
|
|
return []
|
|
index = stringmanipulation.issubstring(line,prefix_to_filter)
|
|
while index >= 0:
|
|
dont_store_hit = False
|
|
word_position = stringmanipulation.getword(line, index)
|
|
start_of_word = word_position[0]
|
|
size_of_word = word_position[1]
|
|
end_of_word = start_of_word + size_of_word
|
|
old_word = line[start_of_word:end_of_word]
|
|
if(isinmanualremovetable(old_word)):
|
|
dont_store_hit = True
|
|
if((end_of_word + 2 < len(line)) and\
|
|
name_space_to_ignore == line[start_of_word:end_of_word+2]):
|
|
dont_store_hit = True
|
|
|
|
result = stringmanipulation.removeprefix(old_word,prefix_to_filter)
|
|
new_word = result[1]
|
|
for word_to_filter in words_to_filter:
|
|
new_word = stringmanipulation.removealloccurances(new_word,word_to_filter)
|
|
result = stringmanipulation.removeprefix(new_word,'_')
|
|
new_word = result[1]
|
|
new_word = stringmanipulation.fixabbreviations(new_word)
|
|
new_word = stringmanipulation.removealloccurances(new_word,'_')
|
|
if(not dont_store_hit):
|
|
return_value.append([old_word,new_word])
|
|
# remove the word we found from the string so we dont find it again
|
|
line = line[0:start_of_word] + line[end_of_word:len(line)]
|
|
index = stringmanipulation.issubstring(line,'GIPS')
|
|
|
|
return return_value
|
|
# End
|
|
|
|
# loop through all files
|
|
for path, file_name in files_to_modify:
|
|
# if(file_name != 'GIPSTickUtil.h'):
|
|
# continue
|
|
full_file_name = path + file_name
|
|
file_pointer = open(full_file_name,'r')
|
|
# print file_name
|
|
#loop through all lines
|
|
for line in file_pointer:
|
|
# print line
|
|
local_replace_string = findstringstoreplace(line)
|
|
#print local_replace_string
|
|
if(len(local_replace_string) != 0):
|
|
replace_table.extend(local_replace_string)
|
|
|
|
|
|
# we have built our replace table now
|
|
replace_table = stringmanipulation.removeduplicates( replace_table )
|
|
replace_table = stringmanipulation.ordertablesizefirst( replace_table )
|
|
replace_table = stringmanipulation.complement(replace_table,\
|
|
do_not_replace_table)
|
|
|
|
def replaceoriginal( path,my_table ):
|
|
size_of_table = len(my_table)
|
|
for index in range(len(my_table)):
|
|
old_name = my_table[index][0]
|
|
new_name = my_table[index][1]
|
|
filemanagement.replacestringinfolder(path, old_name, new_name,\
|
|
".h")
|
|
print (100*index) / (size_of_table*2)
|
|
|
|
def replaceall( my_table, extension_list ):
|
|
size_of_table = len(my_table)
|
|
for index in range(len(my_table)):
|
|
old_name = my_table[index][0]
|
|
new_name = my_table[index][1]
|
|
new_name = new_name
|
|
for extension in extensions_to_edit:
|
|
filemanagement.replacestringinallsubfolders(old_name, new_name,
|
|
extension)
|
|
print 100*(size_of_table + index) / (size_of_table*2)
|
|
|
|
|
|
if(commit):
|
|
print 'commiting'
|
|
replace_table = stringmanipulation.removenochange(replace_table)
|
|
p4commands.checkoutallfiles()
|
|
replaceoriginal(directory,replace_table)
|
|
replaceall(replace_table,extensions_to_edit)
|
|
p4commands.revertunchangedfiles()
|
|
else:
|
|
for old_name, new_name in replace_table:
|
|
print 'Going to replace [' + old_name + '] with [' + new_name + ']'
|