<?xml version="1.0" encoding="utf-8"?>
<HmsProcessMediaConfig version="2.08">
  <ProcessMediaItemList>
    <ProcessMediaItem>
      <HotKey>32881</HotKey>
      <Description>Открытие скрипта текущего выставленного профиля транскодирования для ссылки/подкаста/папки</Description>
      <Name>Открыть скрипт текущего профиля транскодирования</Name>
      <ButtonName>Профиль</ButtonName>
      <Button>-1</Button>
      <Script>///////////////////////////////////////////////////////////////////////////////
// Открытие окна редактирования скрипта профиля транскодирования
void OpenCurrentFrofile() {
  int i; string sProfile, sScript, sSyntax, sFile, sCurrentMediaType;
  TXMLDocument XMLDoc; TXMLItem XMLProfileList, XMLProfile, XMLItem; bool bSuccess;
  TMediaType MediaType;
  
  
  // Провереям, если конкретная выделенная ссылка на медиа-ресурс
  if (HmsCurrentMediaListItem != nil) {
    sProfile  = HmsCurrentMediaListItem.TranscodingProfile; 
    MediaType = HmsCurrentMediaListItem.MediaType;
    
  } else {
    sProfile  = HmsCurrentMediaTreeItem.TranscodingProfile;
    MediaType = HmsCurrentMediaTreeItem.MediaType;
    
  }
  
  sFile  = HmsDataDirectory+&apos;\\hmstrans.cfg&apos;; // Файл, где хранятся все профили транскодирования
  XMLDoc = TXMLDocument.Create();
  try {
    XMLDoc.LoadFromFile(sFile);

    XMLProfileList = XMLDoc.Root.Find(&apos;TranscodingProfileList&apos;);

    if (XMLProfileList == nil) {
      ShowMessage("Не удалось найти список профилей транскодирования в файле "+sFile);
      return;
    } 
      
    for (i=0; i &lt; XMLProfileList.Count; i++) {
      XMLProfile = XMLProfileList.Items[i];

      if (sProfile!="") {
        // Если указано имя профиля - ищем по имени
        if (XMLProfile.ChildValues[&apos;TranscodingProfile&apos;] == sProfile) break;
          
      } else { 
        // Иначе ищем профиль, используемый по-умолчанию
        if ((XMLProfile.ChildValues[&apos;TranscodingMediaType&apos;      ] == MediaType) &amp;&amp; 
            (XMLProfile.ChildValues[&apos;TranscodingProfilePriority&apos;] == -1)) break;
        
      }

      XMLProfile = nil;
    }  

    if (XMLProfile != nil) {
        if (sProfile==&apos;&apos;) sProfile = XMLProfile.ChildValues[&apos;TranscodingProfile&apos;];
        
        if (XMLProfile.ChildValues[&apos;TranscodingProfilePriority&apos;] == -1) sProfile = &apos;"&apos;+Trim(sProfile)+&apos;"    --     Используется по-умолчанию&apos;;
        
        sScript  = XMLProfile.ChildValues[&apos;TranscodingParams&apos;          ];
        sSyntax  = XMLProfile.ChildValues[&apos;TranscodingParamsSyntaxType&apos;];
        bSuccess = HmsExecuteScriptDialog(sScript, sSyntax, smTranscoding, &apos;TranscodingParams&apos;, nil, sProfile);
        
        if (bSuccess) {
          
          for (int n=0; n&lt;XMLProfile.Count; n++) {
            XMLItem = XMLProfile.Items[n];
            
            if      (XMLItem.Name == &apos;TranscodingParams&apos;          ) XMLItem.Value = sScript;
            else if (XMLItem.Name == &apos;TranscodingParamsSyntaxType&apos;) XMLItem.Value = sSyntax;
          }
          XMLDoc.SaveToFile(sFile);
          
        }

    } // end if (XMLProfil != nil)


  } finally { XMLDoc.Free; }
    
}

///////////////////////////////////////////////////////////////////////////////
//                     Г Л А В Н А Я   П Р О Ц Е Д У Р А                     //
{

  OpenCurrentFrofile();

}
</Script>
      <ScriptSyntaxType>C++Script</ScriptSyntaxType>
      <ScheduleActive>0</ScheduleActive>
      <Schedule>
        <TaskName></TaskName>
        <TaskParams></TaskParams>
        <Occurs>0</Occurs>
        <DailyMode>0</DailyMode>
        <DailyDaysInterval>1</DailyDaysInterval>
        <WeeklyDaysOfWeek>127</WeeklyDaysOfWeek>
        <WeeklyWeekInterval>1</WeeklyWeekInterval>
        <MonthlyMode>0</MonthlyMode>
        <MonthlyDayOfMonth>1</MonthlyDayOfMonth>
        <MonthlyWeekOfMonth>0</MonthlyWeekOfMonth>
        <MonthlyDayOfWeek>0</MonthlyDayOfWeek>
        <MonthlyMonths>4095</MonthlyMonths>
        <DailyFrequency>0</DailyFrequency>
        <OnceAtTime>0</OnceAtTime>
        <ExecuteTimeList></ExecuteTimeList>
        <TimeUnit>0</TimeUnit>
        <TimeInterval>3600</TimeInterval>
        <TimeStart>0</TimeStart>
        <TimeEnd>86399</TimeEnd>
        <DateStart>42412</DateStart>
        <NoEndDate>-1</NoEndDate>
      </Schedule>
    </ProcessMediaItem>
  </ProcessMediaItemList>
</HmsProcessMediaConfig>
