예제 #1
0
 void playMovie()
 {
     dvd->on();
     projector->on();
     amplifier->on();
     dvd->play();
 }
예제 #2
0
void DVDRemoteApp::startPlay() {
   cerr << "Start stream ..." << endl;

   outfile = open("out.vob", O_WRONLY | O_CREAT, 0777);
   dvdReader.open(source);
   cerr << "Number of titles:" << dvdReader.getNumberOfTitles() << endl;

   dvdReader.play(1); // title starts at 1 and proceeds up to getNumberOfTitles()

   dvdReader.close();
}
예제 #3
0
int main()
{
    DVD dvd;
    Amplifier amplifier;
    Projector projector;
    // non-facade method
    // play movie
    cout<<"################# Non-facade Pattern ####################"<<endl;
    dvd.on();
    projector.on();
    amplifier.on();
    dvd.play();

    // using facade pattern
    cout<<"################# Facade Pattern ####################"<<endl;
    FacadeThreater ft(&dvd, &amplifier, &projector);
    ft.playMovie();
    return 0;
}
int main() {
    const DVD diehard("Die Hard", 130, 9.99);
    DVD stein("Stein's Gate", 120, 10.11);
    DVD bun("Bunraku", 121, 3.56);

    diehard.output();
    stein.output();
    bun.output();

    stein.changeprice(1.11);
    bun.changeprice(0);

    diehard.output();
    stein.output();
    bun.output();

    cout << diehard.get_title() << '\n';
    cout << stein.get_minutes() << '\n';
    cout << bun.get_price() << '\n';
}
예제 #5
0
int DVDRemoteApp::run() {
   if (argv.size() != 2) {
       usage();
   }
   source = argv[1];

   dvdReader.setProgressListener(this);

   ServerSocket server(1234);

   // Server's main loop.
   while(1) {
      client = server.accept();
      string cmd;
      do {
         cmd = client.readLine();
         cerr << "  " << cmd << endl;
         if (cmd == "START") {
            startPlay();
         } else if (cmd == "STOP") {
            stopPlay();
         } else if (cmd == "STREAM") {
            startStream();
         } else if (cmd == "\r") {
            sendHttpResponse();
         } else if (cmd.compare(0, 13, "Range: bytes=") == 0) {
            string range = cmd.substr(13);
            size_t pos = range.find('-');
            string fromStr = range.substr(0, pos);
            string toStr = range.substr(pos + 1);
            fileOffset = atol(fromStr.c_str());
            long to = atol(toStr.c_str());
            streamSize = to - fileOffset + 1;
         }
      }while(cmd != "");
      client.close();
   }

   server.close();

   return 0;
}
예제 #6
0
void DVDRemoteApp::stopPlay() {
   cerr << "Stop stream ..." << endl;
   dvdReader.stop();
}
예제 #7
0
 void stopMovie()
 {
     amplifier->off();
     projector->off();
     dvd->off();
 }