Reputation: 21
so, there was some discussion several years ago about creating a video wall effect on mac using applescript to produce an app but the code appears to no longer reflect the way QT works on Mavericks.
what this does: you would "drop" a bunch of video clips onto the app, and it would automagically resize them all and loop them to create a cool "video wall mosaic" effect on your screen - very cool if you output to a large TV or a projector-to-wall
any idea how to update/repair this code to generate a fix for QT under mavericks? here's the most recent iteration, though if you test under applescript editor it seems to not be working...
on open filelist
tell application "QuickTime Player" to open filelist
run
end open
on run
tell application "QuickTime Player"
set ratio to 4 / 3
tell application "Finder" to set display_bounds to bounds of window of desktop
set display_width to (item 3 of display_bounds)
set display_height to (item 4 of display_bounds) - 42 -- menu height + title bar
set window_count to count of windows
set max_pixels to 0
repeat with potential_cols from 1 to window_count -- try all possibilities - hardly optimal but who cares.
set potential_rows to round (window_count - 1) / potential_cols + 1 rounding toward zero
set {potential_window_width, potential_window_height} to {round display_width / potential_cols rounding toward zero, round display_height / potential_rows rounding toward zero}
if potential_window_width / potential_window_height < ratio then
set {potential_window_width, potential_window_height} to {potential_window_width, round potential_window_width / ratio rounding toward zero}
else
set {potential_window_width, potential_window_height} to {potential_window_height * ratio, potential_window_height}
end if
set used_pixels to potential_window_width * potential_window_height * window_count
if used_pixels > max_pixels then
set {window_width, window_height, cols, rows} to {potential_window_width, potential_window_height, potential_cols, potential_rows}
set max_pixels to used_pixels
end if
end repeat
set {x, y} to {0, 0}
set wins to (get every window)
repeat with win in wins
set doc to document of win
set «class mctl» of doc to «constant playnone»
set looping of doc to true
set {wi, hi} to natural dimensions of doc
if wi / window_width > hi / window_height then
set «class pdim» of doc to {window_width, hi / (wi / window_width)}
else
set «class pdim» of doc to {wi / (hi / window_height), window_height}
end if
set x to x + 1
if x = cols then set {x, y} to {0, y + 1}
end repeat
set {x, y} to {0, 0}
set wins to (get every window)
repeat with win in wins
set {wi, hi} to natural dimensions of doc
if wi / window_width > hi / window_height then
set bounds of win to {window_width * x, 22 + window_height * y, window_width * x + window_width, 22 + window_height * y + hi / (wi / window_width)}
else
set bounds of win to {window_width * x, 22 + window_height * y, window_width * x + wi / (hi / window_height), 22 + window_height * y + window_height}
end if
set x to x + 1
if x = cols then set {x, y} to {0, y + 1}
end repeat
set wins to (get every window)
repeat with win in wins
play document of win
end repeat
activate
end tell
end run
Upvotes: 2
Views: 1769
Reputation: 3292
This script works fine with QuickTime Player 7.
Apple still makes it available to make up for all the missing functionality in recent versions.
If it's not already on your machine try this download http://support.apple.com/kb/DL923
Then in the script rename all the "QuickTime Player" references to "QuickTime Player 7"
Upvotes: 2