Advertisement

Need help making window and console work together

Started by July 14, 2017 01:47 PM
7 comments, last by Alberth 7 years, 4 months ago

Hi! I have a console app. From the console I ask the user if he/she wants to test if the videos provided in a folder can be decoded. If user types "yes", I open a window without closing the console. The window has drop-down menu that lets user pick up from the various videos found in the given folder. I want when user picks up a video from the menu of the window, in the console the app to print: "Can you see the video playing?" and then i use "std::getline()" to wait for an answer. So far it is ok, but what will happen for the case, user selects another video from the window's menu. When selecting another video now the app makes the old one to stop playing and the new one to start playing immediately.... but what about the waiting "getline()"... how to kill it if user uses the window controls to close the preview window or to switch to another video? I will use a boolean to know if there is a getline waitning, but don't know how to kill it.


Maybe I should create a pop-up menu on top of the window playing the video to make the user pick up between: "can see it" and "can not see it".
What would be the easiest way to do it? How would you do it? I need the simplest way possible.

(i catch all possible errors(all i know about) at every point, but sometimes without any error reported, the video is black and not showing My Little Pony)

You can't stop std::getline() once you started it (other than by exiting the application, I guess), afaik.

I am not sure why you ask the question. What does the application do when I answer "no, I can't see it" ?

Since you already switch to a different video if I click at one, isn't that a much simpler way to deal with the problem? I mean, if the user can't see the video, he/she will eventually either quit the application, or select a new video to play right?

Maybe you don't need to ask anything?

Advertisement

Thanks for the answer @Alberth after user determines for very sure(by viewing it being decoded nicely(because sometimes the video decodes into a mess of huge random squares)) that the given codec works, the app will do more stuff on the videos that are decoding valid images/frames.
All the videos for which user types in "yes" i will store them into a vector of videos to be further being processed by the app. The purpose of the app is not to watch videos.

I think I could just print:
"Please hit "Y" if you see the video playing or "N" if you can't see it"
and catch it from the window messages handling routine. I think i could do it this way.

Sometimes some of my posts result to be of no help for others in the forum, but I think i can not delete them myself...
 

You'd be surprised how often random information is of help :)

Right now, any one interested in "std::getline()" behavior can use your post and my answer to solve their question. If you delete posts because you know the answer, the remaining posts become useless. Similarly, if I would delete my post because you read it, that "any one" doesn't get wiser either.

So the best course of action is to keep posts as they are, and that is also the policy of this forum.

 

Ok, not for viewing thus. What about 2 additional buttons "viewable" and "black screen" then? You can catch presses on those button easily, I think

Good to know! I now will not worry about the worth of my posts.

I already codded the "hit Y/N" solution. I need it as simple as possible, because I'm a newbie in C++. My soul hurts when I deal with C++ xD

Well, yeah, C++ is not a good language for beginners, it assumes you know what you're doing :)

Switching languages at this point won't do help much though, you'll have again the problem of having to learn a programming language from scratch while learning to code games (or in your case video decoding stuff :) )

Advertisement

I began with ASM for Intel. I made BIOS real time emulator with 256 bit code extensions and without using the RAM...... It helped me for nothing in life! I can't use it to find a job! Total loss of time!

I then started with C# and it seems ok for me. I learned to use it in no time, so it took minimal time investment. Now I am forced to use C++ for Microsoft Media Foundation and DirectX and I don't want to repeat the error from ASM and invest too much time learning something too hard to learn as C++ and that i can't find a job with, because it is considered so advanced that employers just don't believe me unless I show them a master degree and 2 years of successful job experience. And i just don't have 7 years to give away.

Each language has a corner in the applications where it's used, but C++ applications may not be created near you. You could move to a different area, or reverse the problem; look where companies where you want to work need developers for, and learn that.

This topic is closed to new replies.

Advertisement