There are some basic techniques that are useful in this sort of application. First, to get an overview of an entire dataset, a good place to start is to read in the file 20 or 30 samples at a time. As you read each block, perform an average and only plot the average. This on-the-fly decimation allows you to see very large blocks of data without bogging down you system.
Second, for the zoom function use the cursors. When the user selects an area to zoom in on, read just the values between the indices the user selects. If the selection is small enough you can display the data directly, otherwise you can decimate it as before-though probibly using a smaller block size.
For reading the position of the cursors, use property nodes.
The basic thing to rem
ember is that most PC screens are at most a couple thousand pixels wide. This video resolution places an absolute limit on the number of datapoints that you will be able to see without aliasing. In general it's better to decimate the data yourself than to let the video card do it.
Let me know if you have any specific questions
Mike...