vMix Forums
	 » 
	General
	 » 
	Feature Requests
	 » 
	List Input - Folder Watch
	 
	
        
            
            
    
        
	Rank: Advanced Member
  Groups: Registered
 Joined: 2/2/2015(UTC) Posts: 169 Location: NL
  Thanks: 179 times Was thanked: 20 time(s) in 17 post(s)
  
	 
	
     | 
    
        
            
		      
                +1 So many +1's ... am I right that this request was never implemented? It deserves serious consideration. 
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Rank: Advanced Member
  Groups: Registered
 Joined: 5/25/2018(UTC) Posts: 73
  Was thanked: 6 time(s) in 6 post(s)
  
	 
	
     | 
    
        
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
        
            
            
    
        
	Rank: Advanced Member
  Groups: Registered
 Joined: 7/23/2013(UTC) Posts: 127  Location: North Thanks: 12 times Was thanked: 13 time(s) in 11 post(s)
  
	 
	
     | 
    
        
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Rank: Guest
  Groups: Guests
 Joined: 1/13/2010(UTC) Posts: 230
  Was thanked: 4 time(s) in 4 post(s)
  
	 
	
     | 
    
        
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
        
            
            
    
        
	Rank: Advanced Member
  Groups: Registered
 Joined: 10/26/2016(UTC) Posts: 83
  Thanks: 207 times Was thanked: 13 time(s) in 12 post(s)
  
	 
	
     | 
    
        
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Rank: Advanced Member
  Groups: Registered
 Joined: 7/4/2021(UTC) Posts: 413  Thanks: 9 times Was thanked: 59 time(s) in 50 post(s)
  
	 
	
     | 
    
        
            
		      
                +1 Originally Posted by: Ario  +1 So many +1's ... am I right that this request was never implemented? It deserves serious consideration.  Just because an idea--especially a popular one--has not been implemented doesn't mean it hasn't been (or isn't being) seriously considered.  
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
        
            
            
    
        
	Rank: Member
  Groups: Registered
 Joined: 8/26/2017(UTC) Posts: 11  Location: UK Was thanked: 4 time(s) in 3 post(s)
  
	 
	
     | 
    
        
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Rank: Advanced Member
  Groups: Registered
 Joined: 2/23/2019(UTC) Posts: 135  Thanks: 16 times Was thanked: 29 time(s) in 26 post(s)
  
	 
	
     | 
    
        
            
		      
                This sounded like an interesting challenge so I've just written a PowerShell script that will monitor a folder and add new files to a list input - it doesn't handle files being deleted or renamed. I say I wrote it but it is 90% from a file monitoring example I found. At the top of the code you need to set the input number of the list you want files added to and also the path to the folder you want to monitor. To run it, open Windows PowerShell, and paste the script in and press enter. It outputs a . every second to show it is doing something and will display a message when a new file is found. Hopefully this helps some of you out, or can be a starting point.  Code:
# values to set
# specify input you want the files added to
$ListInput=2
# specify the path to the folder you want to monitor: 
$Path = "C:\WatchFolder"
# specify which files you want to monitor
$FileFilter = '*'  
# specify whether you want to monitor subfolders as well:
$IncludeSubfolders = $false
#
#
#
# create TCP connection to vMix API
$tcpConnection = New-Object System.Net.Sockets.TcpClient(127.0.0.1, 8099)
$tcpStream = $tcpConnection.GetStream()
$writer = New-Object System.IO.StreamWriter($tcpStream)
$writer.AutoFlush = $true
# folder monitoring coded based on https://powershell.one/tricks/filesystem/filesystemwatcher#advanced-mode-asynchonous
$AttributeFilter = [IO.NotifyFilters]::FileName, [IO.NotifyFilters]::LastWrite 
try
{
  $watcher = New-Object -TypeName System.IO.FileSystemWatcher -Property @{
    Path = $Path
    Filter = $FileFilter
    IncludeSubdirectories = $IncludeSubfolders
    NotifyFilter = $AttributeFilter
  }
  # define the code that should execute when a change occurs:
  $action = {
    # the code is receiving this to work with:
    
    # change type information:
    $details = $event.SourceEventArgs
    $Name = $details.Name
    $FullPath = $details.FullPath
    $OldFullPath = $details.OldFullPath
    $OldName = $details.OldName
    
    # type of change:
    $ChangeType = $details.ChangeType
    
    # when the change occured:
    $Timestamp = $event.TimeGenerated
    
    # now you can define some action to take based on the
    # details about the change event:
    
    # let's compose a message:
    $text = "{0} was {1} at {2}" -f $FullPath, $ChangeType, $Timestamp
    Write-Host ""
    Write-Host $text -ForegroundColor DarkYellow
    
    # you can also execute code based on change type here:
    switch ($ChangeType)
    {
      'Changed'  { "CHANGE" }
      'Created'  { "CREATED"
        # add file to list
        $command = "FUNCTION ListAdd Input={0}&Value={1}" -f $ListInput, $FullPath
        $writer.writeLine($command)
        }
      'Deleted'  { "DELETED" }
      'Renamed'  { "RENAMED" }
        
      # any unhandled change types surface here:
      default   { Write-Host $_ -ForegroundColor Red -BackgroundColor White }
    }
  }
  # subscribe your event handler to all event types that are
  # important to you. Do this as a scriptblock so all returned
  # event handlers can be easily stored in $handlers:
  $handlers = . {
    Register-ObjectEvent -InputObject $watcher -EventName Changed  -Action $action 
    Register-ObjectEvent -InputObject $watcher -EventName Created  -Action $action 
    Register-ObjectEvent -InputObject $watcher -EventName Deleted  -Action $action 
    Register-ObjectEvent -InputObject $watcher -EventName Renamed  -Action $action 
  }
  # monitoring starts now:
  $watcher.EnableRaisingEvents = $true
  Write-Host "Watching for changes to $Path"
  # since the FileSystemWatcher is no longer blocking PowerShell
  # we need a way to pause PowerShell while being responsive to
  # incoming events. Use an endless loop to keep PowerShell busy:
  do
  {
    # Wait-Event waits for a second and stays responsive to events
    # Start-Sleep in contrast would NOT work and ignore incoming events
    Wait-Event -Timeout 1
    # write a dot to indicate we are still monitoring:
    Write-Host "." -NoNewline
        
  } while ($true)
}
finally
{
  # this gets executed when user presses CTRL+C:
  
  # stop monitoring
  $watcher.EnableRaisingEvents = $false
  
  # remove the event handlers
  $handlers | ForEach-Object {
    Unregister-Event -SourceIdentifier $_.Name
  }
  
  # event handlers are technically implemented as a special kind
  # of background job, so remove the jobs now:
  $handlers | Remove-Job
  
  # properly dispose the FileSystemWatcher:
  $watcher.Dispose()
  
  Write-Warning "Event Handler disabled, monitoring ends."
}
 
  
            
	  
         
     | 
    
        
              1 user thanked RichDanby for this useful post.  
     | 
    
        
     | 
    | 
        
	
     | 
        
        
        
    
        
            
            
    
        
	Rank: Advanced Member
  Groups: Registered
 Joined: 12/8/2022(UTC) Posts: 103  Thanks: 28 times Was thanked: 1 time(s) in 1 post(s)
  
	 
	
     | 
    
        
            
		      
                +1 
  ...cannot understand why such an obvious and very useful function still is missing in vMix.  
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Rank: Newbie
  Groups: Registered
 Joined: 5/3/2024(UTC) Posts: 2  Location: Faro  
	 
	
     | 
    
        
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
        
            
            
    
        
	Rank: Advanced Member
  Groups: Registered
 Joined: 4/23/2017(UTC) Posts: 1,382  Location: Germany Thanks: 3 times Was thanked: 185 time(s) in 165 post(s)
  
	 
	
     | 
    
        
            
		      
                +1 I can see a use of it.  
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
                           
	vMix Forums
	 » 
	General
	 » 
	Feature Requests
	 » 
	List Input - Folder Watch
	 
	
    
        Forum Jump
         
	
    
    You cannot post new topics in this forum.
	
	You cannot reply to topics in this forum.
	
	You cannot delete your posts in this forum.
	
	You cannot edit your posts in this forum.
	
	You cannot create polls in this forum.
	
	You cannot vote in polls in this forum.
	
	
    
    
        Important Information:
        The vMix Forums uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
        
        
More Details
        Close