Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(167)

Side by Side Diff: talk/app/webrtc/java/jni/peerconnection_jni.cc

Issue 1207613006: Support for onbufferedamountlow (Closed) Base URL: https://chromium.googlesource.com/external/webrtc/trunk/talk.git@master
Patch Set: Objective C style cleanup Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * libjingle 2 * libjingle
3 * Copyright 2013 Google Inc. 3 * Copyright 2013 Google Inc.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met: 6 * modification, are permitted provided that the following conditions are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright notice, 8 * 1. Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer. 9 * this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright notice, 10 * 2. Redistributions in binary form must reproduce the above copyright notice,
(...skipping 541 matching lines...) Expand 10 before | Expand all | Expand 10 after
552 }; 552 };
553 553
554 // Adapter for a Java DataChannel$Observer presenting a C++ DataChannelObserver 554 // Adapter for a Java DataChannel$Observer presenting a C++ DataChannelObserver
555 // and dispatching the callback from C++ back to Java. 555 // and dispatching the callback from C++ back to Java.
556 class DataChannelObserverWrapper : public DataChannelObserver { 556 class DataChannelObserverWrapper : public DataChannelObserver {
557 public: 557 public:
558 DataChannelObserverWrapper(JNIEnv* jni, jobject j_observer) 558 DataChannelObserverWrapper(JNIEnv* jni, jobject j_observer)
559 : j_observer_global_(jni, j_observer), 559 : j_observer_global_(jni, j_observer),
560 j_observer_class_(jni, GetObjectClass(jni, j_observer)), 560 j_observer_class_(jni, GetObjectClass(jni, j_observer)),
561 j_buffer_class_(jni, FindClass(jni, "org/webrtc/DataChannel$Buffer")), 561 j_buffer_class_(jni, FindClass(jni, "org/webrtc/DataChannel$Buffer")),
562 j_on_state_change_mid_(GetMethodID(jni, *j_observer_class_, 562 j_on_buffered_amount_change_mid_(GetMethodID(
563 "onStateChange", "()V")), 563 jni, *j_observer_class_, "onBufferedAmountChange", "(J)V")),
564 j_on_state_change_mid_(
565 GetMethodID(jni, *j_observer_class_, "onStateChange", "()V")),
564 j_on_message_mid_(GetMethodID(jni, *j_observer_class_, "onMessage", 566 j_on_message_mid_(GetMethodID(jni, *j_observer_class_, "onMessage",
565 "(Lorg/webrtc/DataChannel$Buffer;)V")), 567 "(Lorg/webrtc/DataChannel$Buffer;)V")),
566 j_buffer_ctor_(GetMethodID(jni, *j_buffer_class_, 568 j_buffer_ctor_(GetMethodID(jni, *j_buffer_class_, "<init>",
567 "<init>", "(Ljava/nio/ByteBuffer;Z)V")) { 569 "(Ljava/nio/ByteBuffer;Z)V")) {}
568 }
569 570
570 virtual ~DataChannelObserverWrapper() {} 571 virtual ~DataChannelObserverWrapper() {}
571 572
573 void OnBufferedAmountChange(uint64 previous_amount) override {
574 ScopedLocalRefFrame local_ref_frame(jni());
575 jni()->CallVoidMethod(*j_observer_global_, j_on_buffered_amount_change_mid_,
576 previous_amount);
577 CHECK_EXCEPTION(jni()) << "error during CallVoidMethod";
578 }
579
572 void OnStateChange() override { 580 void OnStateChange() override {
573 ScopedLocalRefFrame local_ref_frame(jni()); 581 ScopedLocalRefFrame local_ref_frame(jni());
574 jni()->CallVoidMethod(*j_observer_global_, j_on_state_change_mid_); 582 jni()->CallVoidMethod(*j_observer_global_, j_on_state_change_mid_);
575 CHECK_EXCEPTION(jni()) << "error during CallVoidMethod"; 583 CHECK_EXCEPTION(jni()) << "error during CallVoidMethod";
576 } 584 }
577 585
578 void OnMessage(const DataBuffer& buffer) override { 586 void OnMessage(const DataBuffer& buffer) override {
579 ScopedLocalRefFrame local_ref_frame(jni()); 587 ScopedLocalRefFrame local_ref_frame(jni());
580 jobject byte_buffer = jni()->NewDirectByteBuffer( 588 jobject byte_buffer = jni()->NewDirectByteBuffer(
581 const_cast<char*>(buffer.data.data<char>()), buffer.data.size()); 589 const_cast<char*>(buffer.data.data<char>()), buffer.data.size());
582 jobject j_buffer = jni()->NewObject(*j_buffer_class_, j_buffer_ctor_, 590 jobject j_buffer = jni()->NewObject(*j_buffer_class_, j_buffer_ctor_,
583 byte_buffer, buffer.binary); 591 byte_buffer, buffer.binary);
584 jni()->CallVoidMethod(*j_observer_global_, j_on_message_mid_, j_buffer); 592 jni()->CallVoidMethod(*j_observer_global_, j_on_message_mid_, j_buffer);
585 CHECK_EXCEPTION(jni()) << "error during CallVoidMethod"; 593 CHECK_EXCEPTION(jni()) << "error during CallVoidMethod";
586 } 594 }
587 595
588 private: 596 private:
589 JNIEnv* jni() { 597 JNIEnv* jni() {
590 return AttachCurrentThreadIfNeeded(); 598 return AttachCurrentThreadIfNeeded();
591 } 599 }
592 600
593 const ScopedGlobalRef<jobject> j_observer_global_; 601 const ScopedGlobalRef<jobject> j_observer_global_;
594 const ScopedGlobalRef<jclass> j_observer_class_; 602 const ScopedGlobalRef<jclass> j_observer_class_;
595 const ScopedGlobalRef<jclass> j_buffer_class_; 603 const ScopedGlobalRef<jclass> j_buffer_class_;
604 const jmethodID j_on_buffered_amount_change_mid_;
596 const jmethodID j_on_state_change_mid_; 605 const jmethodID j_on_state_change_mid_;
597 const jmethodID j_on_message_mid_; 606 const jmethodID j_on_message_mid_;
598 const jmethodID j_buffer_ctor_; 607 const jmethodID j_buffer_ctor_;
599 }; 608 };
600 609
601 // Adapter for a Java StatsObserver presenting a C++ StatsObserver and 610 // Adapter for a Java StatsObserver presenting a C++ StatsObserver and
602 // dispatching the callback from C++ back to Java. 611 // dispatching the callback from C++ back to Java.
603 class StatsObserverWrapper : public StatsObserver { 612 class StatsObserverWrapper : public StatsObserver {
604 public: 613 public:
605 StatsObserverWrapper(JNIEnv* jni, jobject j_observer) 614 StatsObserverWrapper(JNIEnv* jni, jobject j_observer)
(...skipping 1070 matching lines...) Expand 10 before | Expand all | Expand 10 after
1676 } 1685 }
1677 1686
1678 JOW(void, VideoTrack_nativeRemoveRenderer)( 1687 JOW(void, VideoTrack_nativeRemoveRenderer)(
1679 JNIEnv* jni, jclass, 1688 JNIEnv* jni, jclass,
1680 jlong j_video_track_pointer, jlong j_renderer_pointer) { 1689 jlong j_video_track_pointer, jlong j_renderer_pointer) {
1681 reinterpret_cast<VideoTrackInterface*>(j_video_track_pointer)->RemoveRenderer( 1690 reinterpret_cast<VideoTrackInterface*>(j_video_track_pointer)->RemoveRenderer(
1682 reinterpret_cast<VideoRendererInterface*>(j_renderer_pointer)); 1691 reinterpret_cast<VideoRendererInterface*>(j_renderer_pointer));
1683 } 1692 }
1684 1693
1685 } // namespace webrtc_jni 1694 } // namespace webrtc_jni
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698