Here's a newer version :) On Wednesday, 16 December, 2009 01:16 PM, Máirín Duffy wrote:
Allan caeg wrote:On Wednesday, 16 December, 2009 11:02 AM, Kirk Bridger wrote:I believe you've touched on the first to-do, and I don't agree that it is mockups.Exactly. I was having a hard time coming up with mockups, because I didn't know what features to include in the first place.When working on something remotely like this, sometimes I like starting with some exploratory mockups first to tease out what kinds of features might be needed (people tend to get excited when they see them and call out suggestions :) ) Then you can go back and figuring out which are really needed, yadda.Whatever process works is fine, though, of course! As long as we get somewhere!! I'm sorry for forcing my notion of the way to go - I was just trying to make sure things didn't die :)First we need to know what the tasks are going to be in the application. You've listed:- check audio is working - check video is working - check video runtime (current length)- start, pause, and stop recording video (and associated audio I assume)- replay video with audio - mark timestamps in videoWell they don't have to be overlayed on the video - just bookmarked, using CMML. Then when you analyze you can click on the bookmarks to jump the playhead to where you want to go... ?- add notes to specific timestamps in video - stitch videos togetherAre we assuming just one video stream?Also we need screen capture as well! So we could do the video of the screen on the left, the video of the user on the right, record them into one video and letterbox it so it has a standard aspect ratio?So then there should be an option maybe, screen capture only, or screen capture AND user on the webcam right? Is there ever a reason to record just the user on the webcam? I don't think so - but - you might want to aim the webcam at a mobile device and record only that. So the options are:- screencast only - webcam only - screencast + webcamWe are also assuming write videos to disk right? Is there any possibility to stream them so folks can watch remotely? (I don't know. It should be possible technically.)That's correct. This is a good starting point. Other than those features, it would be nice to have presets for different purposes like FGDs, software/website, mobile device (captured by webcam), etc.What is FGDs?I suggest having four tabs in the app. Those are record, view (or playback), analyze, and present. I got that idea from the Morae apps.This is just summarizing your points. I think we should come up with a good starting list (maybe a little more than this) before we start mocking things up. Or we can start mocking up these tasks and build from there..Either approach works! Do you have any interesting / inspiration screenshots to show from Morae?Should we move this to a dedicated mailing list rather than crowd the usability ML?Maybe. I just don't know how to set that up. Who can help here?Let's wait until we have something.Btw, I refer to thewidgetfactory for available gtk+ widgets. Is there a better reference?There's also gtk-demo.... ~m
<mockup version="1.0" skin="sketch" measuredW="1016" measuredH="777" mockupW="820" mockupH="754"> <controls> <control controlID="64" controlTypeID="com.balsamiq.mockups::Label" x="760" y="377" w="-1" h="-1" measuredW="73" measuredH="25" zOrder="19" locked="false" isInGroup="-1"> <controlProperties> <text>Some%20stats</text> </controlProperties> </control> <control controlID="65" controlTypeID="com.balsamiq.mockups::Label" x="410" y="365" w="-1" h="-1" measuredW="73" measuredH="25" zOrder="20" locked="false" isInGroup="-1"> <controlProperties> <text>Some%20stats</text> </controlProperties> </control> <control controlID="66" controlTypeID="com.balsamiq.mockups::Canvas" x="274" y="449" w="722" h="142" measuredW="100" measuredH="70" zOrder="21" locked="false" isInGroup="-1"/> <control controlID="67" controlTypeID="com.balsamiq.mockups::Canvas" x="283" y="458" w="125" h="118" measuredW="100" measuredH="70" zOrder="22" locked="false" isInGroup="-1"/> <control controlID="4" controlTypeID="com.balsamiq.mockups::TabBar" x="265" y="121" w="741" h="646" measuredW="371" measuredH="100" zOrder="0" locked="false" isInGroup="-1"> <controlProperties> <text>Record%2C%20Observe%2C%20View%2C%20Analyze%2C%20Present</text> <selectedIndex>0</selectedIndex> </controlProperties> </control> <control controlID="69" controlTypeID="com.balsamiq.mockups::Canvas" x="447" y="458" w="125" h="118" measuredW="100" measuredH="70" zOrder="24" locked="false" isInGroup="-1"/> <control controlID="70" controlTypeID="com.balsamiq.mockups::Canvas" x="578" y="459" w="29" h="118" measuredW="100" measuredH="70" zOrder="25" locked="false" isInGroup="-1"/> <control controlID="7" controlTypeID="com.balsamiq.mockups::MenuBar" x="265" y="13" w="741" h="29" measuredW="264" measuredH="29" zOrder="1" locked="false" isInGroup="-1"> <controlProperties> <text>File%2C%20Edit%2C%20Play%2C%20View%2C%20Help</text> </controlProperties> </control> <control controlID="72" controlTypeID="com.balsamiq.mockups::Canvas" x="745" y="461" w="29" h="118" measuredW="100" measuredH="70" zOrder="27" locked="false" isInGroup="-1"/> <control controlID="73" controlTypeID="com.balsamiq.mockups::Canvas" x="778" y="460" w="125" h="118" measuredW="100" measuredH="70" zOrder="28" locked="false" isInGroup="-1"/> <control controlID="74" controlTypeID="com.balsamiq.mockups::Canvas" x="909" y="461" w="29" h="118" measuredW="100" measuredH="70" zOrder="29" locked="false" isInGroup="-1"/> <control controlID="75" controlTypeID="com.balsamiq.mockups::Canvas" x="943" y="461" w="48" h="118" measuredW="100" measuredH="70" zOrder="30" locked="false" isInGroup="-1"/> <control controlID="68" controlTypeID="com.balsamiq.mockups::Canvas" x="414" y="459" w="29" h="118" measuredW="100" measuredH="70" zOrder="23" locked="false" isInGroup="-1"/> <control controlID="77" controlTypeID="com.balsamiq.mockups::Label" x="186" y="507" w="-1" h="-1" measuredW="63" measuredH="25" zOrder="32" locked="false" isInGroup="-1"> <controlProperties> <text>Bookmark</text> </controlProperties> </control> <control controlID="14" controlTypeID="com.balsamiq.mockups::IconLabel" x="265" y="48" w="-1" h="-1" measuredW="48" measuredH="73" zOrder="2" locked="false" isInGroup="-1"> <controlProperties> <text>Record</text> </controlProperties> </control> <control controlID="71" controlTypeID="com.balsamiq.mockups::Canvas" x="614" y="460" w="125" h="118" measuredW="100" measuredH="70" zOrder="26" locked="false" isInGroup="-1"/> <control controlID="16" controlTypeID="com.balsamiq.mockups::IconLabel" x="334" y="47" w="-1" h="-1" measuredW="48" measuredH="73" zOrder="3" locked="false" isInGroup="-1"> <controlProperties> <text>Pause</text> </controlProperties> </control> <control controlID="81" controlTypeID="com.balsamiq.mockups::Canvas" x="447" y="620" w="125" h="118" measuredW="100" measuredH="70" zOrder="36" locked="false" isInGroup="-1"/> <control controlID="82" controlTypeID="com.balsamiq.mockups::Canvas" x="578" y="621" w="29" h="118" measuredW="100" measuredH="70" zOrder="37" locked="false" isInGroup="-1"/> <control controlID="83" controlTypeID="com.balsamiq.mockups::Canvas" x="614" y="622" w="125" h="118" measuredW="100" measuredH="70" zOrder="38" locked="false" isInGroup="-1"/> <control controlID="76" controlTypeID="com.balsamiq.mockups::Label" x="298" y="507" w="-1" h="-1" measuredW="39" measuredH="25" zOrder="31" locked="false" isInGroup="-1"> <controlProperties> <text>Video</text> </controlProperties> </control> <control controlID="85" controlTypeID="com.balsamiq.mockups::Canvas" x="778" y="622" w="125" h="118" measuredW="100" measuredH="70" zOrder="40" locked="false" isInGroup="-1"/> <control controlID="78" controlTypeID="com.balsamiq.mockups::Canvas" x="274" y="611" w="722" h="142" measuredW="100" measuredH="70" zOrder="33" locked="false" isInGroup="-1"/> <control controlID="79" controlTypeID="com.balsamiq.mockups::Canvas" x="283" y="620" w="125" h="118" measuredW="100" measuredH="70" zOrder="34" locked="false" isInGroup="-1"/> <control controlID="80" controlTypeID="com.balsamiq.mockups::Canvas" x="414" y="621" w="29" h="118" measuredW="100" measuredH="70" zOrder="35" locked="false" isInGroup="-1"/> <control controlID="90" controlTypeID="com.balsamiq.mockups::Arrow" x="249" y="484" w="175" h="33" measuredW="150" measuredH="100" zOrder="44" locked="false" isInGroup="-1"> <controlProperties> <direction>bottom</direction> <leftArrow>false</leftArrow> </controlProperties> </control> <control controlID="27" controlTypeID="com.balsamiq.mockups::IconLabel" x="395" y="47" w="48" h="-1" measuredW="48" measuredH="73" zOrder="4" locked="false" isInGroup="-1"> <controlProperties> <text>Stop</text> </controlProperties> </control> <control controlID="84" controlTypeID="com.balsamiq.mockups::Canvas" x="745" y="623" w="29" h="118" measuredW="100" measuredH="70" zOrder="39" locked="false" isInGroup="-1"/> <control controlID="30" controlTypeID="com.balsamiq.mockups::Canvas" x="281" y="301" w="348" h="130" measuredW="100" measuredH="70" zOrder="5" locked="false" isInGroup="-1"> <controlProperties> <backgroundAlpha>1</backgroundAlpha> </controlProperties> </control> <control controlID="31" controlTypeID="com.balsamiq.mockups::TextArea" x="298" y="287" w="200" h="27" measuredW="200" measuredH="140" zOrder="6" locked="false" isInGroup="-1"> <controlProperties> <text>Microphone%20%28Frame%20etched%20in%29</text> </controlProperties> </control> <control controlID="32" controlTypeID="com.balsamiq.mockups::Canvas" x="643" y="171" w="348" h="130" measuredW="100" measuredH="70" zOrder="7" locked="false" isInGroup="-1"> <controlProperties> <backgroundAlpha>1</backgroundAlpha> </controlProperties> </control> <control controlID="33" controlTypeID="com.balsamiq.mockups::TextArea" x="662" y="157" w="181" h="27" measuredW="200" measuredH="140" zOrder="8" locked="false" isInGroup="-1"> <controlProperties> <text>Screen%20%28Frame%20etched%20in%29</text> </controlProperties> </control> <control controlID="86" controlTypeID="com.balsamiq.mockups::Canvas" x="909" y="623" w="29" h="118" measuredW="100" measuredH="70" zOrder="41" locked="false" isInGroup="-1"/> <control controlID="87" controlTypeID="com.balsamiq.mockups::Canvas" x="943" y="623" w="48" h="118" measuredW="100" measuredH="70" zOrder="42" locked="false" isInGroup="-1"/> <control controlID="88" controlTypeID="com.balsamiq.mockups::Label" x="298" y="669" w="39" h="25" measuredW="39" measuredH="25" zOrder="43" locked="false" isInGroup="-1"> <controlProperties> <text>Video</text> </controlProperties> </control> <control controlID="48" controlTypeID="com.balsamiq.mockups::TextArea" x="293" y="431" w="175" h="27" measuredW="200" measuredH="140" zOrder="45" locked="false" isInGroup="-1"> <controlProperties> <text>Screen%20%28Frame%20etched%20in%29</text> </controlProperties> </control> <control controlID="49" controlTypeID="com.balsamiq.mockups::Canvas" x="638" y="313" w="353" h="130" measuredW="100" measuredH="70" zOrder="9" locked="false" isInGroup="-1"> <controlProperties> <backgroundAlpha>1</backgroundAlpha> </controlProperties> </control> <control controlID="50" controlTypeID="com.balsamiq.mockups::TextArea" x="654" y="299" w="182" h="27" measuredW="200" measuredH="140" zOrder="10" locked="false" isInGroup="-1"> <controlProperties> <text>Webcam%20%28Frame%20etched%20in%29</text> </controlProperties> </control> <control controlID="51" controlTypeID="com.balsamiq.mockups::TextArea" x="289" y="592" w="175" h="27" measuredW="200" measuredH="140" zOrder="46" locked="false" isInGroup="-1"> <controlProperties> <text>Screen%20%28Frame%20etched%20in%29</text> </controlProperties> </control> <control controlID="52" controlTypeID="com.balsamiq.mockups::Button" x="283" y="171" w="346" h="-1" measuredW="159" measuredH="28" zOrder="11" locked="false" isInGroup="-1"> <controlProperties> <text>Software%20or%20Website</text> <state>focused</state> </controlProperties> </control> <control controlID="53" controlTypeID="com.balsamiq.mockups::Button" x="283" y="199" w="346" h="-1" measuredW="165" measuredH="28" zOrder="12" locked="false" isInGroup="-1"> <controlProperties> <text>Focus%20Group%20Discussion</text> </controlProperties> </control> <control controlID="54" controlTypeID="com.balsamiq.mockups::Button" x="283" y="227" w="346" h="-1" measuredW="110" measuredH="28" zOrder="13" locked="false" isInGroup="-1"> <controlProperties> <text>Mobile%20Device</text> </controlProperties> </control> <control controlID="55" controlTypeID="com.balsamiq.mockups::Button" x="283" y="255" w="346" h="-1" measuredW="64" measuredH="28" zOrder="14" locked="false" isInGroup="-1"> <controlProperties> <text>Other</text> </controlProperties> </control> <control controlID="60" controlTypeID="__group__" x="654" y="184" w="-1" h="-1" measuredW="66" measuredH="44" zOrder="15" locked="false" isInGroup="-1"> <groupChildrenDescriptors> <control controlID="58" controlTypeID="com.balsamiq.mockups::RadioButton" x="0" y="0" w="62" h="22" measuredW="62" measuredH="22" zOrder="0" locked="false" isInGroup="60"> <controlProperties> <text>Enable</text> <state>selected</state> </controlProperties> </control> <control controlID="59" controlTypeID="com.balsamiq.mockups::RadioButton" x="0" y="22" w="66" h="22" measuredW="66" measuredH="22" zOrder="1" locked="false" isInGroup="60"> <controlProperties> <text>Disable</text> </controlProperties> </control> </groupChildrenDescriptors> </control> <control controlID="61" controlTypeID="__group__" x="294" y="318" w="-1" h="-1" measuredW="66" measuredH="44" zOrder="16" locked="false" isInGroup="-1"> <groupChildrenDescriptors> <control controlID="58" controlTypeID="com.balsamiq.mockups::RadioButton" x="0" y="0" w="62" h="22" measuredW="62" measuredH="22" zOrder="0" locked="false" isInGroup="60"> <controlProperties> <text>Enable</text> <state>selected</state> </controlProperties> </control> <control controlID="59" controlTypeID="com.balsamiq.mockups::RadioButton" x="0" y="22" w="66" h="22" measuredW="66" measuredH="22" zOrder="1" locked="false" isInGroup="60"> <controlProperties> <text>Disable</text> </controlProperties> </control> </groupChildrenDescriptors> </control> <control controlID="62" controlTypeID="__group__" x="648" y="328" w="-1" h="-1" measuredW="66" measuredH="44" zOrder="17" locked="false" isInGroup="-1"> <groupChildrenDescriptors> <control controlID="58" controlTypeID="com.balsamiq.mockups::RadioButton" x="0" y="0" w="62" h="22" measuredW="62" measuredH="22" zOrder="0" locked="false" isInGroup="60"> <controlProperties> <text>Enable</text> <state>selected</state> </controlProperties> </control> <control controlID="59" controlTypeID="com.balsamiq.mockups::RadioButton" x="0" y="22" w="66" h="22" measuredW="66" measuredH="22" zOrder="1" locked="false" isInGroup="60"> <controlProperties> <text>Disable</text> </controlProperties> </control> </groupChildrenDescriptors> </control> <control controlID="63" controlTypeID="com.balsamiq.mockups::Label" x="760" y="236" w="-1" h="-1" measuredW="73" measuredH="25" zOrder="18" locked="false" isInGroup="-1"> <controlProperties> <text>Some%20stats</text> </controlProperties> </control> </controls> </mockup>
Attachment:
record.png
Description: PNG image