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 + ']'
 | 
